CALCODLAN- Lectura de las tablas de la rutina FISA178 y FISA181 con actualización del Array de las Tablas CDA y CDV
Objetivo y alcance
Este fuente concentra las funcionalidades referente al montaje del Array aGrava enfocado en las configuraciones efectuadas por medio de la rutina de la configuración de tributos para una posterior grabación en la tabla CDA y/o CDV
...
| Aviso |
|---|
|
Los siguientes campos en la CDA y CDV son exclusivos para operaciones con código de ajuste de registros realizado por la configuración de tributos. |
Tablas
- CDA
- CDA_VLOUTR - Considera valor ICMS otros.
- CDA_TXTDSC - Código referente a la descripción complementaria para el bloque 0460 (Vínculo con la tabla CJA).
- CDA_CODCPL - Código referente al mensaje complementario para el bloque C195 y otros similares (Vínculo con la tabla CJA).
- CDA_CODMSG - Código referente a la descripción complementaria para el bloque C197 y otros similares (Vínculo con la tabla CJA).
- CDA_REGCAL - Referencia del código de regla de cálculo utilizada en la configuración de tributos.
- CDA_OPBASE - Opción de selección de la base de cálculo de acuerdo con el vínculo de la tabla CJA.
- CDA_OPALIQ - Opción de selección de la alícuota de acuerdo con el vínculo de la tabla CJA.
- CDA_IDMSG- Campo de ID generado a través de la rutina FWUID con vínculo de la tabla CJL, en la que se guardan los mensajes convertidos con la fórmula NPI.
- CDA_AGRLAN - Campo que identifica la forma de agrupar el registro para generar el archivo del SPED FISCAL.
- CDV
- CDV_REGCAL - Referencia del código de regla de cálculo utilizada en la configuración de tributos.
- CDV_VLOUTR - Considera Valor ICMS Otros.
- CDA_TXTDSC - Código referente a la descripción complementaria para el bloque 0460 (Vínculo con la tabla CJA).
- CDA_CODCPL - Código referente al mensaje complementario para el bloque C195 y otros similares (Vínculo con la tabla CJA).
- CDA_CODMSG - Código referente a la descripción complementaria para el bloque C197 y otros similares (Vínculo con la tabla CJA).
- CDA_OPBASE - Opción de selección de la base de cálculo de acuerdo con el vínculo de la tabla CJA.
- CDA_OPALIQ - Opción de selección de la alícuota de acuerdo con el vínculo de la tabla CJA.
- CDA_IDMSG- Campo de ID generado a través de la rutina FWUID con vínculo de la tabla CJL, en la que se guardan los mensajes convertidos con la fórmula NPI.
Diccionario
Estructura está en el paquete 010120 - $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de ajuste SPED/Diccionario
Estructura está en el paquete 010650 - $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de ajuste SPED/Diccionario
Fuentes
Localizados en la branch Innovación: $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED
...
---------------------------------------------------------------------------------------------------------------------------
FISA170 - Rutina con la concentración de todos los registros del motor fiscal tributario.
Se agregó una nueva opción en la Tree de la configuración.
- Regla de ajuste de registro
- Registro de mensaje
- Regla de ajuste de registro.
Objetivo y alcance
Concentra Menú de la Tree, rutinas de carga y Browse de las rutinas utilizadas en la configuración fiscal de tributos
Fuentes
Localizados en la branch Innovación: $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED
Función:
GetVerRls - Control de acceso a mejoras por Release.
Se agregó el informe de verificación de la reversión totvs.protheus.backoffice.fiscal.relatorioEstornocredito en la Tree, en la solapa Informes.
Tablas agregadas
CJ8 - Registro de mensajes
...
---------------------------------------------------------------------------------------------------------------------------
FISA173- Función de cálculo de tributos genéricos
Para incluir el código de ajuste del registro, se agregaron nuevas funciones:
Función:
GravaGNRE - Hace la grabación del formulario de pago en la tabla SF6 de acuerdo con las configuraciones efectuadas en la configuración de tributos.
...
---------------------------------------------------------------------------------------------------------------------------
FISA178 - Registro de Mensaje
Objetivo y alcance
El objetivo de esta rutina es crear un registro de mensaje con la base en las reglas por tributo, tributo genérico, datos de la factura y registros. Al seleccionar una de estas formas de registro, se permite elegir lo que se debe informar en la fórmula del mensaje.
Tablas
CJ8 con las informaciones tanto del encabezado como de los campos y filtros se monta el mensaje.
Diccionario
La estructura está en el paquete 010120 - $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de ajuste SPED/Diccionario
Fuentes
Localizados en la branch Innovación: $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED
Carga automática
Los campos CJ8_TPREGR (Tipo de regla) al seleccionar Tributos - se habilitará en el campo CJ8_TRIFIL (Regla por consultar) las 3 esferas ( Estatal/Prov/Reg, Federal y Municipal), seleccionando una de las opciones el campo CJ8_REGTRA (Tributo) para la consulta se filtrará por tipo de regla.
...
Después de seleccionar la información anterior, el contenido seleccionado en el campo CJ8_CONSUL (Valor que se agregará a la fórmula), se puede agregar al campo CJ8_MENSG (Composición del mensaje) haciendo clic en la Opción agregar y después hacer clic en la opción Validar mensaje.
Relación
Este campo CJ8_TBCONF se vinculará a la regla de cálculo del tributo en la tabla F2B rutina FISA160, en el campo F2B_REGRA.
Devolución
Esta rutina almacena el mensaje en un campo MEMO con la fórmula NPI, en la cual se convertirá cuando se procese la factura, por medio de la rutina FISXDESCR y se almacenará en la tabla CJL.
---------------------------------------------------------------------------------------------------------------------------
FISA181 - Inclusión de regla de ajuste del registro
Objetivo y alcance
El objetivo de esta rutina es efectuar un registro de la regla de códigos de ajuste del registro, vinculando a una regla de documentos fiscales que creará el usuario, según su registro, y en el momento de generar el documento mostrará las informaciones de los códigos del registro.
...
- Vínculo del código de registro informado en la TES.
- Vínculo del código de reflejo para reglas de cálculo realizado en el FISA072
- Vínculo de mensajes, realizados en latabla CCE (Información complementaria) o en el registro del TES (Tabla SF4) campo F4_CODOBSE (Cód Observ)
Tablas
CJ9 con las informaciones del encabezado del registro de la regla de ajuste del registro, tenemos los campos:
...
- CJA_CODREG - Código regla encabezado - Vincularemos con la Tabla CJ9
- CJA_REGCAL Regla de cálculo - Tendremos una consulta estándar con la Tabla F2B, donde el usuario seleccionará la regla de cálculo que encuadre para la regla de código de ajuste, en este campo, en vez de que este tenga un cálculo en el registro de reflejo, este creará su propio cálculo.
- CJA_CODTAB Tabla de registro - En este campo están disponibles 4 tablas de registro 1.1 (CDO) , 5.2 (CDY), 5.3(CC6) y 5.3.4(CCK)
- CJA_CODLAN* - Código de registro - La Tabla seleccionada en el campo CJA_CODLAN , actualiza la consulta estándar y devuelve los códigos de registro de cada tabla.
- CJA_VIGINI Fecha inicial de vigencia del registro - El usuario informa la fecha inicial de vigencia del código de registro que cuenta en los archivos TXT dados de baja en el sitio de la http://sped.rfb.gov.br/
- CJA_VIGFIM Fecha final de vigencia de registro - El usuario informa la fecha inicial de vigencia del código de registro que cuenta en los archivos TXT dados de baja en el sitio http://sped.rfb.gov.br/
- CJA_NFBASE Considera Base de ICMS - En este campo tenemos 3 opciones - Valor / Nulo / Cero, para atender si la regla de cálculo necesitara considerar la Base del ICMS como Cero , Valor o NULO si fuera necesario grabar en el SPED el contenido |EN BLANCO|
- CJA_NFALIQ - Considera alícuota - En este campo tenemos 3 opciones - Valor / Nulo / Cero, para cumplir si la regla de cálculo necesita considerar la alícuota del ICMS como cero , valor o NULO si es necesario grabar en el SPED el contenido |EN BLANCO|
- CJA_VALOR - Considera Valor ICMS - En este campo se controla cómo la regla interpretará el contenido del valor del ICMS cuando sea necesario generar los campos 7 del registro C197, se entenderá como Valor. En este campo tenemos una consulta estándar en CIN con filtro de regla de Tributo con el campo CJ9_REGCAL.
- CJA_VLOUTR - Considera Valor ICMS Otr - En este campo se controla cómo la regla interpretará el contenido del valor de ICMS si es necesario generar los campos 8 del registro C197, se entenderá como Otros. En este campo tenemos una consulta estándar en CIN con filtro de regla de Tributo con el campo CJ9_REGCAL.
- CJA_CNTRL Est/Prov/Reg de la operación - En este campo tenemos 2 opciones por considerar, el código de registro por el Est/Prov/Reg de origen o por el Est/Prov/Reg de destino. Este campo tiene relación con el campo CJA_OPER
- CJA_OPER Tipo de Operación - En este campo se define en que tipos de operación debe aparecer el código de registro. Son 3 opciones: Entrada, salida y devolución.
- CJA_CODMSG - Código del mensaje - En este campo se seleccionará el mensaje registrado previamente en la rutina FISA178 - Registro de mensaje que se utilizará en EFD ICMS IPI Registro C197 campo 3.
- CJA_GERMSG Tipo de mensaje - Tenemos este campo para control de cómo se generará el mensaje para 01 - Cód. de registro por período, donde genero un mensaje para cada código de registro del período, 02 - Cód. de registro + Factura, si se generara un único mensaje por código de registro agrupado por factura y 03- Cód de registro + Producto en la que se detallará el mensaje por cada producto de la factura.
- CJA_ID_CAB ID del encabezado - Este campo no aparecerá en el Browser, pero se grabará un ID a través de la función FWUUID("CJA").
- CJA_CODCPL - Texto del complemento - En este campo se seleccionará el mensaje registrado previamente en la rutina FISA178 - Registro de mensaje que se utilizará en EFD ICMS IPI Registro C195 campo 2 y campo 3.
- CJA_TXTDSC - Texto de descripción - En este campo se seleccionará el mensaje registrado previamente en la rutina FISA178 - Registro de mensaje que se utilizará en EFD ICMS IPI Registro 0460 en el campo Descripción.
- CJA_GUIA Regla de formulario - En este campo tendremos la consulta estándar con la tabla CJ4, donde el usuario seleccionará la regla de formulario que se encuadre en la regla de código de ajuste.
- CJA_TITULO Regla de título - En este campo tendremos la consulta estándar con la tabla FKK, donde el usuario seleccionará la regla de título que se encuadre en la regla de código de ajuste.
- CJA_TITGUI Modo de Agrp Formulario/Tit - En este campo definimos el modo de agrupación del Formulario / Título que se debe generar mediante la rutina. 01- Por documento + Registro + Participante o 02 - Por código de registro agrupado por participante
Diccionario
La estructura está en el paquete 010120 - $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de ajuste SPED/Diccionario
La estructura está en el paquete 010650 - $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de ajuste SPED/Diccionario
Fuentes
Localizados en la branch Innovación: $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED
...
- MASTER - Tabla CJ8
- VIEW_CAB
- GRID - Tabla CJA
- VIEW_LANC
- Campos: CJA_CODTAB|CJA_CODLAN|CJA_VIGINI|CJA_VIGFIM|CJA_REGCAL|CJA_GUIA|CJA_TITULO|CJA_TITGUI|CJA_GERMSG|CJA_OPER|CJA_CNTRL
- VIEW_VLR
- Campos: CJA_CODLAN|CJA_NFBASE|CJA_NFALIQ|CJA_VALOR|CJA_VLOUTR
- VIEW_MSG
- Campos: CJA_CODLAN|CJA_CODMSG|CJA_CODCPL|CJA_TXTDSC
- Funciones de COMBOBOX y consulta estándar
- XTabelaLanc - Campo CJA_CODTAB
- X181ChgF3 - Campo CJA_CODLAN
- CboxTpMsg - Campo CJA_GERMSG
- XTpTITGUI - Campo CJA_TITGUI
- CboxOper - Campo CJA_OPER
- CboxUF - Campo CJA_CNTRL
- Funciones de validaciones:
- Función VldCodigodonde tratamos para no repetir
- Función VigIniFIm que verifica si la fecha inicial y fecha final ya existen en el registro de reglas.
- Fsa181MCpo , valida que hubo el cambio de la opción del campo CJA_CODTAB, elimina los contenidos de los campos CJA_CODLAN|CJA_VIGINI|CJA_VIGFIM
- ChangeLine , esta función actualiza la GRID entre solapas , identificando la línea se sitúa en la SOLAPA y copia la misma posición para las demás solapas, de esta manera el usuario sabrá en qué línea de la solapa anterior está modificando o visualizando.
Relación
- F2B (F2B_REGRA), con el campo CJA_REGCAL
- CIN (CIN_CODIGO) con los campos CJA_VALOR y CJA_VLOUTR
- CJ8 (CJ8_CODREF) con los campos CJA_CODCPL, CJA_CODMSG y CJA_TXTDSC
- CJ9 (CJ9_ID) con el campo CJA_ID_CAB
- CJ9 (CJ9_CODREG) con el campo CJA_CODREG
Automatización
- Case
- $/Protheus_estandar/Fuentes_Doc/Innovación/V12/Libros Fiscais - Configurador/Código de ajuste SPED/Automatización/Cases/FISCadMensajeTestCase.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Codigo de ajuste SPED/Automatización/Cases/FISCadRegraAjustTestCase.PRW
- $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISCadTributoTestCase.PRW
- $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISComRJArqCfgTestCase.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISComRJCfgMovTestCase.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISIndSpArqCfgTestCase.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISIndSpCfgMovTestCase.PRW
- Group
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISCadTestGroup.PRW
- $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISComRJArqCfgTestGroup.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISIndSPArqCfgTestGroup.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISIndSpCfgMovTestGroup.PRW
- Suite
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISCadTestSuite.PRW
- $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISComArqCfgTestSuite.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISIndArqCfgTestSuite.PRW
- $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED/Automatización/Cases/FISIndCfgMovTestSuite
---------------------------------------------------------------------------------------------------------------------------
FISXAPUR- Funciones fiscales
Objetivo y alcance
Separar en el cálculo los valores provenientes de la configuración de tributos versus registro por TES (Legado).
Modificaciones para cumplir con el cálculo de IPI
- Función AjustIPI - Esta función recibe el array aCDAIPI que contiene los datos de la tabla CDA referente a los registros de ajuste del IPI, en la que se agregó más de una posición en el array, mediante el contenido de la variable cSPCFGLEG.
...
Como se modificó el contenido del parámetro 5 de la función RWaGetApur que recibe el código de registro de ajuste del IPI, fue necesario un ajuste adicional utilizando la función SUBSTR().
Modificaciones para cumplir con el cálculo de ICMS
- Función CkapurCDH - Esta función tiene como uno de los objetivos verificar el cálculo anterior y también verificar registros manuales de un posible reprocesamiento del cálculo, cargando las informaciones para el array aDadIC y posteriormente traer a la pantalla del nuevo cálculo.
Para la configuración de tributos se agregó la llamada de la función GerGuiTit() para generar los formularios y títulos de la configuración. También se modificaron algunas validaciones para no cargar en el array aDadIC los registros ICMS de la configuración de tributos, con la finalidad de evitar la duplicación de registros en el cálculo, una vez que los registros automáticos se rehacen en cada nuevo cálculo.
- Función CkLancCDA - Esta función verifica si existe registros en la tabla CDA y genera los array de acuerdo con cada variación del ICMS, para que al final se muestren correctamente en las columnas de cálculo del ICMS.
Se creó una protección en la función para los release anteriores y también un ajuste para cuando haya contenido en la columna "Otros".
En el array aLanc se creó una nueva posición para almacenar la información del campo CDA_REGCAL para poder realizar la distinción de lo que es registro de la configuración versus registro del legado. Con esta información se pudo realizar la segregación de los valores de los códigos de registro en la pantalla de cálculo.
Los Array que se trataron en el fuente son: aCDADifal , aCDAST, aCDAIC y aCDADE (Débitos especiales).
- Función LoadX3Apur - Se agregaron los nuevos campos de la tabla CDA y CJA para proteger la rutina.
---------------------------------------------------------------------------------------------------------------------------
FISXAPURA- Funciones fiscales
El fuente FISXAPURA trata del procesamiento de las informaciones de los cálculos del ICMS e IPI cuando el MultiThread está activo en el escenario del cliente.
Modificaciones para cumplir con el cálculo de IPI
Así como en el fuente FISXAPUR, se agregó una nueva posición en el array aCDAIPI en las llamadas de este, dentro del fuente FISXAPURA.
Modificaciones para cumplir con el cálculo de ICMS
Así como en el fuente FISXAPUR, se agregó una nueva posición en los array aCDADifal , aCDAST, aCDAIC y aCDADE en las llamadas de este, dentro del fuente FISXAPURA.
---------------------------------------------------------------------------------------------------------------------------
FISXDESCR- Conversión de los mensajes con fórmula NPI
Objetivo y alcance
Este fuente tiene el objetivo de convertir referencias de la MATXFIS() y otras funciones en índices para utilizarlos en textos del documento fiscal
Tablas
CJL - Control de mensajes decodificados, donde almacenaremos los mensajes convertidos, de acuerdo con la relación de los códigos del mensaje de la regla del código de ajuste del registro (CJA) .
- CJL_ID ID del mensaje - Relacionaremos con la tabla CDA
- CJL_INDICE Índice del mensaje - En la CDA tenemos 3 campos disponibles para configurar un mensaje para los registros C195 , C197 y 0460. Este campo en la CJL sirve para identificar el campo donde se originó el mensaje.
: CDA_CODCPL (C195) = Índice 01 , CDA_CODMSG (C197) = Índice 02 y CDA_TXTDSC(0460) = índice 03 - CJL_CODMSG Código del mensaje - Campo que almacenará el código del mensaje configurado en la tabla CJA y que también existe en la CJ8.
- CJL_MENSG Mensaje decodificado - Campo MEMO con el mensaje convertido.
Fuentes
Localizados en la branch Innovación: $/Protheus_Estandar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Código de Ajuste SPED
...
---------------------------------------------------------------------------------------------------------------------------
IMPXFIS- Funciones fiscales
Función GFPMxFis - Se agregaron los campos nuevos de la CJ9, CJA, CDA y CDB, utilizando la variable lCdaCof para control.
Se creó la variable lTribCon si tengo algún cálculo de tributo hecho en la configuración para llamar la función RetCodAp - Carga la tabla de código de registro de la configuración para un Json.
Y llamó también BusCodLan.
- Se agregó la tabla CJM - donde se grabará el contenido de las últimas facturas de entrada que componen el montaje del PA y la factura de salida que utilizó al PA.
- Se agregó en la función GFFMxFis la función GETCOMPULTAQ - Busque los datos de MP sus estructuras vs. PA, la Función FisDelCjm, para eliminar la CJM cuando se haga la anulación de la Fact de salida y la Función GETULTAQUI para tratar de la grabación de la CJM para productos que no tienen estructura.
- Función xFisCDA - Graba la tabla CDA de acuerdo con la respuesta del procesamiento del array aGrava.
Para la configuración de tributos se agregaron las variables lCpoCDV y lCdaCof con las protecciones de campo para releases anteriores, además de realizar la grabación de los campos nuevos. - Função xFisAtuSF3 - Responsable por actualizar las tablas de libros fiscales con base en una factura de entrada o salida.
Se agregó la función GETULTAQUI para ajuste de los operandos de última adquisición, relacionados a la reversión de icms para productos que no tienen estructura, en que se hará la grabación en la tabla CJM.
Se agregó la función GETCOMPULTAQ para ajustar el operando de última adquisición, para productos que tienen estructura para efectuar la grabación de la memoria de cálculo en la tabla CJM, verificando todos los componentes y cualquier nivel que componen la estructura de productos configurada.
En la llamada de la función se agregaron 2 nuevos parámetros, y se aprovecharán en la función FISXDAGR que se llama al final de esta función.
Al final de la función se agregó la función FISDELCJM , para realizar la eliminación de los registros de la CJM cuando haya anulación de la factura. - Función xMaFisAjIt - Función responsable por reprocesar la respuesta del array aGrava.
Se agregaron las llamadas del RetCodAP y BusCodLan cuando hayan registros de la configuración de tributos.
---------------------------------------------------------------------------------------------------------------------------
Al inicio del fuente se creó la variable lNewCDV para el control de los nuevos campos de la tabla CDV.
- Función A017LAICMS - Recepcionar en el montaje del GETDADOS del folder de registros fiscales el campo CDV_VLOUTR
- Función MontCols - Reposicionar los campos y agregar el CDV_VLOUTR.
Función a017AjuICM - Agrega en el objeto dependiendo de la respuesta lógica de la variable lNewCDV los siguientes campos:
IF lNewCdv
nRegCalc := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_REGCAL" } )
nValOut := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_VLOUTR" } )
nCodObs := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_CODMSG" } )
nCodOLan := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_CODCPL" } )
nCodDes := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_TXTDSC" } )
nOpBase := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_OPBASE" } )
nOpAliq := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_OPALIQ" } )
nAgrLan := aScan( oLancCDV:aHeader, {|aX| aX[2] == "CDV_AGRLAN" } )
Endif
IF lNewCdv .and. Len(aGrava[nI]) > 17
oLancCDV:aCols[nR,nCodDes] := aGrava[nI,18] //
oLancCDV:aCols[nR,nCodObs] := aGrava[nI,19] //
oLancCDV:aCols[nR,nCodOLan] := aGrava[nI,20] //
oLancCDV:aCols[nR,nRegCalc] := aGrava[nI,22] //
oLancCDV:aCols[nR,nValOut] := aGrava[nI,21] //
oLancCDV:aCols[nR,nOpBase] := aGrava[nI,23] //
oLancCDV:aCols[nR,nOpAliq] := aGrava[nI,24] //
oLancCDV:aCols[nR,nAgrLan] := aGrava[nI,25] //
Endif
- Función a017GrvCDV - Responsable por la grabación de la tabla CDV.
También hace le ajuste referente a los nuevos campos de la CDV de acuerdo con la respuesta lógica de la variable lNewCDV
- Función a017xLAICMS - Aba Lançamento Fiscais adicionar os campos novos se existirem:
- aAdd(aYesFields,"CDV_VLOUTR")
- aAdd(aYesFields,"CDV_TXTDSC")
- aAdd(aYesFields,"CDV_CODCPL")
- aAdd(aYesFields,"CDV_CODMSG")
- aAdd(aYesFields,"CDV_REGCAL")
- aAdd(aYesFields,"CDV_OPBASE")
- aAdd(aYesFields,"CDV_OPALIQ")
...
---------------------------------------------------------------------------------------------------------------------------
MATA103- Facturas de entrada
| Aviso |
|---|
|
En la subida oficial en la Branch Master, será necesario alinear con el Equipo de Compras para poder subir estas modificaciones. |
...
---------------------------------------------------------------------------------------------------------------------------
MATA103x- Funciones de validación y control de interfaz del documento de entrada
| Aviso |
|---|
|
En la subida oficial en la Branch Master, será necesario alinear con el Equipo de Compras para poder subir estas modificaciones. |
...
---------------------------------------------------------------------------------------------------------------------------
MATA920- Salida de facturas de venta manual.
- Función a920LAICMS - Elaboración del Getdados del folder de registros fiscales.
Se encapsularon los campos {"CDA_NUMITE","CDA_CODLAN","CDA_BASE","CDA_ALIQ","CDA_VALOR","CDA_IFCOMP"} en el array aCpCDA y actualice si existen los nuevos campos en el array:
...
---------------------------------------------------------------------------------------------------------------------------
MATA953- Cálculo de ICMS
Objetivo
El fuente MATA953 trata del procesamiento y grabación del cálculo del ICMS como un todo. Para la configuración de tributos se agregaron algunas condiciones para poder traer correctamente las informaciones.
Funciones
- Función A953Processa - Para la configuración de tributos se agregaron las declaraciones de las variables que se utilizarán a lo largo del fuente.
- Función a953Apura - Esta función distribuye la respuesta de los array aCDAIC, aCDAST, aCDADifal, aCDADE a los folders de la pantalla de cálculo del ICMS.
Se hizo un ajuste con el array aCont referente a la secuencia de los códigos de registros mostrados en la pantalla.
También se agregó una condición que compara los tipos de registro de la CDA para hacer la debida segregación en el montaje de la pantalla, de acuerdo con el tipo de cada impuesto del ICMS. - Función DetCodLan - Muestra los detalles de las facturas que graban el código del registro en la tabla CDA.
Se agregó un ajuste para incluir el campo CDA_VLOUTR en la query. - Función ApurDifal - Se agregó un ajuste cuando el tipo de registro sea igual a "CF", se trata de un registro referente a la configuración de tributos.
- Función EstruCLan - Ajuste en el array para agregar el campo CDA_VLOUTR si este existe.
- Función a953TpLanc - Se agregó la respuesta para el tipo de registro "CF" referente a la configuración de tributos.
- Función a953TotSubApur- totaliza entradas y salidas cuando es necesario generar el bloque 1920 del Sped Fiscal.
Para la configuración de tributos se agregó el ajuste para el campo CDA_VLOUTR. - Función RetCodCDA - Crea un JSON con todos los códigos de registros registrados en la tabla CJA filtrado por período + sucursal.
- Función PosTitDel - Crea un JSON con todos los títulos generados por el cálculo MATA953 para eliminar títulos vinculados en la rutina FISA181.
- Función GerGuiTit - Función que genera formulario y título de los códigos de ajuste registrados en la configuración mediante el FISA181
---------------------------------------------------------------------------------------------------------------------------
MATN410B- Función de cálculo de los impuestos contenidos en el pedido de venta
- Función A410LAICMS -
- Folder de registros fiscales en el pedido de venta (Planilla financiera)
- Valida si el campo CDA_VLOUTR existe antes de agregar al Folder
---------------------------------------------------------------------------------------------------------------------------
MATXDEF.CH - Include utilizado en las rutinas IMPXFIS, MATXFIS, entre otras.
Para la configuración de tributos se agregaron algunas definiciones para FieldPos, tablas, referencia de tributos genéricos y referencia de mensajes.
FieldPos
#DEFINE FP_CFC_FCPBSR 1049
#DEFINE FP_CD2_PSCFST 1050
#DEFINE FP_CD2_VFCPDI 1051
#DEFINE FP_CD2_VFCPEF 1052
#DEFINE FP_CFC_FCPAJT 1053
#DEFINE FP_CD2_FCPAJT 1054
#DEFINE FP_CDA_REGCAL 1055
#DEFINE FP_CDA_VLOUTR 1056
#DEFINE FP_CDA_CODMSG 1057
#DEFINE FP_CDA_CODCPL 1058
#DEFINE FP_CDA_TXTDSC 1059
#DEFINE FP_CDA_OPBASE 1060
#DEFINE FP_CDA_OPALIQ 1061
#DEFINE FP_CDV_REGCAL 1062
#DEFINE FP_CDV_VLOUTR 1063
#DEFINE FP_CDV_CODMSG 1064
#DEFINE FP_CDV_CODCPL 1065
#DEFINE FP_CDV_TXTDSC 1066
#DEFINE FP_CDV_OPBASE 1067
#DEFINE FP_CDV_OPALIQ 1068
#DEFINE FP_CJA_FILIAL 1069
#DEFINE FP_CJA_ID 1070
#DEFINE FP_CJA_CODREG 1071
#DEFINE FP_CJA_ID_CAB 1072
#DEFINE FP_CJA_REGCAL 1073
#DEFINE FP_CJA_CODTAB 1074
#DEFINE FP_CJA_CODTAB 1075
#DEFINE FP_CJA_CODLAN 1076
#DEFINE FP_CJA_VIGINI 1077
#DEFINE FP_CJA_VIGFIM 1078
#DEFINE FP_CJA_NFBASE 1079
#DEFINE FP_CJA_NFALIQ 1080
#DEFINE FP_CJA_VALOR 1081
#DEFINE FP_CJA_VLOUTR 1082
#DEFINE FP_CJA_GRGUIA 1083
#DEFINE FP_CJA_CODCPL 1084
#DEFINE FP_CJA_CODMSG 1085
#DEFINE FP_CJA_TXTDSC 1086
#DEFINE FP_CJA_GERMSG 1087
#DEFINE FP_CJ9_FILIAL 1088
#DEFINE FP_CJ9_ID 1089
#DEFINE FP_CJ9_CODREG 1090
#DEFINE FP_CJ9_DESCR 1091
#DEFINE FP_CJ9_VIGINI 1092
#DEFINE FP_CJ9_VIGFIM 1093
#DEFINE FP_CJA_GUIA 1094
#DEFINE FP_CJA_TITULO 1095
#DEFINE FP_CJA_TITGUI 1096
#DEFINE FP_CDA_AGRLAN 1097
#DEFINE FP_CDV_AGRLAN 1098
Tablas
#DEFINE AI_CJ3 49
#DEFINE AI_CJA 50
#DEFINE AI_CJL 51
Referencia Tributo Genérico
#DEFINE TG_IT_VL_MAX 34 //Valor manual máximo del tributo
#DEFINE TG_IT_VL_MIN 35 //Valor manual mínimo del tributo
#DEFINE TG_IT_OPR_MAX 36 //Operador de límite de valor máximo del tributo
#DEFINE TG_IT_OPR_MIN 37 //Operador de límite de valor máximo del tributo
Referencia Mensajes
#DEFINE MSG_CHAVE 1
#DEFINE MSG_INDICADOR 2
#DEFINE MSG_TIPO 3
#DEFINE MSG_REFERENCIA 4
#DEFINE MSG_VAL_REF 5
#DEFINE MSG_LSOMA 6
---------------------------------------------------------------------------------------------------------------------------
MATXFIS- Funciones fiscales
Programa responsable por el cálculo de impuestos fiscales y financieros.
...
---------------------------------------------------------------------------------------------------------------------------
SPEDFISCAL - Rutina de generación del archivo de la EFD ICMS/IPI
Objetivo y alcance
El objetivo es que las configuraciones realizadas en la configuración de tributos sea predominante frente al legado.
Dentro del fuente del SPEDFISCAL existen muchos puntos que modifican el array aLancCDA y aLancCDA2 para poder cumplir con alguna legislación prevista del legado.
Funciones
Creación de la variable estática: oJRetCda
...
---------------------------------------------------------------------------------------------------------------------------
SPEDXDEF.CH - Include utilizado en las rutinas SPEDFISCAL y SPEDXFUN
Para la configuración de tributos se agregaron algunas definiciones para FieldPos, tablas y sucursales
FieldPos
#DEFINE FP_CDA_TXTDSC 243
#DEFINE FP_CDA_CODCPL 244
#DEFINE FP_CDA_CODMSG 245
#DEFINE FP_CDA_VLOUTR 246
#DEFINE FP_CDA_REGCAL 247
#DEFINE FP_CDA_OPBASE 248
#DEFINE FP_CDA_OPALIQ 249
#DEFINE FP_CDA_IDMSG 250
#DEFINE FP_CDV_TXTDSC 251
#DEFINE FP_CDV_CODCPL 252
#DEFINE FP_CDV_CODMSG 253
#DEFINE FP_CDV_VLOUTR 254
#DEFINE FP_CDV_REGCAL 255
#DEFINE FP_CDV_OPBASE 256
#DEFINE FP_CDV_OPALIQ 257
#DEFINE FP_CDV_IDMSG 258
#DEFINE FP_CJ8_CODREF 259
#DEFINE FP_CJ8_DESC 260
#DEFINE FP_CJ8_MENSG 261
#DEFINE FP_CJL_ID 262
#DEFINE FP_CJL_INDICE 263
#DEFINE FP_CJL_CODMSG 264
#DEFINE FP_CJL_MENSG 265
#DEFINE FP_CDA_AGRLAN 266
Tablas
#DEFINE AI_CJA 64
#DEFINE AI_CJ8 65
#DEFINE AI_CJ9 66
#DEFINE AI_CJL 67
Sucursales
#DEFINE PFIL_CJA 111
#DEFINE PFIL_CJ8 112
#DEFINE PFIL_CJ9 113
#DEFINE PFIL_CJL 114
---------------------------------------------------------------------------------------------------------------------------
SPEDXFUN - Funciones fiscales para el SPEDFISCAL
Objetivo y alcance
El objetivo es que los mensajes registrados por medio de la rutina de configuración de tributos se refleje en las funciones del fuente SPEDXFUN para que posteriormente se graben en el archivo de la EFD ICMS/IPI.
También haremos el control referente a la forma como el usuario de la configuración de tributos realizó para agrupar los códigos de ajuste.
Funciones
- Función SPLancCDA - Se agregaron variables de control de los mensajes de la configuración:
Local lMsgCjl := .F.
Local cMsgCjl := ""
Local lProcCDA := .F.
Local cAgrup := ""
Se agregó un nuevo parámetro en la llamada de la función
SPEDFFiltro(1,"CDA",@cAliasCDA,aPar,,,@lMsgCjl)
Después que la query devuelve la función SPEDFFiltro se realiza ajustes con relación al campo de mensajes para los bloques C195, C197, 0460, además de cambiar el montaje como un todo del array aLancIT y aLancCDA2 que se utilizan en el montaje del archivo del SPEDFISCAL para los bloques que utilizan la tabla CDA.
También hace el tratamiento de cómo quedará agrupado el array aLancIT o aLancCDA2 de acuerdo con el contenido del campo CDA_AGRLAN.
Se agregan nuevas posiciones en los array aLancIT y aLancCDA2.
Agrega una nueva posición en el array aInfE531, para tratar el bloque referente al cálculo del IPI. - Función SPEDFFiltro -Responsable para devolver los datos con las informaciones de la tabla CDA vinculada a otras tablas.
Para la configuración de tributos se agregó junto con una protección de release, los nuevos campos de la CDA y también de la tabla CJL.
También hace el ajuste con la variable lógica lMsgCjl.
- Función RetQCDV - Nueva función para devolver la descripción complementaria para el registro E115 si no viniera cumplimentado.
- Función TempCDA - Nueva función que devuelve un objeto con los códigos de registros que están en la CDA por el período del cálculo.
---------------------------------------------------------------------------------------------------------------------------
CONFXFIS - Concentrar todas las funciones y reglas de la configuración de tributos
Objetivo y alcance
Crear un operando para identificar la última adquisición de las materias primas que se utilizaron en la producción del producto terminado, utilizando el flujo de estructura de producto con niveles → Orden de producción → Reserva de producción → Apunte de producción.
...
La estructura está en el paquete 010843 - $/Protheus_Estándar/Fuentes_Doc/Innovación/V12/Libros Fiscales - Configurador/Cod_Reg_Estructura_Prod/Diccionario
Funciones
- Función Static Function ValOperPri, - Se agregó el nuevo operando: VLR_ICMS_ULT_AQUI_ESTRUTURA que se responsabilizará en devolver el valor del ICMS calculado por el ítem de la factura de entrada del material utilizado para fabricar el PA que se venderá. Se agregó en la STATIC aPesqEstr para recibir datos del Producto de la Estructura , Cantidad de la estructura y cantidad vendida.
Se agregaron referencias lógicas para identificar el uso de los operandos necesarios para componer el valor de reversión, tanto para productos con estructura como para productos de reventa. - Función GetCompUltAq - Con la inteligencia de rastrear el producto PA en el pedido de venta, busque en la SD1 y en la SG1 la estructura de producto que originó la producción del PA, recupere el valor unitario del ICMS de la última adquisición para componer el valor total de ICMS que se vinculará por código de registro de reversión de crédito.
La devolución de dicha query, mapeará la última Fact de entrada de adquisición, y grabar en la variable nIcmsEst := (((Valor del ICMS FACT ENTRADA MP / QTD Adquirida MP )* QTD Utilizada en la n) * Cantidad vendida.
El valor de la nIcmsEst se mostrará en la planilla financiera en la SOLAPA Código de registro, que se configuró debidamente en la rutina FISA181 con una regla tributaria.
En esta función tenemos también la grabación de la última factura de entrada referente a adquisiciones de MP que se utilizaron en la producción del PA vendido, además de las informaciones de la factura de salida y el valor del ICMA de reversión que se utilizará. Estas informaciones se grabarán en la tabla CJM. - Función GravaCJM - Recibe un array tratado dentro de la función Getcompultaq, para efectuar la grabación de los datos en la tabla CJM utilizando como base el método FWBulk().
- Función GetUltAq - Refactorización de la query para TCgenQry2 y también se agregaron nuevos campos para utilizar en la grabación de la CJM.
También se agregaron ajustes en la función para que efectúe la grabación de la CJM llamando la función - Función FISDELCJM - Esta función se creó para que en el momento de eliminar la factura de salida, el contenido grabado para dicha factura de salida se eliminará.
...
--------------------------------------------------------------------------------------------------------------------------------------
FISCOMPFOR - Concentrar todas las funciones que crean y manejan el componente de fórmulas de la configuración de tributos.
Objetivo y alcance:
Agregue una nueva opción de operando para que el cliente recupere el valor del ICMS referente a la compra de materias primas utilizadas en el producto terminado, que se venderá en operaciones exentas con derecho a la reversión de este valor inicial, mediante el código de registro.
Funciones:
- Función FormOperPri - Se activó en el array aCarga la nueva opción:
aadd(aCarga,{"Valor del ICMS (Última adquisición de estructura de producto)" ,"VLR_ICMS_ULT_AQUI_ESTRUTURA"})
---------------------------------------------------------------------------------------------------------------------------------------
backoffice.fiscal.configurador.relatorioEstornocredito- Informe de verificación Cálculo de Reversión del ICMS de productos con estructura y reventa
Objetivo y alcance:
Genere un informe de verificación con base en lo que se grabó en la CJM - Control de Reversión de ICMS - Operando de la última adquisición por estructura o PA para reventa.
...
Este informe tiene como objetivo, leer esta tabla y traer datos para verificación.
- relatorioEstornocredito - Monta la estructura de TRCELL para mapear las facturas de salida y su entrada que originó el valor de la reversión.
- ReportPrint - Realiza la query con CJM y CDA para relacionar los campos que se utilizarán en la impresión.
- seletorFilial - Función responsable por abrir la pantalla de selección de sucursales.
...