Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

01. DATOS GENERALES


Producto

Solucoes_espanhol
SolucaoTOTVS Backoffice

Línea de producto: 

Linhas_totvs_espanhol
LinhaLínea Protheus

Segmento:

Segmentos_totvs_espanhol
SegmentoBackoffice

Módulo:SIGACOM - Compras
Función:
RutinaNombre
M100RICA.PRWRetención de Impuesto ICA
M100IRF.PRWCálculo de IRF en documentos de entrada.
M100IVA.PRXCálculo de IVA en documentos de entrada.
M100RIVA.PRWCálculo de retención de IVA en documentos de entrada.
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)

...

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.

Las rutinas toman la configuración de los impuestos y almacenan los valores en memoria. Si se realiza algún cambio en la configuración de los impuestos, deberá salir de la rutina del documento que esté registrando y volver a ingresar para que tome el cambio de configuración. Este tratamiento es para tener un mejor performance en el cálculo de impuestos.


Aviso

Para un mejor performance, deberá configurar en la TES el impuesto, para que el cálculo sea por ítem (FC_CALCULO = I). Esta configuración aplica para los impuestos IVA, RV0, ICA, RF0 y ARC.



Totvs custom tabs box
tabsConfiguraciones previas, Flujo de prueba, Ejemplo rutina automática
idspaso1,paso2,paso3
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Desarrollar y compilar la rutina automática para la generación automática de pedidos de compra, ver sección "Ejemplo MsExecautorutina automática".
  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.
Totvs custom tabs box items
defaultno
referenciapaso2
  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.
Totvs custom tabs box items
defaultno
referenciapaso3
Bloco de código
languagejs
themec#Eclipse
#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

...

Card documentos
InformacaoUtilice este box para resaltar información relevante y/o de destaqueLa solución no altera o modifica la información de los documentos registrados en el sistema.
Titulo¡IMPORTANTE!


Nota

Se recomienda aplicar el paquete de actualización de expedición continua, para mantener actualizado el sistema.


05. ASUNTOS RELACIONADOS