diff --git a/source/app/models/main.py b/source/app/models/main.py index cd3757b..a1b5c72 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -136,44 +136,31 @@ def import_invoice(): if not rows: return {'ok': False, 'msg': msg} - # ~ clave, descripcion, precio, cantidad - products = {} + products = [] for row in rows: try: obj = Productos.get(Productos.clave==row[0]) - if obj.id in products: - vu = round(row[2], 2) - descuento = round(row[3], 2) - cant = round(row[4], 2) - pf = products[obj.id]['valor_unitario'] - descuento - products[obj.id]['cantidad'] += cant - products[obj.id]['importe'] = round( - pf * products[obj.id]['cantidad'], DECIMALES) - if vu != products[obj.id]['valor_unitario']: - msg = 'Precio diferente en producto: {}'.format(row[0]) - return {'ok': False, 'msg': msg} - else: - vu = round(row[2], 2) - descuento = round(row[3], 2) - cant = round(row[4], 2) - pf = vu - descuento - p = { - 'id': obj.id, - 'delete': '-', - 'clave': obj.clave, - 'descripcion': obj.descripcion, - 'unidad': obj.unidad.name, - 'cantidad': cant, - 'valor_unitario': vu, - 'descuento': obj.descuento, - 'importe': round(pf * cant, DECIMALES), - 'taxes': _get_taxes_product(obj.id), - } - products[obj.id] = p + vu = round(row[2], 2) + descuento = round(row[3], 2) + cant = round(row[4], 2) + pf = vu - descuento + p = { + 'id_product': obj.id, + 'delete': '-', + 'clave': obj.clave, + 'descripcion': obj.descripcion, + 'unidad': obj.unidad.id, + 'cantidad': cant, + 'valor_unitario': vu, + 'descuento': descuento, + 'importe': round(pf * cant, DECIMALES), + 'taxes': _get_taxes_product(obj.id), + } + products.append(p) except Productos.DoesNotExist: pass log.info('Factura importada...') - return {'ok': True, 'rows': tuple(products.values())} + return {'ok': True, 'rows': tuple(products)} def get_doc(type_doc, id, rfc): diff --git a/source/templates/plantilla_factura.ods b/source/templates/plantilla_factura.ods index b07c8b2..c2c7afe 100644 Binary files a/source/templates/plantilla_factura.ods and b/source/templates/plantilla_factura.ods differ