Mostrar CFDI relacionados en PDF

This commit is contained in:
Mauricio Baeza 2017-11-11 15:03:20 -06:00
parent a9dcc07427
commit a5f8b62929
2 changed files with 20 additions and 3 deletions

View File

@ -864,8 +864,17 @@ def get_qr(data):
return path
def _comprobante(values, options):
data = CaseInsensitiveDict(values)
def _get_relacionados(doc, version):
node = doc.find('{}CfdiRelacionados'.format(PRE[version]))
if node is None:
return ''
uuids = ['UUID: {}'.format(n.attrib['UUID']) for n in node.getchildren()]
return '\n'.join(uuids)
def _comprobante(doc, options):
data = CaseInsensitiveDict(doc.attrib.copy())
del data['certificado']
data['totalenletras'] = to_letters(float(data['total']), data['moneda'])
@ -884,6 +893,8 @@ def _comprobante(values, options):
data['condicionesdepago'] = \
'Condiciones de pago: {}'.format(data['condicionesdepago'])
data['moneda'] = options['moneda']
data['tiporelacion'] = options.get('tiporelacion', '')
data['relacionados'] = _get_relacionados(doc, data['version'])
else:
fields = {
'formaDePago': 'Forma de Pago: {}\n',
@ -1052,7 +1063,7 @@ def _timbre(doc, version, values):
def get_data_from_xml(invoice, values):
data = {'cancelada': invoice.cancelada}
doc = parse_xml(invoice.xml)
data['comprobante'] = _comprobante(doc.attrib.copy(), values)
data['comprobante'] = _comprobante(doc, values)
version = data['comprobante']['version']
data['emisor'] = _emisor(doc, version, values)
data['receptor'] = _receptor(doc, version, values)

View File

@ -1309,6 +1309,12 @@ class Facturas(BaseModel):
obj = SATMonedas.get(SATMonedas.key==invoice.moneda)
values['moneda'] = str(obj)
if invoice.tipo_relacion:
obj = SATTipoRelacion.get(SATTipoRelacion.key==invoice.tipo_relacion)
values['tiporelacion'] = str(obj)
print ('\nTR', invoice.tipo_relacion)
return values
@classmethod