Este instructivo tiene como objetivo explicar la lógica de comportamiento que aplica el sistema al vincular y desvincular traslados de granos a un Contrato de Compra de Granos.
Tiempo estimado de lectura: 5 minutos
Módulo: Compra de Granos → Contratos / Vinculación de Transacciones
¿Para qué sirve la vinculación?
La vinculación asocia uno o más traslados de granos (cartas de porte / recepciones) a un contrato de compra, consumiendo la cantidad pendiente del contrato y habilitando la posterior liquidación. Es el nexo que conecta la recepción física del grano con el compromiso contractual.
Controles al vincular
Antes de registrar cualquier vinculación, el sistema ejecuta cuatro validaciones en secuencia. Si alguna falla, la vinculación no se concreta y se informa el motivo.
1. Coincidencia de Producto, Empresa y Organización
El contrato y el traslado deben tener exactamente el mismo Producto, la misma Empresa y la misma Organización (vendedor / proveedor). Si difieren en alguno de estos tres datos, el sistema bloquea la vinculación con un mensaje específico por cada diferencia detectada.
2. Cantidades disponibles
| Condición | Resultado |
|---|---|
| Cantidad a vincular ≤ 0 | Bloqueado: falta cantidad |
| Cantidad a vincular > pendiente del contrato | Bloqueado: supera lo disponible en el contrato |
| Cantidad a vincular > pendiente del traslado | Bloqueado: supera lo disponible en el traslado |
El pendiente de cada documento se calcula con el SP configurado en el subtipo de transacción. Si el subtipo tiene definida una tolerancia, el sistema la suma al pendiente disponible antes de comparar (permite vincular hasta un pequeño exceso porcentual configurado).
3. Rango de fechas del contrato
La fecha del traslado debe caer dentro del rango Fecha Mínima – Fecha Máxima del contrato. Si queda fuera del rango, la vinculación es bloqueada con el mensaje correspondiente.
Esta validación puede desactivarse por subtipo de contrato. Cuando el subtipo tiene habilitada la opción Permite vincular traslados fuera de rango, la validación de fechas se omite.
4. Inciso de carta de porte vs. Producción Primaria
Esta validación aplica solo a traslados con carta de porte electrónica (CTG). El sistema cruza el inciso del traslado con el campo Producción Primaria del contrato:
| Contrato Producción Primaria | Inciso del traslado | Remitente comercial | Resultado |
|---|---|---|---|
| No (0) | A | Sin remitente comercial | Bloqueado |
| Sí (1) | A | Con remitente comercial | Bloqueado |
| Cualquier otro caso | — | — | Permitido |
5. Agente de compra (cuando el subtipo lo requiere)
Si el subtipo del contrato tiene activada la opción Utiliza Agente de Compra:
- El contrato debe tener un agente de compra asignado; si no lo tiene, la vinculación se bloquea.
- El agente de compra del contrato debe coincidir con el Mercado a Término / Organización informado en el traslado; si difieren, se bloquea indicando el nombre de ambos documentos.
Concurrencia: semáforo de vinculación
El sistema utiliza un semáforo por empresa para evitar que dos usuarios vinculen el mismo par contrato-traslado de forma simultánea. Si una vinculación ya está en proceso para esa combinación, el segundo intento recibe el mensaje “Vinculación de contrato en proceso” y se rechaza. El semáforo se libera automáticamente al finalizar la operación.
Propagación del Contrato de Servicios de Acopio (CSA)
Al vincular un traslado a un contrato, el sistema verifica si el contrato tiene asociado un Contrato de Servicios de Acopio. De ser así, lo propaga automáticamente al traslado (TransaccionIDContratoGranos en la operación).
Este mismo mecanismo se ejecuta cuando se guarda o actualiza el contrato: si se cambia o asocia un CSA, el sistema recorre todos los traslados ya vinculados al contrato y les aplica el nuevo CSA.
Vinculación parcial y múltiple
- Vinculación parcial: se puede vincular una cantidad menor a la total del traslado. El sistema registra esa cantidad en la vinculación; el saldo restante queda pendiente y puede vincularse a otro contrato.
- Múltiples contratos a un traslado: un traslado puede vincularse a más de un contrato. En ese caso, el sistema itera por cada contrato seleccionado y asigna la cantidad pendiente de cada uno.
- Múltiples traslados a un contrato: un contrato puede recibir vinculaciones de varios traslados hasta agotar su cantidad ajustada.
Comportamiento al desvincular
Antes de eliminar una vinculación, el sistema verifica que la cantidad a desvincular no supere la cantidad ya liquidada sobre ese traslado en el contexto del contrato. Si el traslado ya tiene liquidaciones asociadas, esa porción no puede desvincularse.
| Situación | Resultado |
|---|---|
| Cantidad a desvincular = cantidad vinculada (o 0) | Se elimina el registro de vinculación completo |
| Cantidad a desvincular < cantidad vinculada | Se actualiza la vinculación restando la cantidad; el registro persiste con el saldo |
| Cantidad a desvincular > cantidad disponible (sin liquidar) | Bloqueado |
Al desvincularse, el sistema también revierte la propagación del CSA sobre el traslado.
Qué hace y qué no hace
Hace: valida producto, empresa, organización, cantidades, fechas, inciso/producción primaria, agente de compra y concurrencia; propaga el CSA; admite vinculación parcial y múltiple; controla cantidad liquidada al desvincular.
No hace: no genera la liquidación automáticamente al vincular; no valida ajuste de kg ni cantidad de camiones (queda fuera del alcance de la vinculación estándar).