Facturar en lote

This commit is contained in:
Mauricio Baeza 2018-02-09 20:34:54 -06:00
parent ebc544c8d8
commit cdd97416ab
2 changed files with 19 additions and 32 deletions

View File

@ -136,44 +136,31 @@ def import_invoice():
if not rows: if not rows:
return {'ok': False, 'msg': msg} return {'ok': False, 'msg': msg}
# ~ clave, descripcion, precio, cantidad products = []
products = {}
for row in rows: for row in rows:
try: try:
obj = Productos.get(Productos.clave==row[0]) obj = Productos.get(Productos.clave==row[0])
if obj.id in products: vu = round(row[2], 2)
vu = round(row[2], 2) descuento = round(row[3], 2)
descuento = round(row[3], 2) cant = round(row[4], 2)
cant = round(row[4], 2) pf = vu - descuento
pf = products[obj.id]['valor_unitario'] - descuento p = {
products[obj.id]['cantidad'] += cant 'id_product': obj.id,
products[obj.id]['importe'] = round( 'delete': '-',
pf * products[obj.id]['cantidad'], DECIMALES) 'clave': obj.clave,
if vu != products[obj.id]['valor_unitario']: 'descripcion': obj.descripcion,
msg = 'Precio diferente en producto: {}'.format(row[0]) 'unidad': obj.unidad.id,
return {'ok': False, 'msg': msg} 'cantidad': cant,
else: 'valor_unitario': vu,
vu = round(row[2], 2) 'descuento': descuento,
descuento = round(row[3], 2) 'importe': round(pf * cant, DECIMALES),
cant = round(row[4], 2) 'taxes': _get_taxes_product(obj.id),
pf = vu - descuento }
p = { products.append(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
except Productos.DoesNotExist: except Productos.DoesNotExist:
pass pass
log.info('Factura importada...') log.info('Factura importada...')
return {'ok': True, 'rows': tuple(products.values())} return {'ok': True, 'rows': tuple(products)}
def get_doc(type_doc, id, rfc): def get_doc(type_doc, id, rfc):