Skip to content

Commit 7552cbf

Browse files
committed
Fix Pago
1 parent 5905fa7 commit 7552cbf

26 files changed

Lines changed: 1274 additions & 54 deletions

satcfdi/create/compute.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ def make_pago_totales(pagos):
214214
impuestos[RETENCIONES_MAP[retencion["ImpuestoP"]]] += retencion["ImporteP"] * tipo_cambio
215215

216216
for traslado in iterate((p["ImpuestosP"] or {}).get("TrasladosP")):
217-
match (traslado["ImpuestoP"], traslado["TipoFactorP"], "{:.6f}".format(traslado["TasaOCuotaP"] or -1)):
217+
match (traslado["ImpuestoP"], traslado["TipoFactorP"], "{:.6f}".format(traslado["TasaOCuotaP"] or 0)):
218218
case ("002", "Tasa", "0.160000"):
219219
impuestos['TotalTrasladosBaseIVA16'] += traslado["BaseP"] * tipo_cambio
220220
impuestos['TotalTrasladosImpuestoIVA16'] += traslado["ImporteP"] * tipo_cambio

tests/test_create_cfdi40.py

Lines changed: 3 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@
1919
current_filename = os.path.splitext(os.path.basename(__file__))[0]
2020
sat = SAT()
2121

