diff --git a/source/app/controllers/cfdi_xml.py b/source/app/controllers/cfdi_xml.py index 475007f..8a77554 100644 --- a/source/app/controllers/cfdi_xml.py +++ b/source/app/controllers/cfdi_xml.py @@ -167,7 +167,7 @@ class CFDI(object): schema_edu = SAT['edu']['schema'] schema_nomina = '' - if self._nomina: + if self._is_nomina: name = 'xmlns:{}'.format(SAT['nomina']['prefix']) attributes[name] = SAT['nomina']['xmlns'] schema_nomina = SAT['nomina']['schema'] diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index b4bca22..f2ebcf9 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -3127,6 +3127,13 @@ class ImportCFDI(object): self._doc = xml self._pre = '' + def _relacionados(self): + data = {} + node = self._doc.find('{}CfdiRelacionados'.format(self._pre)) + if not node is None: + data = CaseInsensitiveDict(node.attrib.copy()) + return data + def _emisor(self): emisor = self._doc.find('{}Emisor'.format(self._pre)) data = CaseInsensitiveDict(emisor.attrib.copy()) @@ -3173,12 +3180,14 @@ class ImportCFDI(object): invoice.pop('sello', '') self._pre = PRE[invoice['version']] + relacionados = self._relacionados() emisor = self._emisor() receptor = self._receptor() conceptos = self._conceptos() impuestos = self._impuestos() timbre = self._timbre() + invoice.update(relacionados) invoice.update(emisor) invoice.update(receptor) invoice.update(impuestos) diff --git a/source/app/models/main.py b/source/app/models/main.py index 0fb72bf..1c9c61c 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -3212,6 +3212,7 @@ class Facturas(BaseModel): if invoice.tipo_relacion: obj = SATTipoRelacion.get(SATTipoRelacion.key==invoice.tipo_relacion) values['tiporelacion'] = str(obj) + print(values['tiporelacion']) receptor = Socios.select().where(Socios.id==invoice.cliente.id).dicts()[0] values['receptor'] = {} @@ -4111,9 +4112,9 @@ class Facturas(BaseModel): 'estatus': 'Importada', 'regimen_fiscal': invoice['RegimenFiscal'], 'pagada': True, + 'tipo_relacion': invoice.get('TipoRelacion', '') } # ~ donativo = BooleanField(default=False) - # ~ tipo_relacion = TextField(default='') conceptos = [] for concepto in data['conceptos']: diff --git a/source/templates/plantilla_factura.ods b/source/templates/plantilla_factura.ods index c66d20f..b07c8b2 100644 Binary files a/source/templates/plantilla_factura.ods and b/source/templates/plantilla_factura.ods differ