chore: initial commit del proyecto SCAII_Sync_Client
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
62
registros/scaii/reg_501.py
Normal file
62
registros/scaii/reg_501.py
Normal file
@@ -0,0 +1,62 @@
|
||||
from typing import Dict, Any
|
||||
|
||||
class Generador501:
|
||||
@staticmethod
|
||||
def preparar_json(datos_pedi: Dict[str, Any], totales: Dict[str, float],
|
||||
datos_cliente: Dict[str, Any], total_trailers: int) -> Dict[str, Any]:
|
||||
"""
|
||||
Unifica la lógica de Get_Regs501, _Def y _Expo en una sola estructura.
|
||||
"""
|
||||
|
||||
# Lógica de Destino/Zona (Opcional)
|
||||
destino = datos_pedi.get("Destino", "")
|
||||
codigo_destino = "9" if "Interior" in destino else "7" if any(x in destino for x in ["Región", "Franja"]) else ""
|
||||
|
||||
# Clave del Importador/Exportador
|
||||
clave_transfer = datos_cliente.get("CLAVETRANSFER", "").strip() if datos_cliente else ""
|
||||
|
||||
# Construcción del Registro 501
|
||||
registro = {
|
||||
"tipo_operacion_501": datos_pedi.get("Tipo") or "",
|
||||
"clave_documento_501": datos_pedi.get("Clave") or "",
|
||||
"numero_pedimento_501": (datos_pedi.get("Pedimento") or "")[8:15],
|
||||
"codigo_importador_exportador_501": clave_transfer if clave_transfer else " ",
|
||||
"monto_fletes_501": totales["flete"],
|
||||
"monto_seguros_501": totales["seguros"],
|
||||
"costo_embalajes_501": totales["embalajes"],
|
||||
"cargos_incrementables_501": totales["otros_incrementa"],
|
||||
"cargos_deducibles_501": 0,
|
||||
"peso_total_bruto_501": totales["peso_bruto"],
|
||||
"total_bultos_501": totales["bultos"],
|
||||
"metodo_transporte_entrada_501": str(datos_pedi.get("TransE") or ""),
|
||||
"metodo_transporte_arribo_501": str(datos_pedi.get("TransA") or ""),
|
||||
"metodo_transporte_salida_501": str(datos_pedi.get("TransS") or ""),
|
||||
"codigo_destino_zona_501": codigo_destino,
|
||||
"numero_referencia_501": "",
|
||||
"moneda_costos_incrementables_501": "ME", # O tomar de la primera factura
|
||||
"codigo_aduana_despacho_501": str(datos_pedi.get("Aduana") or ""),
|
||||
"numero_patente_501": (datos_pedi.get("Pedimento") or "")[3:7],
|
||||
"origenPedimento": 1,
|
||||
"total_vehiculos_501": total_trailers,
|
||||
"rfc_importador_exportador_501": " ",
|
||||
"curp_importador_exportador_501": " ",
|
||||
"nombre_completo_importador_exportador_501": " ",
|
||||
"calle_direccion_importador_exportador_501": " ",
|
||||
"numero_exterior_direccion_importador_exportador_501": " ",
|
||||
"numero_interior_direccion_importador_exportador_501": " ",
|
||||
"colonia_direccion_importador_exportador_501": " ",
|
||||
"localidad_direccion_importador_exportador_501": " ",
|
||||
"municipio_direccion_importador_exportador_501": " ",
|
||||
"estado_direccion_importador_exportador_501": " ",
|
||||
"pais_direccion_importador_exportador_501": " ",
|
||||
"codigo_postal_direccion_importador_exportador_501": " ",
|
||||
"monto_fletes_decrementables_501": 0,
|
||||
"monto_seguros_decrementables_501": 0,
|
||||
"monto_carga_decrementables_501": 0,
|
||||
"monto_descarga_decrementables_501": 0,
|
||||
"monto_otros_decrementables_501": 0,
|
||||
"MarcaBulto1_501": "S/N",
|
||||
"MarcaBulto2_501": "S/N"
|
||||
}
|
||||
|
||||
return registro
|
||||
Reference in New Issue
Block a user