22+
# rfc, xml_file, traslados, retenciones, total
2223
invoices = [
2324
('xiqb891116qe4', "xiqb891116qe4_ingreso_noobjeto", None, [cfdi40.Traslado(impuesto=Impuesto.ISR, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.100000'))], '13851.27'),
2425
('xiqb891116qe4', "xiqb891116qe4_ingreso_exento", cfdi40.Traslado(impuesto=Impuesto.IVA, tipo_factor=TipoFactor.EXENTO), [cfdi40.Traslado(impuesto=Impuesto.ISR, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.100000'))], '13851.27'),
2526
('xiqb891116qe4', "xiqb891116qe4_ingreso_iva16", cfdi40.Traslado(impuesto=Impuesto.IVA, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.160000')), [cfdi40.Traslado(impuesto=Impuesto.ISR, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.100000')), cfdi40.Traslado(impuesto=Impuesto.IVA, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.106667'))], '14672.08'),
27+
('xiqb891116qe4', "xiqb891116qe4_ingreso_iva0", cfdi40.Traslado(impuesto=Impuesto.IVA, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.000000')), None, '15390.30'),
2628
('h&e951128469', "h&e951128469_ingreso_noobjeto", None, None, '15390.30'),
2729
('h&e951128469', "h&e951128469_ingreso_exento", cfdi40.Traslado(impuesto=Impuesto.IVA, tipo_factor=TipoFactor.EXENTO), None, '15390.30'),
2830
('h&e951128469', "h&e951128469_ingreso_iva16", cfdi40.Traslado(impuesto=Impuesto.IVA, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.160000')), None, '17852.75'),
31+
('h&e951128469', "h&e951128469_ingreso_iva8", cfdi40.Traslado(impuesto=Impuesto.IVA, tipo_factor=TipoFactor.TASA, tasa_o_cuota=Decimal('0.080000')), None, '16621.52'),
2932
('h&e951128469', "h&e951128469_ingreso_ieps_exento", cfdi40.Traslado(impuesto=Impuesto.IEPS, tipo_factor=TipoFactor.EXENTO), None, '15390.30')
3033
]
3134

@@ -52,59 +55,6 @@ def verify_invoice(invoice, path, include_metadata=False):
5255
assert verify
5356

5457

55-
# def test_traslados_incluidos():
56-
# signer = get_signer('h&e951128469')
57-
# emisor = cfdi40.Emisor(
58-
# rfc=signer.rfc,
59-
# nombre=signer.legal_name,
60-
# regimen_fiscal="601"
61-
# )
62-
#
63-
# for t in range(10):
64-
# delta = Decimal(t) / 100
65-
# valor = Decimal('15390.30') + delta
66-
#
67-
# invoice = cfdi40.Comprobante(
68-
# emisor=emisor,
69-
# lugar_expedicion="56820",
70-
# fecha=datetime.fromisoformat("2020-01-01T22:40:38"),
71-
# receptor=cfdi40.Receptor(
72-
# rfc='KIJ0906199R1',
73-
# nombre='KIJ, S.A DE C.V.',
74-
# uso_cfdi='G03',
75-
# domicilio_fiscal_receptor="59820",
76-
# regimen_fiscal_receptor="601"
77-
# ),
78-
# metodo_pago='PPD',
79-
# serie="A",
80-
# folio="123456",
81-
# conceptos=[
82-
# cfdi40.Concepto(
83-
# cuenta_predial='1234567890',
84-
# clave_prod_serv='10101702',
85-
# cantidad=Decimal('23.00'),
86-
# clave_unidad='E48',
87-
# descripcion='SERVICIOS DE FACTURACION',
88-
# valor_unitario=valor,
89-
# impuestos=cfdi40.Impuestos(
90-
# traslados=cfdi40.Traslado(
91-
# impuesto=Impuesto.IVA,
92-
# tipo_factor=TipoFactor.TASA,
93-
# tasa_o_cuota=Decimal('0.160000'),
94-
# ),
95-
# retenciones=None
96-
# ),
97-
# _traslados_incluidos=True
98-
# )
99-
# ]
100-
# )
101-
# invoice.sign(signer)
102-
#
103-
# assert invoice["Total"] == valor * Decimal('23.00')
104-
#
105-
# render.pdf_write(invoice, target=os.path.join(current_dir, current_filename, f"test_traslados_incluidos_render.pdf"))
106-
107-
10858
@pytest.mark.parametrize('rfc, xml_file, traslados, retenciones, total', invoices)
10959
def test_create_invoice(rfc, xml_file, traslados, retenciones, total):
11060
signer = get_signer(rfc)
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{'Addenda': None,
2+
'Certificado': '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',
3+
'CfdiRelacionados': None,
4+
'Complemento': None,
5+
'Conceptos': [{'ACuentaTerceros': None,
6+
'Cantidad': Decimal('1.00'),
7+
'ClaveProdServ': '10101702',
8+
'ClaveUnidad': 'E48',
9+
'ComplementoConcepto': None,
10+
'CuentaPredial': '1234567890',
11+
'Descripcion': 'SERVICIOS DE FACTURACION',
12+
'Descuento': None,
13+
'Importe': Decimal('15390.30'),
14+
'Impuestos': {'Traslados': [{'Base': Decimal('15390.30'),
15+
'Importe': Decimal('1231.22'),
16+
'Impuesto': <Impuesto.IVA: '002'>,
17+
'TasaOCuota': Decimal('0.080000'),
18+
'TipoFactor': <TipoFactor.TASA: 'Tasa'>}]},
19+
'InformacionAduanera': None,
20+
'NoIdentificacion': None,
21+
'ObjetoImp': '02',
22+
'Parte': None,
23+
'Unidad': None,
24+
'ValorUnitario': Decimal('15390.30')}],
25+
'CondicionesDePago': None,
26+
'Confirmacion': None,
27+
'Descuento': None,
28+
'Emisor': {'FacAtrAdquirente': None,
29+
'Nombre': 'HERRERIA & ELECTRICOS',
30+
'RegimenFiscal': '601',
31+
'Rfc': RFC('H&E951128469')},
32+
'Exportacion': '01',
33+
'Fecha': datetime.datetime(2020, 1, 1, 22, 40, 38),
34+
'Folio': '123456',
35+
'FormaPago': None,
36+
'Impuestos': {'TotalImpuestosTrasladados': Decimal('1231.22'),
37+
'Traslados': [{'Base': Decimal('15390.30'),
38+
'Importe': Decimal('1231.22'),
39+
'Impuesto': <Impuesto.IVA: '002'>,
40+
'TasaOCuota': Decimal('0.080000'),
41+
'TipoFactor': <TipoFactor.TASA: 'Tasa'>}]},
42+
'InformacionGlobal': None,
43+
'LugarExpedicion': '56820',
44+
'MetodoPago': 'PPD',
45+
'Moneda': 'MXN',
46+
'NoCertificado': '30001000000400002460',
47+
'Receptor': {'DomicilioFiscalReceptor': '59820',
48+
'Nombre': 'KIJ, S.A DE C.V.',
49+
'NumRegIdTrib': None,
50+
'RegimenFiscalReceptor': '601',
51+
'ResidenciaFiscal': None,
52+
'Rfc': 'KIJ0906199R1',
53+
'UsoCFDI': 'G03'},
54+
'Sello': 'P78yJfuFu6zij1eNOPk0ULmhs3puTEqFZpcQHFQJ1xK2buUr9uFeBWgnhTqtAKaOLiHwjuMaP2dFNCNDVwwcL98wPwbmDm5ugyiCX/DzxFdihBjufk8wNFQ2gcvqrkn3Rf0ag58bJbbAXic27e64r4t+aeqBVMqU+3mi9tDAvA8M9L/THa6XJloBzlwOsHR/jC9IJS1eYB4n3grn5Dbqx44vgeebnft7cMuYIAyZFn2hpBLbNB8YSHzzCRJlYpkAGcMVEoztsyoGRysPxO+6/hiJaT3cCTIU3DtWxYT/WmM/EV6cjFL+b5GZitmUtBSxOh2xPZA1YYk9PV4N0uwA0g==',
55+
'Serie': 'A',
56+
'SubTotal': Decimal('15390.30'),
57+
'TipoCambio': None,
58+
'TipoDeComprobante': 'I',
59+
'Total': Decimal('16621.52'),
60+
'Version': '4.0'}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="4.0" Serie="A" Folio="123456" Fecha="2020-01-01T22:40:38" Sello="P78yJfuFu6zij1eNOPk0ULmhs3puTEqFZpcQHFQJ1xK2buUr9uFeBWgnhTqtAKaOLiHwjuMaP2dFNCNDVwwcL98wPwbmDm5ugyiCX/DzxFdihBjufk8wNFQ2gcvqrkn3Rf0ag58bJbbAXic27e64r4t+aeqBVMqU+3mi9tDAvA8M9L/THa6XJloBzlwOsHR/jC9IJS1eYB4n3grn5Dbqx44vgeebnft7cMuYIAyZFn2hpBLbNB8YSHzzCRJlYpkAGcMVEoztsyoGRysPxO+6/hiJaT3cCTIU3DtWxYT/WmM/EV6cjFL+b5GZitmUtBSxOh2xPZA1YYk9PV4N0uwA0g==" NoCertificado="30001000000400002460" Certificado="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" SubTotal="15390.30" Moneda="MXN" Total="16621.52" TipoDeComprobante="I" Exportacion="01" MetodoPago="PPD" LugarExpedicion="56820" xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd">
3+
<cfdi:Emisor Rfc="H&amp;E951128469" Nombre="HERRERIA &amp; ELECTRICOS" RegimenFiscal="601"/>
4+
<cfdi:Receptor Rfc="KIJ0906199R1" Nombre="KIJ, S.A DE C.V." DomicilioFiscalReceptor="59820" RegimenFiscalReceptor="601" UsoCFDI="G03"/>
5+
<cfdi:Conceptos>
6+
<cfdi:Concepto ClaveProdServ="10101702" Cantidad="1.00" ClaveUnidad="E48" Descripcion="SERVICIOS DE FACTURACION" ValorUnitario="15390.30" Importe="15390.30" ObjetoImp="02">
7+
<cfdi:Impuestos>
8+
<cfdi:Traslados>
9+
<cfdi:Traslado Base="15390.30" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.080000" Importe="1231.22"/>
10+
</cfdi:Traslados>
11+
</cfdi:Impuestos>
12+
<cfdi:CuentaPredial Numero="1234567890"/>
13+
</cfdi:Concepto>
14+
</cfdi:Conceptos>
15+
<cfdi:Impuestos TotalImpuestosTrasladados="1231.22">
16+
<cfdi:Traslados>
17+
<cfdi:Traslado Base="15390.30" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.080000" Importe="1231.22"/>
18+
</cfdi:Traslados>
19+
</cfdi:Impuestos>
20+
</cfdi:Comprobante>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{'Addenda': None,
2+
'Certificado': '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',
3+
'CfdiRelacionados': None,
4+
'Complemento': {'TimbreFiscalDigital': {'FechaTimbrado': datetime.datetime(2020, 1, 11, 0, 0),
5+
'Leyenda': None,
6+
'NoCertificadoSAT': '30001000000400002460',
7+
'RfcProvCertif': 'SAT970701NN3',
8+
'SelloCFD': 'P78yJfuFu6zij1eNOPk0ULmhs3puTEqFZpcQHFQJ1xK2buUr9uFeBWgnhTqtAKaOLiHwjuMaP2dFNCNDVwwcL98wPwbmDm5ugyiCX/DzxFdihBjufk8wNFQ2gcvqrkn3Rf0ag58bJbbAXic27e64r4t+aeqBVMqU+3mi9tDAvA8M9L/THa6XJloBzlwOsHR/jC9IJS1eYB4n3grn5Dbqx44vgeebnft7cMuYIAyZFn2hpBLbNB8YSHzzCRJlYpkAGcMVEoztsyoGRysPxO+6/hiJaT3cCTIU3DtWxYT/WmM/EV6cjFL+b5GZitmUtBSxOh2xPZA1YYk9PV4N0uwA0g==',
9+
'SelloSAT': 'a0fBQNUKHcxkYRgEyS/fCmU4ujNxe5h60t4fLOm/1r+umaWEKjShD7M2BoMFC/SlN6cNy7EoZ/L0oIssFedU/gXp+LCPYdu6VOEuD2I8GIcS+KiIjQ71iIM+ZY898LINC6f+P5NZfUwIqNQQ3ChOtv6ELeOVJKG7VGhRnLnaqCBMp5DfjPY5OfyBM3D/L9eGAm1ah/S5Snx7gqqcUaRV9Cjic4OoOKl4s65R+jQ4gO9cVovs5laIZtEQNfzW92YHSffohqhOFBvmO2T8BV/Foi171qwg5/62kPEHTT8S/zck38a57ouysE8T92upWcT93oMsNsSmTtIKM1wHW8zoVA==',
10+
'UUID': '6d7434a6-e3f2-47ad-9e4c-08849946afa0',
11+
'Version': '1.1'}},
12+
'Conceptos': [{'ACuentaTerceros': None,
13+
'Cantidad': Decimal('1.00'),
14+
'ClaveProdServ': '10101702',
15+
'ClaveUnidad': 'E48',
16+
'ComplementoConcepto': None,
17+
'CuentaPredial': '1234567890',
18+
'Descripcion': 'SERVICIOS DE FACTURACION',
19+
'Descuento': None,
20+
'Importe': Decimal('15390.30'),
21+
'Impuestos': {'Traslados': [{'Base': Decimal('15390.30'),
22+
'Importe': Decimal('1231.22'),
23+
'Impuesto': <Impuesto.IVA: '002'>,
24+
'TasaOCuota': Decimal('0.080000'),
25+
'TipoFactor': <TipoFactor.TASA: 'Tasa'>}]},
26+
'InformacionAduanera': None,
27+
'NoIdentificacion': None,
28+
'ObjetoImp': '02',
29+
'Parte': None,
30+
'Unidad': None,
31+
'ValorUnitario': Decimal('15390.30')}],
32+
'CondicionesDePago': None,
33+
'Confirmacion': None,
34+
'Descuento': None,
35+
'Emisor': {'FacAtrAdquirente': None,
36+
'Nombre': 'HERRERIA & ELECTRICOS',
37+
'RegimenFiscal': '601',
38+
'Rfc': RFC('H&E951128469')},
39+
'Exportacion': '01',
40+
'Fecha': datetime.datetime(2020, 1, 1, 22, 40, 38),
41+
'Folio': '123456',
42+
'FormaPago': None,
43+
'Impuestos': {'TotalImpuestosTrasladados': Decimal('1231.22'),
44+
'Traslados': [{'Base': Decimal('15390.30'),
45+
'Importe': Decimal('1231.22'),
46+
'Impuesto': <Impuesto.IVA: '002'>,
47+
'TasaOCuota': Decimal('0.080000'),
48+
'TipoFactor': <TipoFactor.TASA: 'Tasa'>}]},
49+
'InformacionGlobal': None,
50+
'LugarExpedicion': '56820',
51+
'MetodoPago': 'PPD',
52+
'Moneda': 'MXN',
53+
'NoCertificado': '30001000000400002460',
54+
'Receptor': {'DomicilioFiscalReceptor': '59820',
55+
'Nombre': 'KIJ, S.A DE C.V.',
56+
'NumRegIdTrib': None,
57+
'RegimenFiscalReceptor': '601',
58+
'ResidenciaFiscal': None,
59+
'Rfc': 'KIJ0906199R1',
60+
'UsoCFDI': 'G03'},
61+
'Sello': 'P78yJfuFu6zij1eNOPk0ULmhs3puTEqFZpcQHFQJ1xK2buUr9uFeBWgnhTqtAKaOLiHwjuMaP2dFNCNDVwwcL98wPwbmDm5ugyiCX/DzxFdihBjufk8wNFQ2gcvqrkn3Rf0ag58bJbbAXic27e64r4t+aeqBVMqU+3mi9tDAvA8M9L/THa6XJloBzlwOsHR/jC9IJS1eYB4n3grn5Dbqx44vgeebnft7cMuYIAyZFn2hpBLbNB8YSHzzCRJlYpkAGcMVEoztsyoGRysPxO+6/hiJaT3cCTIU3DtWxYT/WmM/EV6cjFL+b5GZitmUtBSxOh2xPZA1YYk9PV4N0uwA0g==',
62+
'Serie': 'A',
63+
'SubTotal': Decimal('15390.30'),
64+
'TipoCambio': None,
65+
'TipoDeComprobante': 'I',
66+
'Total': Decimal('16621.52'),
67+
'Version': '4.0'}

0 commit comments

Comments
 (0)