Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFAT - Facturación
Función:
RutinaNombre TécnicoFecha
LOCXMEXFunciones Genéricas para Documentos Fiscales para México.13/10/2022
FATEMEX.INIGeneración de XML de Documentos de Entrada11/10/2022
País:México
Ticket:No aplica
Requisito/Story/Issue (informe el requisito vinculado):DMINA-16686  (Pacote: 011130)


02. SITUACIÓN/REQUISITO

Se requiere permitir modificar y/o indicar la Forma de Pago del Documento desde que se está generando, por lo tanto se requiere activar un campo donde se indique la "Forma de Pago" en el encabezado de la Nota de Crédito de Cliente (NCC), así como agregar una validación para que al guardar la Nota de Crédito, se verifique que si la Forma de pago(F1_TPDOC) es igual a 15 - Condonación de acuerdo al catálogo c_FormaPago definido por el SAT, si existen Facturas relacionadas estás deben tener saldo mayor a cero en las Cuentas por Cobrar.

03. SOLUCIÓN

En la rutina Funciones Genéricas para Documentos Fiscales para México "LOCXMEX":

Se activó el campo Forma de Pago (F1_TPDOC), para que se visualice en la pantalla de la generación de Notas de Crédito (MATA465N), por default este campo se mostrará con valor 99 - Por definir.

Se crea la función LxMxPagoNC() que cumplen con la siguiente regla de negocio:

  • Si la condición de pago de la Nota de Crédito de Cliente (NCC), tiene indicado el campo Forma Pago (F1_TPDOC) con valor 15 - Condonación, y la Nota de Crédito tiene Facturas relacionadas, estás deben tener saldo mayor a cero en la tabla de Cuentas por Cobrar (SE1), en caso contrario no se permitirá el guardado de la Nota de Crédito.


IMPORTANTE

Actualmente si se indica una Forma de Pago diferente al valor 99 - Por definir, se debe indicar un Método de Pago diferente a "PPD - Pago en Parcialidades



  1. Realizar un respaldo del repositorio del ambiente (archivo RPO).
  2. Aplicar el parche correspondiente a la issue DMINA-16686.
  3. Validar que las rutinas incluidas en el parche coincidan con las mencionadas en la sección "Función" del encabezado del presente Documento Técnico, así como las fechas.
  4. Tener la configuración en el Diccionario de Datos, de acuerdo a lo mencionado en la sección 04. INFORMACIÓN ADICIONAL
  5. Realizar los cambios del archivo FATEMEX.INI que se mencionan en la sección 04. INFORMACIÓN ADICIONAL
  6. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Archivos | Condiciones de Pago " (MATA360).
    • Configurar una Condición de Pago, informando el campo Met Pago SAT (E4_MPAGSAT) con el valor PUE-Pago en una sola exhibición.
  1. Ingresar al módulo Facturación (SIGAFAT) ir al menú "Actualizaciones | Facturación | Facturaciones "
    • Incluir una Factura de Venta (NF).
  2. Ingresar al módulo Facturación (SIGAFAT) ir al menú "Actualizaciones | Facturación | Generac de Notas de Crédito y Debito" (MATA465N).
  3. En el parámetro ¿Tipo Factura?, seleccionar la opción Cargo, para la creación de una Nota de Crédito de Cliente (NCC).
  4. Indicar una Condición de Pago con Método de Pago SAT igual a PUE-Pago en una sola exhibición. (ver pre-condiciones)
  5. Informar el campo Forma de Pago (F1_TPDOC).
  6. Indicar los ítems del documento, y si se desea indicar una factura relacionada Doc Originial (D1_NFORI) y Serie Original(D1_SERIORI), se puede hacer desde Otras acciones de la acción Doc Orig.
  7. Guardar la Nota de Crédito de Cliente (NCC).
    NOTA: Si la Factura asociada no tiene saldo en Cuentas por Pagar (SE1), y se indicó la Forma Pago igual 15 - Condonación, deberá indicar otra Forma de Pago ya que no permitirá el guardado con ese valor.
  8. Confirmar la generación y timbrado del CFDI.
  9. Validar en el archivo XML que el atributo FormaPago, contiene el valor indicado en el campo Forma de Pago (F1_TPDOC) para la Nota de Crédito (NCC).


04. INFORMACIÓN ADICIONAL

Creación de campos en el archivo SX3 – Campos:

Tabla SF1 - Encabezado de Fact. de Entrada.

CampoF1_TPDOC
TipoC - Caracter
Tamaño2
Decimal0
Formato@!
TítuloForma Pago
DescripciónForma de Pago SAT
ConsultaMEX005
Validación de sistemaVazio() .or. ValidF3I("S005", M->F1_TPDOC,1,2)
Nivel1
Inic. Estandár'99'
Obligatorio
Utilizado
BrowseNo
Help

Informe la Forma de Pago SAT para el Documento generado, de acuerdo al catálogo cFormaPago definido por el SAT. 


FATEMEX.INI

Se requiere editar el script actual de generación de CFDI (Archivo XML), actualizando las secciones de acuerdo al siguiente modelo, en donde se agregaron o fueron modificadas líneas para integrar esta nueva funcionalidad.

FATEMEX

Se edita las líneas dentro del INI.

En el apartado de [XXX INICIALIZACION]
(PRE) SD1->(DbSetOrder(1))
(PRE) SB1->(DbSetOrder(1))
(PRE) SYA->(DbSetOrder(1))
(PRE) SC6->(DbSetOrder(1))
(PRE) SE4->(DbSetOrder(1)) 
(PRE) CTO->(DbSetOrder(1)) 
(PRE) SAH->(DbSetOrder(1)) 
(PRE) _aTotal[094] := ""
(PRE) _aTotal[095] := ""
(PRE) _aTotal[033] := ""
(PRE) _aTotal[034] := ""
(PRE) _aTotal[035] := ""
(PRE) _aTotal[036] := 0
(PRE) _aTotal[075] := Alltrim(SM0->M0_NOMECOM)
(PRE) _aTotal[096] := DtoS(SF1->F1_EMISSAO)
(PRE) _aTotal[096] := Left(_aTotal[096],4) + "-" + Substr(_aTotal[096],5,2)+ "-" + Right(_aTotal[096],2)
(PRE) _aTotal[096] += "T" + SF1->F1_HORA
(PRE) _aTotal[097] := {"SD1",""}
(PRE) _aTotal[098] := "|"
(PRE) _aTotal[099] := "||"
(PRE) _aTotal[100] := ""
(PRE) _aTotal[101] := IIF(SuperGetMv("MV_DESCSAI",.T.,"2") == "1", .T., .F.) 

(PRE) _aTotal[102] := IIf(SF1->(ColumnPos("F1_TPDOC")) > 0,AllTrim(SF1->F1_TPDOC),AllTrim(AI0->AI0_MPAGO))


En el apartado ///////////DATOS DE LA FACTURA/////////////////
(PRE) (SE4->(MSSeek(xFilial("SE4")+SF1->F1_COND)) , .T.)
(PRE) (AI0->(MSSeek(xFilial("AI0")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
//Version
(PRE) cCadOrig += "4.0" + _aTotal[098]
//Serie
(PRE) cCadOrig += Alltrim(SF1->F1_SERIE) + _aTotal[098]
//Folio
(PRE) cCadOrig += Alltrim(SF1->F1_DOC) + _aTotal[098]
//Fecha
(PRE) cCadOrig += Alltrim(_aTotal[096]) + _aTotal[098]
//FormaPago
(PRE) cCadOrig += IIF(Empty(_aTotal[102]),"99",_aTotal[102]) + _aTotal[098]


En el apartado de [XXX FACTURA]

(PRE) _aTotal[001] += IIF(lCCCE,'http://www.sat.gob.mx/ComercioExterior11 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior11/ComercioExterior11.xsd "','"')
(PRE) _aTotal[001] += IIf(lCCCE, ' xmlns:cce11="http://www.sat.gob.mx/ComercioExterior11"' , "")
(PRE) _aTotal[001] += ' Version="4.0"'
(PRE) _aTotal[001] += ' Serie="' + Alltrim(SF1->F1_SERIE) + '"'
(PRE) _aTotal[001] += ' Folio="' + Alltrim(SF1->F1_DOC) + '"'
(PRE) _aTotal[001] += ' Fecha="' + Alltrim(_aTotal[096]) + '"'
(PRE) _aTotal[001] += ' Sello="' + Alltrim(_aTotal[100]) + '"'
(PRE) _aTotal[001] += ' FormaPago="' + IIF(Empty(_aTotal[102]),"99",_aTotal[102]) + '"'


¡IMPORTANTE!

Esta solución aplica para versión 12.1.33 o superior, se debe tener activada la funcionalidad de Factura Electrónica versión CFDI 4.0


05. ASUNTOS RELACIONADOS

  • DT Facturación Electrónica para México de Comprobantes Fiscales Digitales por Internet (CFDI) Versión 4.0