Agregar método para importar existencias
This commit is contained in:
parent
219f7c6712
commit
54f2a574a3
|
@ -10967,6 +10967,65 @@ def _import_clients(rfc, path):
|
|||
return
|
||||
|
||||
|
||||
def _import_stock(rfc, path):
|
||||
if not rfc:
|
||||
msg = 'El RFC es requerido'
|
||||
log.error(msg)
|
||||
return
|
||||
|
||||
if not path:
|
||||
msg = 'El archivo CSV es necesario'
|
||||
log.error(msg)
|
||||
return
|
||||
|
||||
args = util.get_con(rfc)
|
||||
if not args:
|
||||
return
|
||||
|
||||
conectar(args)
|
||||
log.info('Importando existencias...')
|
||||
|
||||
data = utils.read_csv(path)
|
||||
t = len(data)
|
||||
ok = 0
|
||||
for i, row in enumerate(data):
|
||||
msg = f'\tImportando existencia {i+1} de {t}'
|
||||
log.info(msg)
|
||||
|
||||
cant = Decimal(row['cantidad'])
|
||||
if cant <= 0:
|
||||
continue
|
||||
|
||||
storage = int(row['almacen'])
|
||||
|
||||
product = Productos.get(Productos.clave==row['clave'])
|
||||
if not product.inventario:
|
||||
msg = 'Este producto no lleva inventario.'
|
||||
log.debug(msg)
|
||||
continue
|
||||
|
||||
values = dict(
|
||||
storage = storage,
|
||||
product = product,
|
||||
cant = cant,
|
||||
)
|
||||
obj = InventoryEntries.create(**values)
|
||||
WareHouseProduct.update_exists(values)
|
||||
|
||||
new_cant = product.existencia + cant
|
||||
q = (Productos
|
||||
.update(existencia=Productos.existencia + cant)
|
||||
.where(Productos.id==product.id)
|
||||
)
|
||||
q.execute()
|
||||
|
||||
desconectar()
|
||||
msg = f'Total de productos: {t}'
|
||||
log.info(msg)
|
||||
log.info('Proceso terminado correctamente...')
|
||||
return
|
||||
|
||||
|
||||
def _process_command_line_arguments():
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Empresa Libre')
|
||||
|
@ -10992,6 +11051,9 @@ def _process_command_line_arguments():
|
|||
action='store_true', default=False, required=False)
|
||||
parser.add_argument('-ic', '--import-clients', dest='import_clients',
|
||||
action='store_true', default=False, required=False)
|
||||
parser.add_argument('-is', '--import-stock', dest='import_stock',
|
||||
action='store_true', default=False, required=False)
|
||||
|
||||
parser.add_argument('-mc' , '--migrate-cert', dest='migrate_cert',
|
||||
action='store_true', default=False, required=False)
|
||||
|
||||
|
@ -11045,6 +11107,10 @@ def main(args):
|
|||
_import_clients(args.rfc, args.file)
|
||||
return
|
||||
|
||||
if args.import_stock:
|
||||
_import_stock(args.rfc, args.file)
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue