forked from elmau/empresa-libre
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
|
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():
|
def _process_command_line_arguments():
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description='Empresa Libre')
|
description='Empresa Libre')
|
||||||
|
@ -10992,6 +11051,9 @@ def _process_command_line_arguments():
|
||||||
action='store_true', default=False, required=False)
|
action='store_true', default=False, required=False)
|
||||||
parser.add_argument('-ic', '--import-clients', dest='import_clients',
|
parser.add_argument('-ic', '--import-clients', dest='import_clients',
|
||||||
action='store_true', default=False, required=False)
|
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',
|
parser.add_argument('-mc' , '--migrate-cert', dest='migrate_cert',
|
||||||
action='store_true', default=False, required=False)
|
action='store_true', default=False, required=False)
|
||||||
|
|
||||||
|
@ -11045,6 +11107,10 @@ def main(args):
|
||||||
_import_clients(args.rfc, args.file)
|
_import_clients(args.rfc, args.file)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if args.import_stock:
|
||||||
|
_import_stock(args.rfc, args.file)
|
||||||
|
return
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue