From fd7076c04e965d248c3c1677bdbde8d13c7cc28c Mon Sep 17 00:00:00 2001 From: SatCFDI Date: Tue, 27 Feb 2024 23:52:44 -0600 Subject: [PATCH] added support for 3.2 --- .../comprobante32/cfdv32-nomina.xml | 143 ++++++ tests/constants.py | 1 + .../comprobante32/cfdv32-nomina.xml.html | 465 ++++++++++++++++++ .../comprobante32/cfdv32-nomina.xml.pretty.py | 124 +++++ .../comprobante32/cfdv32-nomina.xml.xml | 38 ++ 5 files changed, 771 insertions(+) create mode 100644 tests/cfdi_ejemplos/comprobante32/cfdv32-nomina.xml create mode 100644 tests/test_cfdi/comprobante32/cfdv32-nomina.xml.html create mode 100644 tests/test_cfdi/comprobante32/cfdv32-nomina.xml.pretty.py create mode 100644 tests/test_cfdi/comprobante32/cfdv32-nomina.xml.xml diff --git a/tests/cfdi_ejemplos/comprobante32/cfdv32-nomina.xml b/tests/cfdi_ejemplos/comprobante32/cfdv32-nomina.xml new file mode 100644 index 0000000..dadbaae --- /dev/null +++ b/tests/cfdi_ejemplos/comprobante32/cfdv32-nomina.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/constants.py b/tests/constants.py index 92fd3f0..b4c45a6 100644 --- a/tests/constants.py +++ b/tests/constants.py @@ -2,6 +2,7 @@ CFDI_FILES = [ 'comprobante32/cfdv32-ejemplo.xml', 'comprobante32/cfdv32-instituciones-educativas.xml', + 'comprobante32/cfdv32-nomina.xml', 'comprobante33/cfdv33-base.xml', 'comprobante33/cfdv33-cce11.xml', diff --git a/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.html b/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.html new file mode 100644 index 0000000..942ab84 --- /dev/null +++ b/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.html @@ -0,0 +1,465 @@ + + + CFDI + + + + +

CFDI de ingreso

+ + + + + + + + + + + + + + + + + + + +
SerieFolioEmisorReceptor
C38 +
Empresa de Pruebas SA
+
RFC: AAA010101AAA
Régimen Fiscal:
  • Regimen General de Ley Personas Morales de Prueba
+
C.P.: Monterrey, Nuevo León
+
No. Certificado: 20001000000100005867
+
+
Exportadora de Ganado HOLSTEIN S.A.
+
RFC: E&Ñ831019M53
+
Fecha de Emisión
2015-02-18 11:49:20
+ + + + + + + + + + + + + + + + + + + + + + + +
MonedaMétodo de PagoForma de PagoUso CFDI
Pesos   
Tipo de CambioExportaciónCondiciones de Pago
   
+
+
Conceptos
+ + + + + + + + + + + + + + + + + + + +
DescripciónCantidadValor UnitarioDescuentoImporte
+ Módulo de embarque serie A-6743-Ñ +
+ + +
+
+ 1 +
 
+
LTE
+
+ 35,000.00 + +   + + 35,000.00 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subtotal35,000.00
+ + Traslados + IVA 5,600.00
+ - Retenciones + ISR0.00
+ IVA0.00
+ Total + 40,600.00

+

Nomina

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tipo NóminaEmisorReceptor
  +   + +   +
Fecha Pago
2015-01-14
No. de Días Pagados
14
Fecha Inicial de Pago
2015-01-01
Fecha Final de Pago
2015-01-15
+
+
Percepciones
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tipo de PercepciónClaveConceptoImporte GravadoImporte Exento
001001Dias de Sueldo950.460
017039Subsidio al Empleo (sp)00
001133Dia Festivo Oficial139.340
Total9,590.100.00
+ + + + + +
Total Sueldos 
+
+
Deducciones
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tipo de DeducciónClaveConceptoImporte
002043I.S.R. Art142 
002049I.S.R. (sp) 
001052I.M.S.S. 
00499Ajuste al neto 
Total 
+ +
+

Timbre Fiscal Digital

+ + + + + + + + + + + + + + + +
+ QR Code + Folio Fiscal:e403f396-6a57-4625-adb4-bb436b00789fFecha de Certificación:2015-02-17 11:49:20
No. Certificado SAT:20001000000100005761
+
+ Sello del CFDI: M​M​a​k​X​8​Q​1​R​y​e​d​j​o​N​E​Q​d​H​N​6​4​D​g​p​Z​e​s​m​k​c​P​S​y​e​2​T​b​+​n​E​L​q​F​N​N​z​I​T​T​i​c​y​c​7​W​R​c​r​/​g​j​4​U​Q​X​1​f​f​h​B​u​W​m​O​9​5​9​4​5​3​o​4​p​k​M​O​9​o​m​i​p​2​D​i​M​0​U​d​2​K​i​t​U​5​8​+​P​4​y​R​y​x​d​j​h​m​a​R​S​9​Q​S​s​U​S​p​c​K​I​r​L​B​4​v​i​S​J​9​G​D​3​2​p​J​Y​n​x​m​p​x​Y​i​8​+​G​O​+​n​3​H​v​I​A​M​H​e​g​a​+​A​=
+ Sello del SAT: H​Z​c​D​Z​/​W​0​o​b​h​9​p​z​d​6​X​G​S​X​f​A​E​E​z​C​p​1​b​Y​L​Y​H​m​p​t​B​R​Z​L​h​Y​G​g​y​o​/​n​Y​e​g​L​p​v​1​U​L​s​h​K​A​2​W​i​F​n​f​9​O​p​i​e​m​B​Q​9​q​0​Z​/​T​o​8​Q​F​I​N​H​1​J​q​T​B​t​E​u​0​l​o​+​8​N​W​D​B​i​6​Z​w​c​2​V​s​R​3​u​Y​E​6​Z​m​Z​K​d​Q​S​7​L​t​S​t​6​u​S​q​C​i​e​j​X​D​q​I​V​5​7​E​k​J​y​3​L​E​6​J​n​T​B​s​b​Q​7​G​m​S​T​1​W​x​/​M​=
+ Cadena Original del Timbre Fiscal: |​|​1​.​0​|​e​4​0​3​f​3​9​6​-​6​a​5​7​-​4​6​2​5​-​a​d​b​4​-​b​b​4​3​6​b​0​0​7​8​9​f​|​2​0​1​5​-​0​2​-​1​7​T​1​1​:​4​9​:​2​0​|​M​M​a​k​X​8​Q​1​R​y​e​d​j​o​N​E​Q​d​H​N​6​4​D​g​p​Z​e​s​m​k​c​P​S​y​e​2​T​b​+​n​E​L​q​F​N​N​z​I​T​T​i​c​y​c​7​W​R​c​r​/​g​j​4​U​Q​X​1​f​f​h​B​u​W​m​O​9​5​9​4​5​3​o​4​p​k​M​O​9​o​m​i​p​2​D​i​M​0​U​d​2​K​i​t​U​5​8​+​P​4​y​R​y​x​d​j​h​m​a​R​S​9​Q​S​s​U​S​p​c​K​I​r​L​B​4​v​i​S​J​9​G​D​3​2​p​J​Y​n​x​m​p​x​Y​i​8​+​G​O​+​n​3​H​v​I​A​M​H​e​g​a​+​A​=​|​2​0​0​0​1​0​0​0​0​0​0​1​0​0​0​0​5​7​6​1​|​| +
+
+ \ No newline at end of file diff --git a/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.pretty.py b/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.pretty.py new file mode 100644 index 0000000..c35e9e5 --- /dev/null +++ b/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.pretty.py @@ -0,0 +1,124 @@ +{'Certificado': 'MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMjA3MjcxNzAyMDBaFw0xNjA3MjcxNzAyMDBaMIHbMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsTCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2TTQSPONBOVxpXv9wLYo8jezBrb34i/tLx8jGdtyy27BcesOav2c1NS/Gdv10u9SkWtwdy34uRAVe7H0a3VMRLHAkvp2qMCHaZc4T8k47Jtb9wrOEh/XFS8LgT4y5OQYo6civfXXdlvxWU/gdM/e6I2lg6FGorP8H4GPAJ/qCNwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEATxMecTpMbdhSHo6KVUg4QVF4Op2IBhiMaOrtrXBdJgzGotUFcJgdBCMjtTZXSlq1S4DG1jr8p4NzQlzxsdTxaB8nSKJ4KEMgIT7E62xRUj15jI49qFz7f2uMttZLNThipunsN/NF1XtvESMTDwQFvas/Ugig6qwEfSZc0MDxMpKLEkEePmQwtZD+zXFSMVa6hmOu4M+FzGiRXbj4YJXn9Myjd8xbL/c+9UIcrYoZskxDvMxc6/6M3rNNDY3OFhBK+V/sPMzWWGt8S1yjmtPfXgFs1t65AZ2hcTwTAuHrKwDatJ1ZPfa482ZBROAAX1waz7WwXp0gso7sDCm2/yUVww==', + 'Complemento': {'Nomina': {'Banco': 12, + 'CURP': 'FXXH921011HDGBPZ50', + 'Deducciones': {'Deduccion': [{'Clave': '043', + 'Concepto': 'I.S.R. ' + 'Art142', + 'ImporteExento': Decimal('0'), + 'ImporteGravado': Decimal('0'), + 'TipoDeduccion': 2}, + {'Clave': '049', + 'Concepto': 'I.S.R. ' + '(sp)', + 'ImporteExento': Decimal('501.18'), + 'ImporteGravado': Decimal('0'), + 'TipoDeduccion': 2}, + {'Clave': '052', + 'Concepto': 'I.M.S.S.', + 'ImporteExento': Decimal('66.48'), + 'ImporteGravado': Decimal('0'), + 'TipoDeduccion': 1}, + {'Clave': '99', + 'Concepto': 'Ajuste ' + 'al ' + 'neto', + 'ImporteExento': Decimal('0'), + 'ImporteGravado': Decimal('0'), + 'TipoDeduccion': 4}], + 'TotalExento': Decimal('167.66'), + 'TotalGravado': Decimal('0.00')}, + 'Departamento': 'Contabilidad', + 'FechaFinalPago': datetime.date(2015, 1, 15), + 'FechaInicialPago': datetime.date(2015, 1, 1), + 'FechaInicioRelLaboral': datetime.date(2012, 1, 1), + 'FechaPago': datetime.date(2015, 1, 14), + 'NumDiasPagados': Decimal('14'), + 'NumEmpleado': 'ABC123', + 'NumSeguridadSocial': '0123456789', + 'Percepciones': {'Percepcion': [{'Clave': '001', + 'Concepto': 'Dias ' + 'de ' + 'Sueldo', + 'ImporteExento': Decimal('0'), + 'ImporteGravado': Decimal('950.46'), + 'TipoPercepcion': 1}, + {'Clave': '039', + 'Concepto': 'Subsidio ' + 'al ' + 'Empleo ' + '(sp)', + 'ImporteExento': Decimal('0'), + 'ImporteGravado': Decimal('0'), + 'TipoPercepcion': 17}, + {'Clave': '133', + 'Concepto': 'Dia ' + 'Festivo ' + 'Oficial', + 'ImporteExento': Decimal('0'), + 'ImporteGravado': Decimal('139.34'), + 'TipoPercepcion': 1}], + 'TotalExento': Decimal('0.00'), + 'TotalGravado': Decimal('9590.10')}, + 'PeriodicidadPago': 'Quincenal', + 'Puesto': 'Contador', + 'RegistroPatronal': 'A0123456789', + 'RiesgoPuesto': 2, + 'SalarioDiarioIntegrado': Decimal('100.76'), + 'TipoContrato': 'Indeterminado (Permanente)', + 'TipoJornada': 'Matutino', + 'TipoRegimen': 2, + 'Version': '1.1'}, + 'TimbreFiscalDigital': {'FechaTimbrado': datetime.datetime(2015, 2, 17, 11, 49, 20), + 'NoCertificadoSAT': '20001000000100005761', + 'SelloCFD': 'MMakX8Q1RyedjoNEQdHN64DgpZesmkcPSye2Tb+nELqFNNzITTicyc7WRcr/gj4UQX1ffhBuWmO959453o4pkMO9omip2DiM0Ud2KitU58+P4yRyxdjhmaRS9QSsUSpcKIrLB4viSJ9GD32pJYnxmpxYi8+GO+n3HvIAMHega+A=', + 'SelloSAT': 'HZcDZ/W0obh9pzd6XGSXfAEEzCp1bYLYHmptBRZLhYGgyo/nYegLpv1ULshKA2WiFnf9OpiemBQ9q0Z/To8QFINH1JqTBtEu0lo+8NWDBi6Zwc2VsR3uYE6ZmZKdQS7LtSt6uSqCiejXDqIV57EkJy3LE6JnTBsbQ7GmST1Wx/M=', + 'UUID': 'e403f396-6a57-4625-adb4-bb436b00789f', + 'Version': '1.0'}}, + 'Conceptos': [{'Cantidad': Decimal('1'), + 'Descripcion': 'Módulo de embarque serie A-6743-Ñ', + 'Importe': Decimal('35000.00'), + 'Unidad': 'LTE', + 'ValorUnitario': Decimal('35000.00')}], + 'Descuento': Decimal('0'), + 'Emisor': {'DomicilioFiscal': {'Calle': 'Encinos', + 'CodigoPostal': '64000', + 'Colonia': 'Fracc. San Pedro', + 'Estado': 'Nuevo León', + 'Municipio': 'Monterrey', + 'NoExterior': '1452', + 'Pais': 'México'}, + 'Nombre': 'Empresa de Pruebas SA', + 'RegimenFiscal': ['Regimen General de Ley Personas Morales de ' + 'Prueba'], + 'Rfc': 'AAA010101AAA'}, + 'Fecha': datetime.datetime(2015, 2, 18, 11, 49, 20), + 'Folio': '38', + 'FormaDePago': 'PAGO EN UNA SOLA EXHIBICION', + 'Impuestos': {'Retenciones': [{'Importe': Decimal('0.00'), 'Impuesto': 'ISR'}, + {'Importe': Decimal('0.00'), 'Impuesto': 'IVA'}], + 'TotalImpuestosRetenidos': Decimal('0.00'), + 'TotalImpuestosTrasladados': Decimal('5600.00'), + 'Traslados': [{'Importe': Decimal('5600.00'), + 'Impuesto': 'IVA', + 'Tasa': Decimal('16.00')}]}, + 'LugarExpedicion': 'Monterrey, Nuevo León', + 'MetodoDePago': 'No Identificado', + 'Moneda': 'Pesos', + 'NoCertificado': '20001000000100005867', + 'NumCtaPago': 'No Identificado', + 'Receptor': {'Domicilio': {'Calle': 'Av. Principal', + 'CodigoPostal': '99170', + 'Colonia': 'Ejido La Siembra', + 'Estado': 'Zacatecas', + 'Localidad': 'Ejido La Siembra', + 'Municipio': 'Zacatecas', + 'NoExterior': '102', + 'Pais': 'México'}, + 'Nombre': 'Exportadora de Ganado HOLSTEIN S.A.', + 'Rfc': 'E&Ñ831019M53'}, + 'Sello': 'MMakX8Q1RyedjoNEQdHN64DgpZesmkcPSye2Tb+nELqFNNzITTicyc7WRcr/gj4UQX1ffhBuWmO959453o4pkMO9omip2DiM0Ud2KitU58+P4yRyxdjhmaRS9QSsUSpcKIrLB4viSJ9GD32pJYnxmpxYi8+GO+n3HvIAMHega+A=', + 'Serie': 'C', + 'SubTotal': Decimal('35000.00'), + 'TipoDeComprobante': 'ingreso', + 'Total': Decimal('40600.00'), + 'Version': '3.2'} \ No newline at end of file diff --git a/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.xml b/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.xml new file mode 100644 index 0000000..200f7f2 --- /dev/null +++ b/tests/test_cfdi/comprobante32/cfdv32-nomina.xml.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +