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