Add node lotes in addenda Boveda
This commit is contained in:
parent
c2544a4a94
commit
80102ebe1a
|
@ -239,14 +239,15 @@ class DictToCfdi():
|
|||
type_boveda = self._data['addenda'].get('type', '')
|
||||
type_client = self._data['addenda'].get('type_client', '')
|
||||
data = self._data['addenda'].get('boveda', False)
|
||||
self._boveda(type_boveda, data)
|
||||
lotes = self._data['addenda']['lotes']
|
||||
self._boveda(type_boveda, data, lotes)
|
||||
if type_client:
|
||||
data = self._data['addenda'].get('cliente', False)
|
||||
partes = self._data['addenda'].get('partes', ())
|
||||
self._addenda_client(type_client, data, partes)
|
||||
return
|
||||
|
||||
def _boveda(self, type_boveda, data):
|
||||
def _boveda(self, type_boveda, data, lotes):
|
||||
if not data:
|
||||
return
|
||||
|
||||
|
@ -271,6 +272,16 @@ class DictToCfdi():
|
|||
for k, v in data.items():
|
||||
node_name = f'{{{XMLNS}}}{k}'
|
||||
ET.SubElement(node, node_name, v)
|
||||
if lotes:
|
||||
node_name = f'{{{XMLNS}}}Lotes'
|
||||
node_lotes = ET.SubElement(node, node_name)
|
||||
for lote in lotes:
|
||||
node_name = f'{{{XMLNS}}}Lote'
|
||||
node_lote = ET.SubElement(node_lotes, node_name)
|
||||
for k2, v2 in lote.items():
|
||||
node_name = f'{{{XMLNS}}}{k2}'
|
||||
sn = ET.SubElement(node_lote, node_name)
|
||||
sn.text = v2
|
||||
elif type_boveda == '02':
|
||||
for k, v in data.items():
|
||||
node_name = f'{{{XMLNS}}}{k}'
|
||||
|
@ -328,6 +339,7 @@ class DataToDict():
|
|||
'05': '_conceptos',
|
||||
'06': '_impuestos',
|
||||
'10': '_leyendas',
|
||||
'49': '_addenda_lotes',
|
||||
'50': '_boveda',
|
||||
'51': '_addenda',
|
||||
'52': '_addenda_partes',
|
||||
|
@ -338,6 +350,7 @@ class DataToDict():
|
|||
self._cfdi = {'conceptos': [], 'complementos': {}, 'addenda': {}}
|
||||
self._type_header = ''
|
||||
self._partes = []
|
||||
self._lotes = []
|
||||
self._process_data()
|
||||
|
||||
@property
|
||||
|
@ -358,6 +371,7 @@ class DataToDict():
|
|||
getattr(self, header)(parts[2:])
|
||||
|
||||
self._cfdi['addenda']['partes'] = self._partes
|
||||
self._cfdi['addenda']['lotes'] = self._lotes
|
||||
return
|
||||
|
||||
def _comprobante(self, data):
|
||||
|
@ -626,6 +640,18 @@ class DataToDict():
|
|||
self._cfdi['addenda']['cliente'] = data
|
||||
return
|
||||
|
||||
def _addenda_lotes(self, lote):
|
||||
attr = {
|
||||
'IVM_InvoiceID': '',
|
||||
'POline': lote[0],
|
||||
'NoIdentificacion': lote[1],
|
||||
'Lote': lote[2],
|
||||
'Cantidad': lote[3],
|
||||
'Fecha': lote[4],
|
||||
}
|
||||
self._lotes.append(attr)
|
||||
return
|
||||
|
||||
def _addenda_partes(self, parte):
|
||||
if self._type_header == '2':
|
||||
attr = {'posicion': parte[0],
|
||||
|
|
Loading…
Reference in New Issue