Facturar en lote
This commit is contained in:
parent
ebc544c8d8
commit
cdd97416ab
|
@ -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):
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue