refactor: streamline client and supplier information retrieval across invoice services
This commit is contained in:
@@ -186,8 +186,13 @@ class DefinitiveImportService:
|
||||
if not filters.include_cancelled and row[3] != 'AC': # C4 - Estatus
|
||||
continue
|
||||
|
||||
# Provider and client names now come directly from query (C8, C9)
|
||||
# No need for additional database lookups
|
||||
# Get all detailed information (same as temporary imports)
|
||||
proveedor_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[15], is_supplier=True
|
||||
)
|
||||
vendido_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[16], is_supplier=False
|
||||
)
|
||||
agente_info = DatabaseHelper.get_customs_agent_info(
|
||||
db, filters.database_name, row[17]
|
||||
)
|
||||
@@ -251,12 +256,12 @@ class DefinitiveImportService:
|
||||
Fecha_Fin=row[11],
|
||||
Fecha_Pago=row[12],
|
||||
Remesa=row[13],
|
||||
Proveedor=row[7], # C8 - Provider name (from JOIN)
|
||||
RFCProveedor=None, # RFC not in detailed query
|
||||
ProveedorTaxID=None, # Tax ID not in detailed query
|
||||
VendidoA=row[8], # C9 - Client name (from JOIN)
|
||||
VendidoARFC=None, # RFC not in detailed query
|
||||
VendidoATaxID=None, # Tax ID not in detailed query
|
||||
Proveedor=proveedor_info.get('name'),
|
||||
RFCProveedor=proveedor_info.get('rfc'),
|
||||
ProveedorTaxID=proveedor_info.get('tax_id'),
|
||||
VendidoA=vendido_info.get('name'),
|
||||
VendidoARFC=vendido_info.get('rfc'),
|
||||
VendidoATaxID=vendido_info.get('tax_id'),
|
||||
AgenteAduanal=agente_info.get('name'),
|
||||
Patente=agente_info.get('license'),
|
||||
NumParte=row[19],
|
||||
|
||||
@@ -187,8 +187,13 @@ class ExportService:
|
||||
if not filters.include_cancelled and row[5] == 'NA': # C6 - Estatus
|
||||
continue
|
||||
|
||||
# Provider and client names now come directly from query (C14, C15)
|
||||
# No need for additional database lookups
|
||||
# Get client/supplier information
|
||||
proveedor_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[13], is_supplier=True # C14 - Proveedor
|
||||
)
|
||||
vendido_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[14], is_supplier=False # C15 - VendidoA
|
||||
)
|
||||
|
||||
# Get customs agent information
|
||||
agente_info = DatabaseHelper.get_customs_agent_info(
|
||||
@@ -252,12 +257,12 @@ class ExportService:
|
||||
Fecha_Pago=row[10], # C11 - Fecha_Pago
|
||||
Remesa=row[11], # C12 - Remesa
|
||||
TipoCambio=tipo_cambio_final,
|
||||
Proveedor=row[13], # C14 - Provider name (from JOIN)
|
||||
RFCProveedor=None, # RFC not in detailed query
|
||||
ProveedorTaxID=None, # Tax ID not in detailed query
|
||||
VendidoA=row[14], # C15 - Client name (from JOIN)
|
||||
VendidoARFC=None, # RFC not in detailed query
|
||||
VendidoATaxID=None, # Tax ID not in detailed query
|
||||
Proveedor=proveedor_info.get("name"),
|
||||
RFCProveedor=proveedor_info.get("rfc"),
|
||||
ProveedorTaxID=proveedor_info.get("tax_id"),
|
||||
VendidoA=vendido_info.get("name"),
|
||||
VendidoARFC=vendido_info.get("rfc"),
|
||||
VendidoATaxID=vendido_info.get("tax_id"),
|
||||
AgenteAduanal=agente_info.get("name"),
|
||||
Patente=agente_info.get("license"),
|
||||
NumParte=row[17], # C18 - Clase
|
||||
|
||||
@@ -188,8 +188,15 @@ class ExportRepairService:
|
||||
if not filters.include_cancelled and row[5] == 'NA': # C6 - Estatus
|
||||
continue
|
||||
|
||||
# Provider and client names now come directly from query (C14, C15)
|
||||
# No need for additional database lookups
|
||||
# Get provider information
|
||||
proveedor_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[13], is_supplier=True # C14 - Proveedor
|
||||
)
|
||||
|
||||
# Get buyer information
|
||||
vendido_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[14], is_supplier=False # C15 - VendidoA
|
||||
)
|
||||
|
||||
# Get customs agent information
|
||||
agente_info = DatabaseHelper.get_customs_agent_info(
|
||||
@@ -264,12 +271,12 @@ class ExportRepairService:
|
||||
Fecha_Fin=row[9], # C10 - Fecha_Fin
|
||||
Fecha_Pago=row[10], # C11 - Fecha_Pago
|
||||
Remesa=row[11], # C12 - Remesa
|
||||
Proveedor=row[13], # C14 - Provider name (from JOIN)
|
||||
RFCProveedor=None, # RFC not in detailed query
|
||||
ProveedorTaxID=None, # Tax ID not in detailed query
|
||||
VendidoA=row[14], # C15 - Client name (from JOIN)
|
||||
VendidoARFC=None, # RFC not in detailed query
|
||||
VendidoATaxID=None, # Tax ID not in detailed query
|
||||
Proveedor=proveedor_info.get('name'),
|
||||
RFCProveedor=proveedor_info.get('rfc'),
|
||||
ProveedorTaxID=proveedor_info.get('tax_id'),
|
||||
VendidoA=vendido_info.get('name'),
|
||||
VendidoARFC=vendido_info.get('rfc'),
|
||||
VendidoATaxID=vendido_info.get('tax_id'),
|
||||
AgenteAduanal=agente_info.get('name'),
|
||||
Patente=agente_info.get('license'),
|
||||
NumParte=row[17], # C18 - Clase (NumParte)
|
||||
|
||||
@@ -235,10 +235,7 @@ class DefinitiveImportQueries:
|
||||
ih.invoice_date AS C3, -- [2]
|
||||
ped.status AS C4, -- [3]
|
||||
ped.pedimento_code AS C5, -- [4]
|
||||
'' AS C6, -- [5]
|
||||
'' AS C7, -- [6]
|
||||
COALESCE(prov.name, '') AS C8, -- [7] Provider name
|
||||
COALESCE(client.name, '') AS C9, -- [8] Client name
|
||||
'' AS C6, '' AS C7, '' AS C8, '' AS C9, -- [5-8]
|
||||
ped.regime AS C10, -- [9]
|
||||
log.entry_exit_date AS C11, -- [10]
|
||||
log.delivery_date AS C12, -- [11]
|
||||
@@ -417,8 +414,8 @@ class RepairImportQueries:
|
||||
COALESCE(TO_CHAR(log.payment_date, 'YYYYMMDD'), ''),
|
||||
COALESCE(cmp.remesa::text, ''),
|
||||
COALESCE(fin.exchange_rate, 0),
|
||||
COALESCE(prov.name, ''),
|
||||
COALESCE(client.name, ''),
|
||||
COALESCE(cmp.provider_id::text, ''),
|
||||
COALESCE(cmp.sold_to_id::text, ''),
|
||||
COALESCE(cmp.customs_broker_id::text, ''),
|
||||
COALESCE(il.part_number::text, ''),
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(COALESCE(ld.description_spanish, ''), CHR(44), ' '), CHR(9), ' '), CHR(10), ' '), CHR(13), ' '),
|
||||
@@ -457,8 +454,6 @@ class RepairImportQueries:
|
||||
LEFT JOIN a76.invoice_financials fin ON fin.invoice_id = ih.id
|
||||
LEFT JOIN a76.invoice_logistics log ON log.invoice_id = ih.id
|
||||
LEFT JOIN a76.pedimentos ped ON ped.id = cmp.pedimento_id
|
||||
LEFT JOIN a76.clients_and_providers prov ON prov.id = cmp.provider_id
|
||||
LEFT JOIN a76.clients_and_providers client ON client.id = cmp.sold_to_id
|
||||
LEFT JOIN a76.items itm ON itm.invoice_id = ih.id
|
||||
LEFT JOIN a76.item_lines il ON il.item_id = itm.id
|
||||
LEFT JOIN a76.item_line_descriptions ld ON ld.item_line_id = il.id
|
||||
@@ -580,8 +575,8 @@ class ExportQueries:
|
||||
log.payment_date AS C11, -- [10]
|
||||
log.payment_receipt_num AS C12, -- [11]
|
||||
'' AS C13, -- [12]
|
||||
COALESCE(prov.name, '') AS C14, -- [13] Provider name
|
||||
COALESCE(client.name, '') AS C15, -- [14] Client name
|
||||
cmp.provider_id AS C14, -- [13]
|
||||
cmp.sold_to_id AS C15, -- [14]
|
||||
cmp.customs_broker_id AS C16, -- [15]
|
||||
'' AS C17, -- [16]
|
||||
prt.part_number AS C18, -- [17]
|
||||
@@ -747,8 +742,8 @@ class ExportRepairQueries:
|
||||
COALESCE(TO_CHAR(log.payment_date, 'YYYYMMDD'), '') AS C11,
|
||||
COALESCE(cmp.remesa::text, '') AS C12,
|
||||
COALESCE(fin.exchange_rate, 0) AS C13,
|
||||
COALESCE(prov.name, '') AS C14,
|
||||
COALESCE(client.name, '') AS C15,
|
||||
COALESCE(cmp.provider_id::text, '') AS C14,
|
||||
COALESCE(cmp.sold_to_id::text, '') AS C15,
|
||||
COALESCE(cmp.customs_broker_id::text, '') AS C16,
|
||||
'' AS C17,
|
||||
COALESCE(cls.class_code, '') AS C18,
|
||||
@@ -798,8 +793,6 @@ class ExportRepairQueries:
|
||||
LEFT JOIN a76.invoice_financials fin ON fin.invoice_id = ih.id
|
||||
LEFT JOIN a76.invoice_logistics log ON log.invoice_id = ih.id
|
||||
LEFT JOIN a76.pedimentos ped ON ped.id = cmp.pedimento_id
|
||||
LEFT JOIN a76.clients_and_providers prov ON prov.id = cmp.provider_id
|
||||
LEFT JOIN a76.clients_and_providers client ON client.id = cmp.sold_to_id
|
||||
LEFT JOIN a76.items itm ON itm.invoice_id = ih.id
|
||||
LEFT JOIN a76.item_lines il ON il.item_id = itm.id
|
||||
LEFT JOIN a76.item_line_descriptions ld ON ld.item_line_id = il.id
|
||||
|
||||
@@ -200,8 +200,13 @@ class RepairImportService:
|
||||
if not filters.include_cancelled and row[3] != 'AC': # C4 - Estatus
|
||||
continue
|
||||
|
||||
# Provider and client names now come directly from query
|
||||
# No need for additional database lookups
|
||||
# Get all detailed information
|
||||
proveedor_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[15], is_supplier=True
|
||||
)
|
||||
vendido_info = DatabaseHelper.get_client_info(
|
||||
db, filters.database_name, row[16], is_supplier=False
|
||||
)
|
||||
agente_info = DatabaseHelper.get_customs_agent_info(
|
||||
db, filters.database_name, row[17]
|
||||
)
|
||||
@@ -263,14 +268,14 @@ class RepairImportService:
|
||||
Regimen=row[9],
|
||||
Fecha_Inicio=row[10],
|
||||
Fecha_Fin=row[11],
|
||||
Fecha_Pago=row[8],
|
||||
Remesa=row[9],
|
||||
Proveedor=row[11], # Provider name (from JOIN)
|
||||
RFCProveedor=None, # RFC not in detailed query
|
||||
ProveedorTaxID=None, # Tax ID not in detailed query
|
||||
VendidoA=row[12], # Client name (from JOIN)
|
||||
VendidoARFC=None, # RFC not in detailed query
|
||||
VendidoATaxID=None, # Tax ID not in detailed query
|
||||
Fecha_Pago=row[12],
|
||||
Remesa=row[13],
|
||||
Proveedor=proveedor_info.get('name'),
|
||||
RFCProveedor=proveedor_info.get('rfc'),
|
||||
ProveedorTaxID=proveedor_info.get('tax_id'),
|
||||
VendidoA=vendido_info.get('name'),
|
||||
VendidoARFC=vendido_info.get('rfc'),
|
||||
VendidoATaxID=vendido_info.get('tax_id'),
|
||||
AgenteAduanal=agente_info.get('name'),
|
||||
Patente=agente_info.get('license'),
|
||||
NumParte=row[19],
|
||||
|
||||
@@ -192,6 +192,7 @@ class TemporaryImportService:
|
||||
|
||||
# Provider and client names now come directly from query (C8, C9)
|
||||
# No need for additional database lookups
|
||||
logger.info(f"Processing invoice {row[0]}: Proveedor='{row[7]}', VendidoA='{row[8]}', CantidadIE={row[22]}, DescripcionE='{row[20][:50] if row[20] else None}'")
|
||||
|
||||
# Get customs agent information
|
||||
agente_info = DatabaseHelper.get_customs_agent_info(
|
||||
|
||||
Reference in New Issue
Block a user