feat(ops,fin,crm): frontend de las reglas del PDF (decisiones, cierre, PDF factura, continuidad)

- Embarque: "Cerrar operación" (costos finales, habilita facturar), "Reprogramar
  salida" (Cut Off), y bitácora con puntos de decisión (autorizar/rechazar → hito
  de corrección) + transporte terrestre/recolección en Datos.
- Factura: "Enviar (PDF)" que genera y guarda el PDF, "Ver PDF", y revisión del
  cliente (en revisión / aprueba / con observaciones); estado en_revision_cliente.
- Solicitud: "Registrar contacto" y "Re-cotizar"; Cotización: "Re-cotizar (clonar)";
  Oportunidad: "Convertir a solicitud" (enlaza embudo→RFQ).
- Clientes API ampliados (ops/fin/crm) + catálogos (incoterms/participantes) +
  etiquetas de estado. svelte-check: 0 errores de tipo en archivos nuevos.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aduanasoft
2026-07-15 09:08:07 -06:00
parent 3ea8d5f3ef
commit e806512a89
9 changed files with 317 additions and 20 deletions

View File

@@ -186,6 +186,7 @@ export const LOAD_TYPES: Option[] = [
export const SR_STATUS: Option[] = [
{ value: 'nueva', label: 'Nueva' },
{ value: 'contacto', label: 'Contacto realizado' },
{ value: 'en_analisis', label: 'En análisis' },
{ value: 'cotizada', label: 'Cotizada' },
{ value: 'aceptada', label: 'Aceptada' },
@@ -231,11 +232,26 @@ export const DOC_KINDS: Option[] = [
{ value: 'otro', label: 'Otro' }
];
// ----- Bitácora del embarque: hitos y decisiones -----
export const EVENT_STATUS: Option[] = [
{ value: 'pendiente', label: 'Pendiente' },
{ value: 'completado', label: 'Completado' },
{ value: 'omitido', label: 'Omitido' },
{ value: 'rechazado', label: 'Rechazado' },
{ value: 'en_correccion', label: 'En corrección' }
];
export const EVENT_OUTCOME: Option[] = [
{ value: 'autorizado', label: 'Autorizado' },
{ value: 'rechazado', label: 'Rechazado' }
];
// ----- Facturación -----
export const INVOICE_STATUS: Option[] = [
{ value: 'borrador', label: 'Borrador' },
{ value: 'emitida', label: 'Emitida' },
{ value: 'enviada', label: 'Enviada' },
{ value: 'en_revision_cliente', label: 'En revisión del cliente' },
{ value: 'pagada', label: 'Pagada' },
{ value: 'cancelada', label: 'Cancelada' }
];
@@ -258,5 +274,6 @@ export const SHIPMENT_DOC_TYPES: Option[] = [
{ value: 'packing_list', label: 'Packing List' },
{ value: 'carta_encomienda', label: 'Carta Encomienda' },
{ value: 'carta_garantia', label: 'Carta Garantía' },
{ value: 'certificado_permiso', label: 'Certificado / Permiso' },
{ value: 'otro', label: 'Otro' }
];