01. DATOS GENERALES
Producto | TOTVS Backoffice | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||
Segmento: | Servicios | |||||||||
Módulo: | SIGAFAT - Facturación | |||||||||
Función: |
| |||||||||
Ticket: | 10286199 | |||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-10756 |
02. SITUACIÓN/REQUISITO
Cuando se realiza el timbrado de una Factura de Venta que contiene un ítem con una TES configurada como bonificación "¿Agrega Valor?(F4_AGREG) = N -No", es generado el nodo de ese concepto con valor "0.00" y al timbrarla no permite ya que el SAT indica que este valor unitario debe ser mayor a cero.
**Para mayor información Guía de llenado CFDI 3.3
03. SOLUCIÓN
- Dentro de la rutina Funciones genéricas de Localizaciones (LOCXFUNA):
- Se crea la función LxfBusTES() donde indica si la TES del ítem tiene configurada una TES de bonificación (¿Agrega Valor? (F4_AGREG) = N - No).
- Se modifica la función fImptosD() donde se realiza cuando la TES del ítem contenga el campo (F4_AGREG) = N - No), el valor unitario del ítem será de "0.01" y el importe total del ítem será de "cantidad del ítem* 0.01"
- Se crea la función fSumBC() donde realiza el calculo de los ítems de la factura que tienen una TES de bonificación.
- Dentro del Generación de XML para Documentos de Salida (FATSMEX.INI), se realiza la modificación en el subtotal y total donde suma el valor actual con lo obtenido en la función fSumBC().
- Realizar un respaldo de repositorio (.rpo)
Aplicar un el parche correspondiente al issue DMINA-10756 y actualizar el archivo FATSMEX.INI
Importante
Si en su ambiente ya existe un archivo FATSMEX.INI y contiene personalizaciones, es recomendable evitar su actualización; en cambio deberá editarlo y realizar las siguientes modificaciones que corresponden a la solución del presente issue:
En la INICIALIZACION
Agregar una nueva línea
(PRE) _aTotal[103] := fSumBC(SF2->F2_DOC,SF2->F2_SERIE,SF2→F2_CLIENTE,SF2->F2_LOJA)
Dentro de la CADENAORIGINAL_SELLO
En el "Subtotal"
Cambiar la línea:
(PRE) cCadOrig += Alltrim(STR(IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, (SF2->F2_VALMERC + SF2->F2_DESCONT) - _aTotal[036] ),14,2)) + _aTotal[098]
Por estas línea:
(PRE) cCadOrig += Alltrim(STR(IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, (SF2->F2_VALMERC + _aTotal[103] + SF2->F2_DESCONT) - _aTotal[036] ),14,2)) + _aTotal[098]
En el "Total"
Cambiar la línea:
(PRE) cCadOrig += Alltrim(Str(IIf(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, iif(GetSx3Cache("F2_VALBRUT","X3_DECIMAL")<= 2,SF2->F2_VALBRUT ,Round(SF2->F2_VALBRUT,2))),14,2)) + _aTotal[098]
Por estas línea:
(PRE) cCadOrig += Alltrim(Str(IIf(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, iif(GetSx3Cache("F2_VALBRUT","X3_DECIMAL")<= 2,SF2->F2_VALBRUT + _aTotal[103],Round(SF2->F2_VALBRUT,2) + _aTotal[103])),14,2)) + _aTotal[098]
Dentro de los datos de la FACTURA
En el "Subtotal"
Cambiar la línea:
(PRE) _aTotal[001] += ' SubTotal="' + Alltrim(STR(IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, (SF2->F2_VALMERC + SF2->F2_DESCONT) - _aTotal[036] ),14,2)) + '"'
Por estas línea:
(PRE) _aTotal[001] += ' SubTotal="' + Alltrim(STR(IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, (SF2->F2_VALMERC + _aTotal[103] + SF2->F2_DESCONT) - _aTotal[036] ),14,2)) + '"'
En el "Total"
Cambiar la línea:
(PRE) _aTotal[001] += ' Total="' + Alltrim(Str(IIf(Alltrim(SF2->F2_TIPODOC) == "21", 0, iif(GetSx3Cache("F2_VALBRUT","X3_DECIMAL")<= 2,SF2->F2_VALBRUT,Round(SF2->F2_VALBRUT,2))),14,2)) + '"'
Por estas línea:
(PRE) _aTotal[001] += ' Total="' + Alltrim(Str(IIf(Alltrim(SF2->F2_TIPODOC) == "21", 0, iif(GetSx3Cache("F2_VALBRUT","X3_DECIMAL")<= 2,SF2->F2_VALBRUT + _aTotal[103],Round(SF2->F2_VALBRUT,2)+ _aTotal[103])),14,2)) + '"'
Nota:
Si tiene dudas de cómo realizar los cambios, consulte al área de Soporte o Servicios.
- Validar que se tiene activa la funcionalidad de Facturación Electrónica para México CFDI (véase la sección 05. ASUNTOS RELACIONADOS)
- Desde el Configurador (SIGACFG)
- Habilitar como usado el campo Agrega Valor - "F4_AGREG" dentro de la tabla Tipos de Entrada y Salida "SF4".
- Habilitar como usado el campo Agrega Valor - "F4_AGREG" dentro de la tabla Tipos de Entrada y Salida "SF4".
- Contar con un Cliente.
- Contar con uno o más Productos.
- En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Archivos | Tipos de Entrada y Salida (MATA080):
- Configurar un Tipo de Entrada/Salida de tipo Salida, sin cálculo de los impuestos y con ¿Agrega Valor? = N.
- Configurar un Tipo de Entrada/Salida de tipo Salida, con cálculo del impuesto IVA.
- Configurar un Tipo de Entrada/Salida de tipo Salida, sin cálculo de los impuestos y con ¿Agrega Valor? = N.
- En el módulo Facturación (SIGAFAT)
- Ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
- Incluir una nueva Factura de Salida, en donde:
- El primer ítem utilizar el Tipo de Entrada/Salida con cálculo de los impuestos IVA.
- El segundo ítem utilizar el Tipo de Entrada/Salida sin cálculo del impuesto y con ¿Agrega Valor? = N.
- Una vez que se tienen informados todos los datos del documento, presionar Grabar para confirmar el guardado.
- Confirmar la generación del CFDI.
- Validar que hay haya generado con éxito el Timbre Fiscal.
- Validar que en el XML se visualicen en el nodo del segundo concepto con valor unitario de "0.01".
04. INFORMACIÓN ADICIONAL
El parámetro MV_BONUSTS, es utilizado para informar el código de TES utilizado por reglas de bonificación.
Se debe contar con la funcionalidad de Facturación Electrónica de modalidad CFDI 3.3, y la solución aplica para versión 12.1.17 o superior.¡IMPORTANTE!
05. ASUNTOS RELACIONADOS
- Facturación Electrónica México CFDI 3.3
DT_Factura_Electronica_Mexico_CFDI_Version_3_3