01. DATOS GENERALES
| Producto | TOTVS Backoffice | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Línea de producto: | Línea Protheus | ||||||||
| Segmento: | Backoffice | ||||||||
| Módulo: | SIGACOM - Compras | ||||||||
| Función: |
| ||||||||
| País: | Colombia | ||||||||
Ticket: | 23854786 | ||||||||
| Requisito/Story/Issue (informe el requisito vinculado): | DMICNS-23878 |
02. SITUACIÓN/REQUISITO
Se identifica un error en el cálculo del impuesto RC0(Retención del ICA), por ejemplo; si está configurado el Cpo del L.F. (FB_CPOLVRO) igual a 7, los campos F1_VALIMP7, F1_BASIMP7, D1_VALIMP7, D1_BASIMP7, D1_ALQIMP7 quedan con valor 0, como si no se hubieran calculado.
Se identifica que este error solo sucede con el "MsExecAuto", si se hace desde la rutina manual funciona correctamente, además se hacen pruebas cambiando de campo y no lo graba.
03. SOLUCIÓN
Se agrega tratamiento para el gravado del cálculo del impuesto RC0 (Retención del ICA) en la rutina "Retención de impuesto RICA (M100RICA.PRW)" cuando se ejecute el "MsExecAuto".
- Desarrollar y compilar la rutina automática para la generación de facturas de salida, ver sección "Ejemplo Inclusión".
- 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).
- En la rutina de Productos (MATA010) que se encuentra en el menú perteneciente al módulo Compras (Actualizaciones | Archivos) registre un producto.
- En la rutina de Proveedores (MATA020) que se encuentra en el menú perteneciente al módulo Compras (Actualizaciones | Archivos) registre un proveedor informando los campos obligatorios, adaptando la información según sean sus necesidades.
- En la rutina de Imp. Variables (MATA995) que se encuentra en el menú perteneciente al módulo de Compras (Actualizaciones | Archivos) configurar los impuestos necesarios.
- En el caso de la RC0(Retención del ICA) para más información, consulte el apartado 05. ASUNTOS RELACIONADOS.
- En la rutina de Tipos de Entrada Y Salida (MATA080) que se encuentra en el menú perteneciente al módulo Compras (Actualizaciones | Archivos) registre una TES de entrada con los impuestos deseados.
- Por medio de la rutina Compras (Actualizaciones | Compras)
- Dentro del módulo Compras (SIGACOM), acceder a la opción del menú creado para la rutina automática y esperar la ejecución.
- Al finalizar la ejecución, acceder a la rutina Compras (SIGACOM), confirme que la factura de entrada se generó.
Validar el cálculo de los impuestos configurados.
Cuando se utiliza el MsExecAuto, la inicialización correcta de la variable Private lMsErrorAuto es el valor .F., si se produce un error durante el ExecAuto, el sistema cambia automáticamente el valor de la variable lMsErrorAuto a .T. y muestra el error.
Ejemplo para facturas de entrada (MATA101N)
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
// Ejemplo de Factura de Entrada - Tipo - Normal //
User Function xMta101n()
Local aCab := {} // Array con datos de encabezado
Local aLin := {} // Array con datos de ítem
Local aItem := {} // Array de ítems
Local cDoc := "" // String con el número de documento
Private lMsErroAuto := .F. // Control de ejecución de rutina
cDoc := FWInputBox("Número de Factura", "") // Informar número de documento, ejemplo: "000000000001"
// Encabezado
AADD( aCab, { "F1_FILIAL" , xFilial("SF1") , Nil })
AAdd( aCab, { "F1_FORNECE" , "23878 ", Nil })
AAdd( aCab, { "F1_LOJA" , "01" , Nil })
AAdd( aCab, { "F1_SERIE" , "A" , Nil })
AAdd( aCab, { "F1_DOC" , cDoc , Nil })
AAdd( aCab, { "F1_TIPO" , "N" , Nil })
AAdd( aCab, { "F1_FORMUL" , "N" , Nil })
AAdd( aCab, { "F1_TIPODOC" , "10" , Nil })
AAdd( aCab, { "F1_ESPECIE" , "NF " , Nil })
AAdd( aCab, { "F1_EMISSAO" , dDataBase , Nil })
AAdd( aCab, { "F1_DTDIGIT" , dDataBase , Nil })
AAdd( aCab, { "F1_MOEDA" , 1 , Nil })
AAdd( aCab, { "F1_TXMOEDA" , 1 , Nil })
AAdd( aCab, { "F1_COND" , "001" , Nil })
AAdd( aCab, { "F1_EST" , "11" , Nil })
AAdd( aCab, { "F1_CODMUN" , "11001" , Nil })
AAdd( aCab, { "F1_TPACTIV" , "4923" , Nil })
AAdd( aCab, { "F1_NATUREZ" , "OTROS" , Nil })
AAdd( aCab, { "F1_TIPOPE" , "" , Nil })
AAdd( aCab, { "F1_DUPL" , cDoc , Nil }) // Informar título si hay integración financiera
// Items
AADD( aLin, { "D1_FILIAL" , xFilial("SD1") , Nil })
AADD( aLin, { "D1_ITEM" , "0001" , Nil })
AAdd( aLin, { "D1_COD" , "000001 " , Nil })
AAdd( aLin, { "D1_UM" , "UN" , Nil })
AAdd( aLin, { "D1_QUANT" , 1 , Nil })
AAdd( aLin, { "D1_VUNIT" , 2000.00 , Nil })
AAdd( aLin, { "D1_TOTAL" , 2000.00 , Nil })
AAdd( aLin, { "D1_TES" , "244" , Nil })
AAdd( aLin, { "D1_CF" , "111 " , Nil })
AAdd( aItem, aLin)
// Ejecuta Rutina Automática
MSExecAuto( { |x,y| MATA101N(x,y) }, aCab, aItem, 3 )
If lMsErroAuto
MsgStop("Error en la grabación de la factura!")
MostraErro()
Else
msgInfo("Factura de Entrada incluida: " + cDoc, "MsExecAuto MATA101N")
EndIf
Return
Ejemplo para facturas de entrada (COMA222)
#INCLUDE 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
User Function autCom22()
Local oMdlTab
Local aError := {}
Local cMsj := "Registrado con exito."
Local cFornece := "23878 "
Local cLoja := "01"
Local cDoc := "090420240002"
Local cSerie := "A"
SetFunName("COMA222")
cDoc := FWInputBox("Numero de Factura", "")
// Se define el modelo LOCX10
oMdlTab := FwLoadModel("LOCX10")
// Se define la operación INSERT en el modelo
oMdlTab:SetOperation(MODEL_OPERATION_INSERT)
// Se activa el modelo
oMdlTab:Activate()
//Encabezado - SF1
oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1"))
oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece )
oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja )
oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc)
oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie)
oMdlTab:SetValue('SF1_MASTER', "F1_SERIE2" , cSerie)
oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase)
oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 1)
oMdlTab:SetValue('SF1_MASTER', "F1_COND" , "001" )
oMdlTab:SetValue('SF1_MASTER',"F1_CODMUN" , "11001" )
oMdlTab:SetValue('SF1_MASTER', "F1_TPACTIV" , "A011100" )
//Detalle Items - SD1
oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1"))
oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" )
oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001 " )
oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc)
oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1)
oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 2000)
oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 2000)
oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "085")
oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "155 " )
//Se ejecuta el commit
If oMdlTab:VldData() // Se detonan las validaciones del modelo
// Si pasa las validaciones, se ejecutará el CommitData del modelo para guardar los datos.
oMdlTab:CommitData()
Endif
ALERT("FIN")
// Se obtienen los errores del modelo
aError := oMdlTab:GetErrorMessage()
If alltrim(aError[6]) <> ""
cMsj := aError[6]
Endif
ConOut("Mensaje de proceso: " + cMsj)
oMdlTab:DeActivate()
Return
04. INFORMACIÓN ADICIONAL
Este paquete de actualización (patch) no efectúa actualización de la base de datos, por lo que sus registros mantendrán la información con la que fueron ingresados antes de la aplicación del paquete. Adicional se recomienda aplicar el paquete de actualización de expedición continua, para mantener actualizado el sistema.¡IMPORTANTE!
05. ASUNTOS RELACIONADOS
- DT Cálculo de Retención del Impuesto de Industria y Comercio (RC0) Colombia
- Documentos Fiscales de Entrada
- documento_tecnico
- totvs
- backoffice
- totvs_backoffice
- línea_protheus
- protheus
- sigacom
- col
- colombia
- mi
- mercado_internacional
- base_de_conocimiento
- dmicns-23878
- 23854786
- ticket_23854786
- m100rica
- rc0
- retencion_ica
- version_12_1_2310
- version_12_1_2410
- version_12_1_2510
- dmicns_23878
- base_conocimiento
- protheus_backoffice
- linea_protheus
- compras
- locxfuna
- locxgen