Saltar al contenido principal

Anexo Técnico - Terceros y Sucursales: Campos, usos y validaciones

Este anexo resume el uso real de campos de Tercero y TerceroSucursal identificado en controllers, supports, modelos y frontend.

1. Mapa rápido de dónde se usa TerceroSucursal

Usos confirmados en backend:

  • TerceroController (creación/edición/cartera).
  • TerceroSucursalController (CRUD sucursales).
  • FacMovimientosController + FacturacionElectronica + FacSupport.
  • ComComprasController y ComComproEgresoController.
  • SalMercanciaController (despachos).
  • OrdOrdenesController (órdenes para compra/factura).
  • LotLiquidacionesController + LiquidacionesSupport.
  • ProdListaPrecioController (precios por sucursal y tipo).
  • GenEtiquetaNew (datos de etiqueta, incluyendo código planta).

Usos confirmados en frontend:

  • Selector transversal SelectTerceroSucursal (múltiples módulos).
  • Facturación, Compras, Órdenes, Despachos, Egresos, Recibos de caja.

2. Campos de Tercero y uso operativo

2.1 plazo_facturacion

  • Uso:
    • Calcula fecha de vencimiento sugerida en frontend (Facturación y Compras).
    • Participa en cálculo de dias_vencidos en movimientos de facturación.
  • Impacto:
    • Cambia vencimiento y control de mora.

2.2 dias_gracia

  • Uso:
    • En validación de facturas vencidas de cartera (getFacturasVencidasTercero).
  • Impacto:
    • Define tolerancia antes de considerar mora.

2.3 cupo_cartera

  • Uso:
    • Se compara con cartera facturada para calcular cupo disponible.
  • Impacto:
    • Puede bloquear operación comercial por cupo agotado.

2.4 bloquear_cartera

  • Uso:
    • En SelectTerceroSucursal para bloquear selección operativa del tercero.
  • Impacto:
    • Bloquea flujo por política comercial; puede requerir autorización.

3. Campos de TerceroSucursal y uso operativo

3.1 prodListaPrecio_id (Lista de venta)

  • Uso:
    • Front: define precios cuando se selecciona tercero/sucursal en Facturación, Compras y Órdenes.
    • Back: se usa para precios en despacho→facturación y subida de despachos.
  • Impacto:
    • Afecta precio unitario y total de documentos.

3.2 prodListaPrecioCompra_id (Lista de compra)

  • Uso:
    • Back: ProdListaPrecioController::preciosPorSucursalYTipo (tipo 2).
  • Impacto:
    • Base de precios para operaciones de compra por sucursal.

3.3 prod_lista_precio_etiquetas_id

  • Uso:
    • Campo gestionado en configuración de terceros y persistido.
  • Impacto:
    • Configuración de apoyo para procesos de etiquetado/precio por sucursal.

3.4 email

  • Uso:
    • FacturacionElectronica::buildClienteFacturaElectronica (cliente FE).
    • FacturacionElectronica::sendEmailFE (destinatarios de envío).
  • Lógica relevante:
    • Soporta múltiples correos separados por coma (se normaliza y divide).
  • Impacto:
    • Si está vacío/incorrecto, falla o se degrada el envío de FE por email.

3.5 pedidos_proveedor_id (Nube Usuario ID)

  • Uso:
    • Descarga de facturas nube en Compras (readFacturaNube).
    • Subida de facturas y liquidaciones a nube (junto con banderas de upload).
    • Subida de liquidaciones: se envía como sucursal_id externo.
  • Impacto:
    • Sin este ID, integraciones externas no enlazan correctamente proveedor/sucursal.

3.6 upload_factura

  • Uso:
    • Condición para subir factura a nube en Facturación.
  • Dependencias:
    • Requiere además flags/URL activos en empresa y pedidos_proveedor_id.
  • Impacto:
    • Control granular por sucursal para integración externa de facturas.

3.7 upload_liquidacion

  • Uso:
    • Condición para subir liquidaciones a nube en Lotes/Liquidaciones.
  • Dependencias:
    • Requiere además flags/URL activos en empresa y pedidos_proveedor_id.
  • Impacto:
    • Control granular por sucursal para integración externa de liquidaciones.

3.8 codigo_planta

  • Uso:
    • Se imprime en data de etiquetas (tercero_sucursal_codigo_planta) en GenEtiquetaNew.
  • Impacto:
    • Trazabilidad sanitaria/Invima en etiquetas y documentos de producto.

3.9 gen_municipios_id, direccion, telefono, nombre

  • Uso:
    • Datos del receptor/proveedor en impresión (factura, orden, despacho, comprobantes).
    • Datos de ubicación y contacto en FE y reportes.
  • Impacto:
    • Calidad documental y comunicación.

4. Validaciones y bloqueos detectados

4.1 Cartera en selección de tercero

  • Flujo:
    1. SelectTerceroSucursal consulta terceros/facturas-vencidas/{tercero_id}.
    2. Evalúa:
      • tercero con bloquear_cartera,
      • facturas vencidas según dias_gracia,
      • cupo disponible con cupo_cartera.
    3. Si hay bloqueo y empresa tiene bloqueo activo, solicita confirmación/autorización.

4.2 Integración factura nube

  • Solo sube si se cumple:
    • empresa upload_facturas = true,
    • empresa tiene upload_facturas_url,
    • sucursal upload_factura = true,
    • sucursal pedidos_proveedor_id válido.

4.3 Integración liquidación nube

  • Solo sube si se cumple:
    • empresa upload_liquidaciones = true,
    • empresa tiene upload_liquidaciones_url,
    • sucursal upload_liquidacion = true,
    • sucursal pedidos_proveedor_id válido.

4.4 Envío email FE

  • Usa sucursal.email.
  • Permite múltiples correos separados por coma.
  • Se dispara al enviar FE cuando no es cliente POS interno.

5. Recomendaciones de control de datos

  • Validar email con pruebas reales de envío FE por sucursal.
  • Definir responsable de pedidos_proveedor_id y de flags upload por sucursal.
  • Auditar periódicamente que prodListaPrecio_id y prodListaPrecioCompra_id correspondan al canal correcto.
  • Revisar tercero con bloquear_cartera antes de habilitar operación comercial.
  • Asegurar codigo_planta para proveedores que requieren trazabilidad sanitaria en etiqueta.