Save warehouse in product details

This commit is contained in:
Mauricio Baeza 2021-10-03 22:12:05 -05:00
parent a95a6842f9
commit 00cbe4d557
1 changed files with 12 additions and 6 deletions

View File

@ -4960,7 +4960,7 @@ class Facturas(BaseModel):
return result
def _calculate_totals(self, invoice, products, tipo_comprobante):
def _calculate_totals(self, invoice, products, tipo_comprobante, user):
tax_locales = Configuracion.get_bool('chk_config_tax_locales')
tax_locales_truncate = Configuracion.get_bool('chk_config_tax_locales_truncate')
tax_decimals = Configuracion.get_bool('chk_config_tax_decimals')
@ -4974,6 +4974,12 @@ class Facturas(BaseModel):
locales_traslados = 0
locales_retenciones = 0
warehouse = None
try:
warehouse = user.sucursal.warehouse
except:
pass
for product in products:
id_product = product.pop('id_product')
id_student = product.pop('id_student', 0)
@ -5013,6 +5019,8 @@ class Facturas(BaseModel):
product['nivel'] = student.grupo.nivel.nombre
product['autorizacion'] = student.grupo.nivel.autorizacion.strip()
product['warehouse'] = warehouse
FacturasDetalle.create(**product)
if tipo_comprobante == 'T':
@ -5151,7 +5159,8 @@ class Facturas(BaseModel):
with database_proxy.atomic() as txn:
# ~ print('VALUES\n\n', values)
obj = Facturas.create(**values)
totals = cls._calculate_totals(cls, obj, productos, tipo_comprobante)
totals = cls._calculate_totals(
cls, obj, productos, tipo_comprobante, user)
cls._guardar_relacionados(cls, obj, relacionados)
cls._guardar_ine(cls, obj, ine)
cls._save_leyendas_fiscales(cls, obj, leyendas_fiscales)
@ -5887,9 +5896,6 @@ class Facturas(BaseModel):
if warehouse is None:
continue
p.warehouse = warehouse
p.save()
fields = (
WareHouseProduct.warehouse==warehouse,
WareHouseProduct.product==p.producto,
@ -10293,7 +10299,7 @@ def _migrate_tables(rfc=''):
columns = [c.name for c in database_proxy.get_columns(table)]
if not 'warehouse_id' in columns:
warehouse = ForeignKeyField(Almacenes, null=True, to_field=Almacenes.id)
migrations.append(migrator.add_column(table, 'warehouse', warehouse))
migrations.append(migrator.add_column(table, 'warehouse_id', warehouse))
table = 'facturasdetalle'
columns = [c.name for c in database_proxy.get_columns(table)]