01. DATOS GENERALES


Producto

Línea de producto: 

Segmento:

Módulo:SIGACOM - Compras
Función:
RutinaNombre
M100RICA.PRWRetención de Impuesto ICA
País:Colombia
Ticket:23852811
Requisito/Story/Issue (informe el requisito vinculado):DMICNS-23863


02. SITUACIÓN/REQUISITO

En el MsExecauto de la rutina de Pedido de Compra (MATA121), se tiene una baja de performance cuando la TES usa diversos impuestos: IVA, RF0, RC0 y RV0. La baja de performance se presenta en la rutina de cálculo del impuesto RC0 (M100RICA.PRW)


03. SOLUCIÓN

Se implementan los ajustes en la rutina de cálculo de la retención de ICA (M100RICA.PRW), para mejorar el performance al realizar el cálculo del impuesto.


  1. Desarrollar y compilar la rutina automática para la generación automática de pedidos de compra, ver sección "Ejemplo MsExecauto".
  2. Configurar el menú para esta rutina, dentro del módulo Configurador (SIGACFG) | Entorno| Menús, agregar la opción en el menú para el módulo de Compras (SIGACOM).
  3. En la rutina de Productos (SIGACOM >> Actualizaciones | Archivos), registre un producto.
  4. En la rutina de Proveedores (SIGACOM >> Actualizaciones | Archivos), registre un proveedor, informando los campos obligatorios, adaptando la información según sean sus necesidades.
  5. En la rutina de Imp. Variables (SIGACOM >> Actualizaciones | Archivos), configurar los impuestos necesarios.
    1. Para mayor información para la configuración de la retención del ICA (RC0), consulte el apartado 05. ASUNTOS RELACIONADOS.
  6. En la rutina de Tipos de Entrada Y Salida (SIGACOM >> Actualizaciones | Archivos), configure una TES de entrada con los impuestos deseados.
  1. Dentro del módulo Compras (SIGACOM), acceder a la opción del menú creado para la rutina automática y esperar la ejecución.
    1. Verificar que el tiempo de ejecución tuvo una mejora en comparación con las ejecuciones anteriores.
  2. Al finalizar la ejecución, acceder a la rutina de Pedidos de Compra (SIGACOM), confirme que el pedido fue generado correctamente.
    1. Validar el cálculo de los impuestos configurados.
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"

User Function MyMATA120()

Local aCabec  := {}
Local aItems  := {}
Local aLinha  := {}
Local cNumPc  := ""
Local cTES    := ""
Local nX      := 0

Private lMsErroAuto := .F.

    cFornece := FWInputBox("Proveedor: ", "016744") //Proveedor
    cNumPc   := FWInputBox("Num Doc: ", "250801") //Num Doc
    cTES     := FWInputBox("TES: ", "038") //TES

    ConOut("Inicio de Ejecucción MYMT120: "+GetRmtTime())
    
    aCabec              := {}
    aAdd(aCabec, {"C7_EMISSAO", dDataBase                                        , NIL})
    aAdd(aCabec, {"C7_FILIAL" , PADR(ALLTRIM(cFilAnt) ,TamSX3("C7_FILIAL")[1] )  , NIL})
    aAdd(aCabec, {"C7_NUM"    , PADR(ALLTRIM(cNumPc) ,TamSX3("C7_NUM")[1] )      , NIL})
    aAdd(aCabec, {"C7_FORNECE", PADR(ALLTRIM(cFornece) ,TamSX3("C7_FORNECE")[1] ), NIL})
    aAdd(aCabec, {"C7_LOJA"   , PADR(ALLTRIM("01") ,TamSX3("C7_LOJA")[1] )       , NIL})
    aAdd(aCabec, {"C7_COND"   , "001"                                            , NIL})
    aAdd(aCabec, {"C7_CONTATO", PADR(ALLTRIM("") ,TamSX3("C7_CONTATO")[1] )      , NIL})
    aAdd(aCabec, {"C7_MOEDA"  , 1})
    aAdd(aCabec, {"C7_TXMOEDA", 1})
    aAdd(aCabec, {"C7_FILENT" , PADR(ALLTRIM(cFilAnt) ,TamSX3("C7_FILENT")[1] )  , NIL})

    aItems              := {}
    FOR nX := 1 TO 100
        aLinha := {}
        aadd(aLinha, {"C7_PRODUTO", "000001" , Nil})
        aadd(aLinha, {"C7_QUANT"  , 1        , Nil})
        aadd(aLinha, {"C7_DATPRF" , dDataBase, Nil})
        aadd(aLinha, {"C7_PRECO"  , 1000     , Nil})
        aadd(aLinha, {"C7_TES"    , cTES     , Nil})
        aadd(aLinha, {"C7_LOCAL"  , "01"     , Nil})
        aadd(aItems, aLinha)
    NEXT nX

    SetFunname("MATA121")
    MSExecAuto({|x,y,z,k|MATA120(x,y,z,k)},1,aCabec,aItems,3)


    If lMsErroAuto  
        MostraErro()
    Else
        msgInfo("Pedido de compra incluido: " + cNumPc, " MsExecAuto Mimata120")  
        ConOut("Fin de Ejecuccion MYMT120: " + GetRmtTime())
    Endif

Return


04. INFORMACIÓN ADICIONAL

Otras acciones/acciones relacionadas 



05. ASUNTOS RELACIONADOS