diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index 70266d7..9d0bfb9 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -853,7 +853,7 @@ def to_letters(value, moneda): 'USD': 'dólar', 'EUR': 'euro', } - return NumLet(value, monedas[moneda]).letras + return NumLet(value, monedas.get(moneda, moneda)).letras def get_qr(data): @@ -892,12 +892,18 @@ def _comprobante(values, options): def _emisor(doc, version, values): - node = doc.find('{}Emisor'.format(PRE[version])) - data = CaseInsensitiveDict(node.attrib.copy()) - node = node.find('{}DomicilioFiscal'.format(PRE[version])) + emisor = doc.find('{}Emisor'.format(PRE[version])) + data = CaseInsensitiveDict(emisor.attrib.copy()) + node = emisor.find('{}DomicilioFiscal'.format(PRE[version])) if not node is None: data.update(CaseInsensitiveDict(node.attrib.copy())) - data['regimenfiscal'] = values['regimenfiscal'] + + if version == '3.2': + node = emisor.find('{}RegimenFiscal'.format(PRE[version])) + if not node is None: + data['regimenfiscal'] = node.attrib['Regimen'] + else: + data['regimenfiscal'] = values['regimenfiscal'] path = _join(PATH_MEDIA, 'logos', '{}.png'.format(data['rfc'].lower())) if is_file(path): @@ -912,6 +918,10 @@ def _receptor(doc, version, values): node = node.find('{}Domicilio'.format(PRE[version])) if not node is None: data.update(node.attrib.copy()) + + if version == '3.2': + return data + data['usocfdi'] = values['usocfdi'] return data diff --git a/source/app/models/main.py b/source/app/models/main.py index 6048a89..c0825e8 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -1248,6 +1248,10 @@ class Facturas(BaseModel): def _get_not_in_xml(self, invoice): values = {} + + if invoice.version == '3.2': + return values + obj = SATRegimenes.get(SATRegimenes.key==invoice.regimen_fiscal) values['regimenfiscal'] = str(obj)