Se incluyó la Rutina FISA116 para cálculo de la base y valor de ICMS para registro H020 SPED FISCAL.
Esta rutina tendrá el objetivo de realizar la composición de los valores que se generarán en el registro H020 del SPED Fiscal. Los valores ser compondrán básicamente considerando el inventario de acuerdo con la fecha de cierre de stock informada, y las opciones de reglas definidas previamente, ya que la forma de obtener los valores es diferente en algunos Estados/Provincias/Regiones.
Cuando los valores estén calculados, se grabarán en la tabla, quedando de esta manera disponibles para la generación del SPED Fiscal en el registro H020.Para el procesamiento de la rutina, el usuario debe informar la fecha de cierre del stock, y definir entre las opciones del combo, cuál será la regla aplicada para procesar los valores de ICMS. Después de la confirmación de estas informaciones, la rutina debe procesar todos los productos en stock que tuvieran modificación de tributos, es decir, que tuvieran el campo B5_ALTTRIB igual a “1-Sí”, aplicar la regla seleccionada y grabar las informaciones en la tabla.
Esta rutina debe ser procesada por cada sucursal que entregará el SPED Fiscal, ya que el mismo producto podrá ser procesado con reglas diferentes dependiendo del Estado/Prov/Reg del Cliente, pues puede ser el caso de tener sucursales en varios Estados/Provs/Regs, y el registro del producto sea compartido. El procesamiento se basa en la regla definida previamente, que puede ser utilizada para más de un Estado/Prov/Reg.
En Configurador (SIGACFG) acceda a Entorno/Registros/Menús e incluya en el menú del módulo Libros fiscales (SIGAFIS) la opción para ejecución del Registro, de acuerdo con la siguiente especificación:
Menú | Actualizaciones |
---|---|
Submenú | SPED |
Nombre de la rutina | Comp. Val. ICMS H020 |
Programa | FISA116 |
Módulo | 09 |
Tipo | 01 |
Tablas | F0M |
F0M – Composición de los valores de ICMS
Orden | Clave | Descrição |
---|---|---|
1 | F0M_FILIAL+F0M_DTFECH+F0M_CODIGO+F0M_CST+F0M_SITUA+F0M_CLIFOR+F0M_LOJA+F0M_REGRA | Dt. Fecham.+Codigo+CST+Situacao+Clifor+Loja+Regra |
Creación de Preguntas en el archivo SX1 – Registro de preguntas:
Grupo | FISA116 |
---|---|
Orden | 01 |
Pregunta | Fecha de cierre de inventario |
Tipo | Fecha |
Tamaño | 8 |
Grupo | FISA116 |
---|---|
Orden | 02 |
Pregunta | Regla por aplicarse |
Tipo | Carácter |
Tamaño | 1 |
Opciones | 1-Md.Est.ICMS/ST 2-Cost.Med. MVA 3-Pr+Seg+flet–IPI 4-Legis. Esp. 5-Media ponderada de la base de ICMS ST pagada anteriormente 6-Media ponderada de la base de ICMS con reducción |
Importante
Para la actualización de los campos campos F0M_REGRA y F0M_MOTINV, en clientes que operan en las releases 12.1.2210 o anteriores, es necesaria la ejecución del compatibilizador UPDDISTR con el paquete especial (SDFBRA.txt).
Esta corrección se pondrá a disposición en la Expedición continua del y al paquete se podrá acceder por medio de los enlaces puestos a disposición en la documentación Paquetes de actualización - Fiscal.
Información sobre la Expedición continua, acceda a: http://tdn.totvs.com/x/H4uCEw.
Información sobre el compatibilizador UPDDISTR acceda a: Actualizador de diccionario y base de datos - UPDDISTR.
Grupo | FISA116 |
---|---|
Orden | 03 |
Pregunta | ¿Separa por CST del documento? |
Tipo | Carácter |
Tamaño | 1 |
Opciones | 1-No 2-Sí |
Grupo | FSR116 |
---|---|
Orden | 01 |
Pregunta | Fecha de cierre de inventario |
Tipo | Fecha |
Tamaño | 8 |
Creación del Campo en el archivo SX2
Clave | Nombre | Modo | Pyme |
---|---|---|---|
F0M | Composición de los valores de ICMS | Exclusivo | Sí |
Creación del Campo en el archivo SX3 – Campos:
Campo | F0M_FILIAL |
---|---|
Tipo | Carácter |
Tamaño | 2 |
Decimal | 0 |
Formato | @! |
Título | Sucursal |
Descripción | Sucursal del sistema |
Utilizado | No |
Obligatorio | No |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Grupo de campos | 033 - Tamaño de la sucursal |
Campo | F0M_REGRA |
---|---|
Tipo | Carácter |
Tamaño | 1 |
Decimal | 0 |
Formato | @! |
Título | Regla Cálc. |
Descripción | Regla de cálculo |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Opciones | 1=Med. Pond. Base de ICMS ST; 5=Media ponderada de la base de ICMS ST pagada anteriormente 6=Media ponderada de la base de ICMS con reducción |
Val. Sistema | Pertence("123456") |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_SITUA |
---|---|
Tipo | Carácter |
Tamaño | 1 |
Decimal | 0 |
Formato | @! |
Título | Situación |
Descripción | Situación |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Opciones | 0=Ítem en su poder; |
Val. Sistema | Pertence("012") |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_DTFECH |
---|---|
Tipo | Fecha |
Tamaño | 8 |
Decimal | 0 |
Formato | 99/99/9999 |
Título | Fch. Cierre |
Descripción | Fch. Cierre de stock |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Val. Sistema | DataValida() |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_CODIGO |
---|---|
Tipo | Carácter |
Tamaño | 15 |
Decimal | 0 |
Formato | @! |
Título | Código |
Descripción | Código del producto |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Val. Sistema | ExistCpo("SB1") |
Contexto | Real |
Propiedad | Modificar |
Cons. Estándar | SB1 |
Campo | F0M_CST |
---|---|
Tipo | Carácter |
Tamaño | 3 |
Decimal | 0 |
Formato | @! |
Título | Sit.Tribut. |
Descripción | Situación tributaria |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_BASICM |
---|---|
Tipo | Numérico |
Tamaño | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Base Unit |
Descripción | Base unitaria de ICM |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Val. Sistema | Positivo() |
Contexto | Real |
Propiedad | Modificar |
Disparadores | Sí |
Campo | F0M_ALIQ |
---|---|
Tipo | Numérico |
Tamaño | 6 |
Decimal | 2 |
Formato | @E 999.99 |
Título | Alíc. ICM |
Descripción | Alícuota de ICMS |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_VALICM |
---|---|
Tipo | Numérico |
Tamaño | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Val.Unit.ICM |
Descripción | Valor unitario ICMS |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Disparadores | Sí |
Campo | F0M_MVA |
---|---|
Tipo | Numérico |
Tamaño | 6 |
Decimal | 2 |
Formato | @E 999.99 |
Título | MVA |
Descripción | Margen Val. ICMS/ST |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Val. Sistema | Positivo() |
Contexto | Real |
Propiedad | Modificar |
Disparadores | Sí |
Campo | F0M_QUANT |
---|---|
Tipo | Numérico |
Tamaño | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Cantidad |
Descripción | Cantidad en stock |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_VALCMD |
---|---|
Tipo | Numérico |
Tamaño | 18 |
Decimal | 4 |
Formato | @E 9,999,999,999,999.9999 |
Título | V. C. Med. |
Descripción | Valor costo medio |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_CLIFOR |
---|---|
Tipo | Carácter |
Tamaño | 6 |
Decimal | 0 |
Formato | @! |
Título | Cli/Prov |
Descripción | Cliente / Proveedor |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Real |
Validación | vacío() .or. (ExistCpo('SA1') .or. ExistCpo('SA2')) |
Propiedad | Modificar |
Grupo de campos | 001 - Código Cliente/Proveedor |
Campo | F0M_LOJA |
---|---|
Tipo | Carácter |
Tamaño | 4 |
Decimal | 0 |
Formato | @! |
Título | Tienda |
Descripción | Tienda Cliente / Proveedor |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Grupo de campos | 002 - Tienda Cliente/Proveedor |
Campo | F0M_TOTICM |
---|---|
Tipo | Numérico |
Tamaño | 18 |
Decimal | 4 |
Formato | @E 9,999,999,999,999.9999 |
Título | Total ICMS |
Descripción | Valor total de ICMS |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_DESPRO |
---|---|
Tipo | Carácter |
Tamaño | 50 |
Decimal | 0 |
Formato | @! |
Título | Des. Producto |
Descripción | Descripción de producto |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Virtual |
Propiedad | Visualizar |
Relación | Iif( INCLUI , "" , Marque ( "SB1" , 1 , xFilial("SB1") + F0M_CODIGO , "B1_DESC" ) ) |
Campo | F0M_UM |
---|---|
Tipo | Carácter |
Tamaño | 15 |
Formato | @! |
Título | Unidad |
Descripción | Unidad de medida |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Virtual |
Consulta estándar | SAH |
Propiedad | Visualizar |
Help | Unidad de medida |
Validación | ExistCpo("SAH") |
Campo | F0M_VUNIT |
---|---|
Tipo | Numérico |
Tamaño | 18 |
Decimal | 6 |
Formato | @E 99,999,999,999.999999 |
Título | Valor Unit. |
Descripción | Valor Unitario |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Real |
Help | Valor unitario del producto |
Propiedad | Modificar |
Campo | F0M_TPCF |
---|---|
Tipo | Carácter |
Tamaño | 1 |
Formato | @! |
Título | Cli/Prov |
Descripción | Cliente/Proveedor |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Virtual |
Opciones | C=Cliente;F=Proveedor |
Propiedad | Visualizar |
Help | Indica si el participante es cliente o proveedor. |
Validación | Vacío().or. Pertence("CF") |
Campo | F0M_CONTA |
---|---|
Tipo | Carácter |
Tamaño | 20 |
Formato | @! |
Título | Cta Contable |
Descripción | Cuenta contable |
Utilizado | Sí |
Obligatorio | No |
Browse | Sí |
Contexto | Virtual |
Consulta estándar | CT1 |
Grupo | 033 |
Propiedad | Visualizar |
Help | Indica si el participante es cliente o proveedor. |
Validación | vacío().or. Ctb105Cta() |
Campo | F0M_QTDCST |
---|---|
Tipo | Numérico |
Tamaño | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Cant. por CST |
Descripción | Cantidad por CST |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Campo | F0M_MOTINV |
---|---|
Tipo | Carácter |
Tamaño | 2 |
Decimal | 0 |
Formato | @! |
Título | Mot. Invent. |
Descripción | Motivo de inventario |
Utilizado | Sí |
Obligatorio | Sí |
Browse | Sí |
Contexto | Real |
Propiedad | Modificar |
Importante
Para la creación del campo F0M_QTDCST y de la pregunta Separa por CST del documentocreada en Pregunta FISA116 - Orden 03, en clientes que operan en las releases 12.1.2210 o anteriores, es necesaria la ejecución del compatibilizador UPDDISTR con el paquete especial (SDFBRA.txt).
Esta corrección se pondrá a disposición en la Expedición continua del y al paquete se podrá acceder por medio de los enlaces puestos a disposición en la documentación Paquetes de actualización - Fiscal.
Información sobre la Expedición continua, acceda a: http://tdn.totvs.com/x/H4uCEw.
Información sobre el compatibilizador UPDDISTR acceda a: Actualizador de diccionario y base de datos - UPDDISTR.
Creación del parámetro en el archivo SX6 – parámetros:
Ítem/Carpetas | Descripción |
---|---|
Nombre | MV_TXTH020 |
Tipo | Carácter |
Descripción | Informe el texto complementario para componer el campo 09-TXT_COMPL del registro H010 cuando exista el Registro H020 correspondiente |
Creación del parámetro en el archivo SX7 – Disparadores
Campo | F0M_BASICM |
---|---|
Secuencia | 001 |
Cnt. Dominio | F0M_VALICM |
Tipo | P - Primario |
Regla | (M->F0M_BASICM * (M->F0M_ALIQ/100)) |
Campo | F0M_MVA |
---|---|
Secuencia | 001 |
Cnt. Dominio | F0M_BASICM |
Tipo | P - Primario |
Regla | ((M->F0M_VALCMD*(1 + M->F0M_MVA))/M->F0M_QUANT) |
Campo | F0M_VALICM |
---|---|
Secuencia | 001 |
Cnt. Dominio | F0M_TOTICM |
Tipo | P - Primario |
Regla | (M->F0M_VALICM * M->F0M_QUANT) |
La base de cálculo se calculará en función de la regla seleccionada por el usuario, sin embargo la alícuota interna se generará de la misma forma en todas las reglas, considerando la alícuota informada en el registro de producto B1_PICM, o entonces la del parámetro MV_ICMPAD si el campo B1_PICM estuviera en cero.
Esta regla básicamente hará la media ponderada de la base de cálculo del ICMS ST de las últimas adquisiciones del producto procesado, considerando la cantidad en stock, es decir, si hubiera 100 unidades del producto en stock, entonces deben considerarse tantas facturas necesarias para componer la cantidad de 100 unidades, y entonces hacer la media ponderada:
Base de cálculo unitaria = Suma de la base de cálculo ICMS ST / Cantidad en stock
Si la Pregunta Detalla por CST estuviera seleccionada con la Opción "Sí", la Base de cálculo unitaria considerará de forma proporcional la suma de la Base de cálculo ICMS ST por CST del producto contenido en el Documento de entradaa.
En esta regla el cálculo se realizará considerando el valor del costo medio calculado por el stock, debiendo solamente aplicar el MVA. Entonces quedará de la siguiente manera:
Base de cálculo unitaria = Valor del costo medio * (1 + (MVA del producto / 100) )
Recordando que el MVA podrá informarse en los registros de Producto, Excepción fiscal y Estado/Prov/Reg.vs.Estado/Prov/Reg., sin embargo no conseguimos obtener el MVA de estos registros, por ejemplo si el MVA se definiera en la Excepción fiscal, no conseguiremos ubicar en la línea correcta solamente con código de producto, no podemos utilizar MVA grabados en la factura, pues es el valor utilizado en la época, puede haberse modificado, además del escenario del borrado del ST, los registros no tendrán más el MVA completado. Por este motivo para esta regla de cálculo el usuario debe informar manualmente el valor del MVA vigente después del procesamiento del inventario.
Para esta regla, la base de cálculo se obtendrá por la suma del valor del precio + seguro + flete – IPI de las últimas adquisiciones del producto. Las facturas de adquisiciones que se considerarán deben ser las más recientes, y las facturas deben ser suficientes para componer la cantidad informada en stock, es decir, si hubiera 100 unidades del producto en stock, entonces deben considerarse tantas facturas necesarias para componer la cantidad de 100 unidades, y entonces realizar la media ponderada, ya que la base de cálculo es unitaria.
Base de cálculo unitaria = (Suma del precio de adquisición + seguro + flete – IPI) / Cantidad en stock
Si la Pregunta Detalla por CST estuviera seleccionada con la Opción "Sí", la Base de cálculo unitaria considerará de forma proporcional la suma del Precio de adquisición + seguro + flete - IPI por CST del producto contenido en el documento de entrada.
Esta regla se aplicará en las situaciones donde la base de cálculo unitaria debe definirse por medio de valores publicados en la legislación que trata de este producto en el régimen de ST, que pueden ser diversas legislaciones de diferentes productos variando incluso por Estado/Prov/Reg, además de poder modificarse, siendo inviable de esta manera realizar el mapeo de estas informaciones en el sistema. Por este motivo, al seleccionar esta regla, la rutina completará solamente el CST de ICMS y alícuota interna del producto, quedando por cuenta del usuario informar el valor de la base de cálculo unitaria de la legislación específica.
Esta regla básicamente hará la media ponderada de la base de cálculo del ICMS ST de las últimas adquisiciones del producto procesado, considerando la cantidad en stock, es decir, si hubiera 100 unidades del producto en stock, entonces deben considerarse tantas facturas necesarias para componer la cantidad de 100 unidades, y entonces hacer la media ponderada:
Base de cálculo unitaria = Suma de la base de cálculo ICMS ST / Cantidad en stock
Esta regla básicamente hará la media ponderada de la base de cálculo del ICMS Propio e ICMS ST de las últimas adquisiciones del producto procesado que se configuraron con reducción de base y sus valores grabados en los campos FT_BASEICM y FT_BASERET , considerando la cantidad en stock, es decir, si hubiera 100 unidades del producto en stock, entonces deben considerarse tantas facturas necesarias para componer la cantidad de 100 unidades, y entonces realizar la media ponderada:
Base de cálculo unitaria = Suma de la base de cálculo ICMS o ICMS ST / Cantidad en stock
Importante
Esta regla considera solamente productos cuya clasificación fiscal de stock (B1_CLASFIS) sea 60 - Pagado anteriormente
Importante
En el momento que incluyo un Motivo de inventario Tipo 01 - Final del período se realiza la importación del inventario vía FISA116 con la regla 6 - Reducción de base,, actualizo también el campo F0M_MOTINV.
Esta nueva regla, busca en la tabla SFT los campos FT_BASEICM donde ocurrió la reducción al configurarse con CST 20, y el campo FT_BASERET para obtener el valor con reducción del ICMS ST al configurarse con CST 70.
Se creó una memoria de campo para almacenar los valores F0M_BASEICM y F0M_VALICM.
Ejemplo: consideremos una operación de adquisición de doas facturas:
1ª Factura: 1 unidad por el valor total de 1000,00, con una reducción del 50%, el valor con reducción es de 500,00.
2ª Factura: 1 unidad por el valor total de 1000,00, con una reducción del 60%, el valor con reducción es de 400,00.
Realice el registro del Motivo de inventario con cierre el 31/12/2022, utilizando el motivo 01 - Final del período.
A continuación, realice el Registro de inventario P7 (MATR460) con cierre el 31/12/2022.
Acceda a la rutina FISA116 - Composición de valores del ICMS:
Aplique la nueva regla 06 - Media ponderada de la base de ICMS con reducción.
F0M_BASEICM = (500 + 400) / 2 unidades = 250,00
F0M_VALICM = 900 * 18% (alícuota de ICMS del producto) = 162,00 / 2 = 81,00
F0M_TOTICM = 81 * 2 unidades = 162,00
Generación del Bloque H
En el siguiente ejemplo donde tenemos 4 facturas con reducciones de ICMS Propio y ICMS ST , sus H020 con CST 20 y 70.
Este informe buscará las informaciones de la nueva tabla con el movimiento generado a partir de la rutina de que calcula las informaciones de ICMS
Actualmente el registro H020 se genera con el valor del costo medio, generado por el inventario, considerando también la opción de modificación de tributación en el complemento del producto el B5_ALTTRIB. Sin embargo, con esta implementación tendremos más de una forma de generación.
La primera de estas será:
1) por medio del punto de entrada, el SPEDH020, donde el usuario devolverá todos los valores del H020.
2) verificar si existe información grabada para el producto y fecha de cierre de stock, si hubiera, entonces H020 debe generarse con informaciones procesadas por la nueva rutina.
Si no hubiera punto de entrada ni información en la nueva tabla, entonces debe procesarse como siempre, con el costo medio.
Recordando que la fecha de cierre de stock informada en el SPED Fiscal debe ser la misma fecha informada en el procesamiento de la nueva rutina.
Cuando un determinado producto se borra del régimen de ST, se trata de hipótesis de crédito para el contribuyente, pues las salidas de estos productos ahora serán tributadas, sin embargo este no tomó crédito cuando compró la mercadería, ya que estaba prevista en el régimen ST, entonces para compensar el contribuyente tendrá derecho a los créditos de estos productos analizados en el stock.
Cuando un determinado producto se incluye en el régimen de ST, entonces se trata de hipótesis de débito, pues las salidas no más se tributarán, sin embargo el contribuyente tomó crédito en la adquisición, y como el producto está en el régimen de ST no tiene derecho al crédito de ICMS.
Cada Estado/Prov/Reg determinará cómo proceder en la utilización de los créditos y pago de estos débitos, si será por medio de ajuste, por medio de factura, financiado o integral.
En esta implementación, los siguientes estados estaban vinculados: ES, AM, SC, RS, SP y MS.
PE - SPEDH020 - SPEDFISCAL - Registro H020
Verificar si para los productos que tuvieron movimiento el campo "Modif. Trib" (B5_ALTTRIB) en el Complemento de producto está completado (debe estar = 1) el producto debe estar registrado en la rutina de motivo de inventario (FISA120) con la misma fecha de cierre de stock informada en la rutina F0M.
Si los campos de Unidad (F0M_UM) o Cuenta contable (F0M_CONTA) estén en blanco, en el procesamiento del SPED FISCAL se considerará el contenido registrado en el producto (SB1).
Importante
Para atender una legislación específica del Estado de Rio Grande do Sul - RS (IN 45/98,), donde es necesario generar más de 1 H020 para el mismo H010 agrupando las informaciones de acuerdo con el Código de situación tributaria - CST. Existe la posibilidad de procesar la rutina FISA116 para agrupar por CST por medio del Pergunte "Separa por CST del Documento - 2 = Sí", de esta manera se generará el H020 de acuerdo con Producto + CST.
Este mismo tratamiento es posible de generarse por medio del PE SPEDH020.
Al seleccionar la opción de procesar inventario se procesará el inventario por medio de la función SPDBlocH que devolverá el stock con base en la fecha de cierre informada.
Para que los datos contenidos en la tabla F0M se consideren en el archivo SPED FISCAL deben seguir estas reglas:
Importante
Si fuera necesario informar más de un cierre de inventario, debe utilizarse la rutina de Motivo de inventario (FISA120)
SPDFIS - Motivo de inventario Bloque H
Se incluyó el punto de entrada SPEDALTH para procesamiento del registro H010 SPED FISCAL.
Por medio de este punto de entrada es posible enviar la tabla temporal que será procesada por la rutina SPED FISCAL y Composición del registro H020 (FISA116) sin que se procese el Stock.