- Updated invoice processing functions to eliminate legacy fields related to returned quantities, now relying on new balance movement and discharge records. - Adjusted various components and services to reflect changes in quantity handling, including updates to the frontend for displaying used quantities instead of returned ones. - Improved the logic for invoice total updates and validation processes to ensure consistency with the new data structure. These changes aim to streamline invoice management and improve data integrity across the application.
91 lines
4.2 KiB
Python
91 lines
4.2 KiB
Python
import os
|
|
from celery import Celery
|
|
|
|
# Orden: PedimentoCode y RegimenPedimento antes de CodePedimentoRegimen (mapper)
|
|
from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode
|
|
from api.v1.modules.public.reference_data.pedimento_regimens.models import RegimenPedimento
|
|
from api.v1.modules.public.reference_data.code_pedimento_regimens.models import (
|
|
CodePedimentoRegimen,
|
|
)
|
|
# InvoiceType debe cargarse antes de InvoiceHeader (FK invoice_header.invoice_type -> public.invoice_types.key)
|
|
from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType # noqa: F401
|
|
# CustomsSection debe cargarse antes de InvoiceComplianceMx (FK invoice_compliance_mx.aduana -> public.customs_sections.customs_code)
|
|
from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection # noqa: F401
|
|
|
|
# Import models in correct order for SQLAlchemy relationship resolution
|
|
# CRITICAL: FaLineItem must be imported BEFORE LineItem
|
|
from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem # noqa: F401
|
|
from api.v1.modules.a76.items.models import LineItem # noqa: F401
|
|
# CRITICAL: BalanceMovement must be loaded before DischargeDetail (FK a24.balance_movement)
|
|
from api.v1.modules.a24.balance_movements.models import BalanceMovement # noqa: F401
|
|
from api.v1.modules.a24.discharges.models import DischargeHeader, DischargeDetail # noqa: F401
|
|
|
|
valkey_url = os.getenv("VALKEY_URL", "redis://valkey:6379/0")
|
|
print(f"DEBUG: Celery Broker URL: {valkey_url}")
|
|
|
|
# Configurar broker y backend explícitamente en el constructor
|
|
celery_app = Celery(
|
|
"anexo76_tasks",
|
|
broker=valkey_url,
|
|
backend=valkey_url,
|
|
)
|
|
celery_app.set_default()
|
|
|
|
celery_app.conf.update(
|
|
include=[
|
|
"api.v1.modules.a76.reports.importacion.facturas.task",
|
|
"api.v1.modules.a76.reports.importacion.consolidados.task",
|
|
"api.v1.modules.a76.reports.importacion.packing_list.task",
|
|
"api.v1.modules.a76.reports.exportacion.aviso_consolidado.task",
|
|
"api.v1.modules.a76.reports.movements.invoices.tasks",
|
|
"api.v1.modules.a76.reports.movements.saldos.tasks",
|
|
"api.v1.modules.a76.reports.exportacion.descargo.task",
|
|
"api.v1.modules.a76.layouts_csv.facturas.tasks",
|
|
"api.v1.modules.a76.layouts_csv.exportacion.tasks",
|
|
"api.v1.modules.a76.layouts_csv.cambio_regimen_regularizacion.tasks",
|
|
"api.v1.modules.a76.layouts_csv.customs_brokers.tasks",
|
|
"api.v1.modules.a76.layouts_csv.clients_and_providers.tasks",
|
|
"api.v1.modules.a76.layouts_csv.pedmientos.tasks",
|
|
"api.v1.modules.a76.layouts_csv.exchange_rate.tasks",
|
|
"api.v1.modules.a76.layouts_csv.us_tariff_fractions.tasks",
|
|
"api.v1.modules.a76.layouts_csv.classes.tasks",
|
|
"api.v1.modules.a76.layouts_csv.parts.tasks",
|
|
"api.v1.modules.a76.layouts_csv.boms.tasks",
|
|
"api.v1.modules.a76.layouts_csv.vehicles.tasks",
|
|
"api.v1.modules.a76.layouts_csv.drivers.tasks",
|
|
"api.v1.modules.a76.layouts_csv.trailers.tasks",
|
|
"api.v1.modules.a76.layouts_csv.transportistas.tasks",
|
|
"api.v1.modules.a76.reports.exportacion.transmission.MAINX30.task",
|
|
"api.v1.modules.a76.reports.importacion.transmission.temporal.MAINX30.task",
|
|
"api.v1.modules.a76.reports.importacion.transmission.definitive.MAINX30.task",
|
|
"api.v1.modules.a76.reports.importacion.winsaai.invoices.task",
|
|
"api.v1.modules.a76.reports.importacion.winsaai.pedimentos.task",
|
|
"api.v1.modules.core.help_center.tasks",
|
|
"api.v1.modules.core.help_center.tasks",
|
|
"api.v1.modules.a76.invoices.imports.process.task",
|
|
"api.v1.modules.a76.invoices.imports.revert.task",
|
|
"api.v1.modules.a76.invoices.exports.process.task",
|
|
"api.v1.modules.a76.invoices.exports.revert.task",
|
|
] # Ruta al módulo donde están las tareas
|
|
)
|
|
|
|
# Configuraciones adicionales
|
|
celery_app.conf.update(
|
|
task_track_started=True,
|
|
task_serializer="json",
|
|
accept_content=["json"],
|
|
result_serializer="json",
|
|
timezone="America/Mexico_City",
|
|
enable_utc=True,
|
|
)
|
|
|
|
celery_app.conf.beat_schedule = {
|
|
"sync-from-hub-every-minute": {
|
|
"task": "sync_from_hub_task",
|
|
"schedule": 60.0, # Run every 60 seconds
|
|
},
|
|
}
|
|
|
|
if __name__ == "__main__":
|
|
celery_app.start()
|