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:
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):