Mejora #329
This commit is contained in:
parent
7e73541c96
commit
e292ba88b8
|
@ -1325,6 +1325,7 @@ class LIBO(object):
|
|||
def pdf(self, path, data, ods=False):
|
||||
options = {'AsTemplate': True, 'Hidden': True}
|
||||
log.debug('Abrir plantilla...')
|
||||
|
||||
self._template = self._doc_open(path, options)
|
||||
if self._template is None:
|
||||
return b''
|
||||
|
@ -1471,7 +1472,16 @@ class LIBO(object):
|
|||
return {}, msg
|
||||
|
||||
data = tuple([r[2:] for r in rows[:count+2]])
|
||||
return data, ''
|
||||
|
||||
sheet = doc.Sheets['Deducciones']
|
||||
notes = sheet.getAnnotations()
|
||||
new_titles = {}
|
||||
for n in notes:
|
||||
col = n.getPosition().Column - 2
|
||||
if data[0][col] == '004':
|
||||
new_titles[col] = n.getString()
|
||||
|
||||
return data, new_titles, ''
|
||||
|
||||
def _get_otros_pagos(self, doc, count):
|
||||
rows, msg = self._get_data(doc, 'OtrosPagos')
|
||||
|
@ -1535,7 +1545,7 @@ class LIBO(object):
|
|||
doc.close(True)
|
||||
return {}, msg
|
||||
|
||||
deducciones, msg = self._get_deducciones(doc, len(nomina))
|
||||
deducciones, new_titles, msg = self._get_deducciones(doc, len(nomina))
|
||||
if msg:
|
||||
doc.close(True)
|
||||
return {}, msg
|
||||
|
@ -1561,6 +1571,28 @@ class LIBO(object):
|
|||
return {}, msg
|
||||
|
||||
doc.close(True)
|
||||
|
||||
rows = len(nomina) + 2
|
||||
|
||||
if rows != len(percepciones):
|
||||
msg = 'Cantidad de filas incorrecta en: Percepciones'
|
||||
return {}, msg
|
||||
if rows != len(deducciones):
|
||||
msg = 'Cantidad de filas incorrecta en: Deducciones'
|
||||
return {}, msg
|
||||
if rows != len(otros_pagos):
|
||||
msg = 'Cantidad de filas incorrecta en: Otros Pagos'
|
||||
return {}, msg
|
||||
if rows != len(separacion):
|
||||
msg = 'Cantidad de filas incorrecta en: Separación'
|
||||
return {}, msg
|
||||
if rows != len(horas_extras):
|
||||
msg = 'Cantidad de filas incorrecta en: Horas Extras'
|
||||
return {}, msg
|
||||
if rows != len(incapacidades):
|
||||
msg = 'Cantidad de filas incorrecta en: Incapacidades'
|
||||
return {}, msg
|
||||
|
||||
data['nomina'] = nomina
|
||||
data['percepciones'] = percepciones
|
||||
data['deducciones'] = deducciones
|
||||
|
@ -1568,6 +1600,7 @@ class LIBO(object):
|
|||
data['separacion'] = separacion
|
||||
data['horas_extras'] = horas_extras
|
||||
data['incapacidades'] = incapacidades
|
||||
data['new_titles'] = new_titles
|
||||
|
||||
return data, ''
|
||||
|
||||
|
@ -1590,11 +1623,13 @@ class LIBO(object):
|
|||
|
||||
def to_pdf(data, emisor_rfc, ods=False, pdf_from='1'):
|
||||
rfc = data['emisor']['rfc']
|
||||
default = 'plantilla_factura.ods'
|
||||
if DEBUG:
|
||||
rfc = emisor_rfc
|
||||
version = data['comprobante']['version']
|
||||
if 'nomina' in data and data['nomina']:
|
||||
version = '{}_{}'.format(data['nomina']['version'], version)
|
||||
default = 'plantilla_nomina.ods'
|
||||
|
||||
pagos = ''
|
||||
if data.get('pagos', False):
|
||||
|
@ -1611,7 +1646,7 @@ def to_pdf(data, emisor_rfc, ods=False, pdf_from='1'):
|
|||
if data['donativo']:
|
||||
donativo = '_donativo'
|
||||
name = '{}_{}{}{}.ods'.format(rfc.lower(), pagos, version, donativo)
|
||||
path = get_template_ods(name)
|
||||
path = get_template_ods(name, default)
|
||||
if path:
|
||||
return app.pdf(path, data, ods)
|
||||
|
||||
|
|
|
@ -7638,7 +7638,6 @@ class CfdiNomina(BaseModel):
|
|||
data['fecha_pago'] = util.calc_to_date(row['fecha_pago'])
|
||||
data['fecha_inicial_pago'] = util.calc_to_date(row['fecha_inicial_pago'])
|
||||
data['fecha_final_pago'] = util.calc_to_date(row['fecha_final_pago'])
|
||||
# ~ data['dias_pagados'] = util.get_days(data['fecha_inicial_pago'], data['fecha_final_pago'])
|
||||
data['dias_pagados'] = days_pay
|
||||
|
||||
return data, ''
|
||||
|
@ -7691,7 +7690,7 @@ class CfdiNomina(BaseModel):
|
|||
|
||||
return data, totals, ''
|
||||
|
||||
def _validate_deducciones(self, headers, row):
|
||||
def _validate_deducciones(self, headers, row, new_titles):
|
||||
total_retenciones = 0.0
|
||||
total_otras_deducciones = 0.0
|
||||
|
||||
|
@ -7717,6 +7716,7 @@ class CfdiNomina(BaseModel):
|
|||
new = {
|
||||
'tipo_deduccion': td,
|
||||
'importe': importe,
|
||||
'concepto': new_titles.get(i, ''),
|
||||
}
|
||||
data.append(new)
|
||||
|
||||
|
@ -7880,6 +7880,7 @@ class CfdiNomina(BaseModel):
|
|||
separacion = data['separacion'][2:]
|
||||
horas_extras = data['horas_extras'][2:]
|
||||
incapacidades = data['incapacidades'][2:]
|
||||
new_titles = data['new_titles']
|
||||
|
||||
for i, row in enumerate(data['nomina']):
|
||||
row['lugar_expedicion'] = emisor.cp_expedicion or emisor.codigo_postal
|
||||
|
@ -7901,7 +7902,7 @@ class CfdiNomina(BaseModel):
|
|||
continue
|
||||
|
||||
new_deducciones, total_deducciones, msg = \
|
||||
self._validate_deducciones(self, hd, deducciones[i])
|
||||
self._validate_deducciones(self, hd, deducciones[i], new_titles)
|
||||
if msg:
|
||||
util.log_file('nomina', msg)
|
||||
continue
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue