Nuevo formulario de extension para partes SCAI con nuevas tablas de aphis con catalogos fijos nuevos
This commit is contained in:
@@ -135,8 +135,10 @@ class PartService:
|
||||
|
||||
# Extraer datos de países si existen en inv_data
|
||||
countries_data = None
|
||||
aphis_records_data = None
|
||||
if inv_dict:
|
||||
countries_data = inv_dict.pop('countries', None)
|
||||
aphis_records_data = inv_dict.pop('aphis_records', None)
|
||||
|
||||
# Inyectar IDs de contexto (Seguridad Multi-tenant)
|
||||
data['company_id'] = company_id
|
||||
@@ -214,6 +216,54 @@ class PartService:
|
||||
)
|
||||
db_part.inv_countries.append(country_obj)
|
||||
|
||||
# 7. Crear registros Aphis
|
||||
if aphis_records_data:
|
||||
from api.v1.modules.a24.inv.inv_aphis.models import (
|
||||
InvPartAphisGeneral, InvPartAphisCharacteristic, InvPartAphisStypePitems,
|
||||
InvPartAphisLpcos, InvPartAphisEntities, InvPartAphisContainers, InvPartAphisRouting
|
||||
)
|
||||
for a_data in aphis_records_data:
|
||||
a_data.pop('id', None)
|
||||
char_data = a_data.pop('characteristics', [])
|
||||
stype_data = a_data.pop('stype_pitems', [])
|
||||
lpco_data = a_data.pop('lpcos', [])
|
||||
entity_data = a_data.pop('entities', [])
|
||||
container_data = a_data.pop('containers', [])
|
||||
routing_data = a_data.pop('routing', [])
|
||||
|
||||
aphis_obj = InvPartAphisGeneral(
|
||||
**a_data,
|
||||
inv_part_id=db_part.id,
|
||||
tenant_id=tenant_id,
|
||||
company_id=company_id
|
||||
)
|
||||
|
||||
for c_data in char_data:
|
||||
c_data.pop('id', None); c_data.pop('aphis_general_id', None)
|
||||
aphis_obj.characteristics.append(InvPartAphisCharacteristic(**c_data, tenant_id=tenant_id, company_id=company_id))
|
||||
|
||||
for s_data in stype_data:
|
||||
s_data.pop('id', None); s_data.pop('aphis_general_id', None)
|
||||
aphis_obj.stype_pitems.append(InvPartAphisStypePitems(**s_data, tenant_id=tenant_id, company_id=company_id))
|
||||
|
||||
for l_data in lpco_data:
|
||||
l_data.pop('id', None); l_data.pop('aphis_general_id', None)
|
||||
aphis_obj.lpcos.append(InvPartAphisLpcos(**l_data, tenant_id=tenant_id, company_id=company_id))
|
||||
|
||||
for e_data in entity_data:
|
||||
e_data.pop('id', None); e_data.pop('aphis_general_id', None)
|
||||
aphis_obj.entities.append(InvPartAphisEntities(**e_data, tenant_id=tenant_id, company_id=company_id))
|
||||
|
||||
for con_data in container_data:
|
||||
con_data.pop('id', None); con_data.pop('aphis_general_id', None)
|
||||
aphis_obj.containers.append(InvPartAphisContainers(**con_data, tenant_id=tenant_id, company_id=company_id))
|
||||
|
||||
for r_data in routing_data:
|
||||
r_data.pop('id', None); r_data.pop('aphis_general_id', None)
|
||||
aphis_obj.routing.append(InvPartAphisRouting(**r_data, tenant_id=tenant_id, company_id=company_id))
|
||||
|
||||
db.add(aphis_obj)
|
||||
|
||||
try:
|
||||
db.commit() # db.add ya se hizo en el flush anterior
|
||||
db.refresh(db_part)
|
||||
|
||||
Reference in New Issue
Block a user