FI itinerante en SDR (Catalunya) — un documento por ruta¶
Cuando una ruta recoge de varios productores catalanes en el mismo viaje, el SDR permite documentar toda la ruta con un único documento: el FI (Full de Seguiment Itinerant, también llamado FSI), en vez de un FS por cada recogida. Odoo decide solo cuándo una ruta va por FI y lo gestiona de principio a fin.
🎯 Objetivo
Entender cuándo una ruta se documenta con un FI en lugar de FS individuales, qué recogidas entran y cuáles no, y el flujo operativo para logística: planificar → iniciar (se crea el FI) → cerrar recogidas (se añaden) → validar la descarga → firmar.
Pendiente de activar en producción
El FI automático está detrás de un interruptor (act_waste_sdr.fsi_enabled)
que hoy está APAGADO. Mientras esté apagado, cada recogida sigue
generando su FS individual (ver NT en SDR → El DI del traslado).
Se encenderá en producción cuando el cliente lo indique. Esta página
describe cómo se comportará una vez activado.
Cuándo se usa el FI (la regla de enrutado)¶
Odoo mira cada ruta y decide por sí mismo el documento. Una misma ruta puede mezclar varios tipos a la vez:
graph TD
A[Ruta] --> B{¿≥2 recogidas que<br/>requieren NT,<br/>TODAS en Catalunya<br/>08/17/25/43?}
B -->|Sí| C[FI itinerante<br/>un documento por ruta]
B -->|No| D[FS / DI individual<br/>uno por recogida]
C --> E{Cada parada}
E -->|Origen gestor| F[Fuera del FI → FS]
E -->|Residuo sin NT| G[Sin documento SDR]
E -->|NT no aceptada| H[Pendiente NT]
E -->|NT/FA aceptada| I[Entra en el FI]
| Caso | Documento |
|---|---|
Ruta con ≥2 recogidas de productores, todas en Catalunya (CP 08/17/25/43) |
FI — un único documento por ruta |
| Recogida a 1 solo productor / suelta | DI/FS individual (flujo de siempre) |
Origen gestor de residuos (is_gestora), aunque la ruta sea itinerante |
FS — no entra en el FI (ver abajo) |
Qué cuenta para el «≥2»
Solo cuentan las paradas cuya recogida requiere NT y cuyo origen no es un gestor. Las paradas de solo-contenedor, las de un residuo que no necesita NT o las que van a un gestor no cuentan para llegar a las dos recogidas que disparan el FI.
El origen gestor va por FS, no por FI (flujo B pendiente)
Una parada cuyo origen es un gestor de residuos queda fuera del FI aunque la ruta sea itinerante: le corresponde un FS. La regla acordada es que el gestor emite el FS y GRAMA solo firma el nº externo — pero ese flujo completo está PENDIENTE de implementar. Hoy esa recogida va por el flujo individual normal (GRAMA crea el FS). Documentamos el comportamiento actual; el «solo firmar» del gestor llegará más adelante.
Casos especiales dentro de una ruta itinerante¶
Son las dudas reales que surgen al montar una ruta con varias paradas. En todos ellos, el resto de la ruta sigue funcionando: un problema en una parada no rompe el FI de las demás.
1 · Residuo que NO requiere NT (no peligroso a valorización)¶
No genera ningún documento SDR: nunca fue a plataforma. Simplemente no entra en el FI y no deja rastro documental. Ver ¿Qué residuos generan NT?.
2 · Residuo que requiere NT pero NO tiene NT aceptada¶
Si el residuo necesita NT pero no hay NT aceptada (está pendiente de firma,
no existe, o no hay CT), esa línea no entra en el FI. Queda como un DI en
estado «Pendiente NT» (pending_nt), sin enviar al SDR, a la espera de
que la NT llegue a Vigente para enviarlo a mano por DI.
No bloquea la ruta
El conductor cierra la recogida con normalidad; la línea sin NT simplemente espera. Cuando la NT esté aceptada, se envía ese DI individual. El FI del resto de la ruta se firma sin esperar a esa parada.
3 · Parada sin NIMA¶
El NIMA se avisa en la planificación de la ruta, con un aviso NO bloqueante («Entiendo y deseo continuar»); ver El NIMA. Dentro del FI lo que decide la inclusión no es el NIMA, sino tener NT/FA aceptada:
- Si hay FA aceptada → la parada entra en el FI (por la vía FA el NIMA no se reenvía, así que un NIMA en blanco no la frena).
- Si no hay NT/FA aceptada → cae en «Pendiente NT», igual que el caso 2.
4 · Parada a gestor¶
Como se explica arriba: fuera del FI, va por FS (flujo individual hoy; «solo firma del gestor» pendiente).
Flujo operativo para logística (paso a paso)¶
graph LR
A[Planificar<br/>la ruta] --> B[Iniciar la ruta<br/>→ se crea el FI] --> C[Conductor cierra<br/>recogidas<br/>→ se añaden al FI] --> D[Llegada a nave<br/>validar la descarga] --> E[Ventana 48h<br/>corregir kilos] --> F[Firma del FI<br/>automática o manual]
1. Planificar la ruta¶
Monta la ruta como siempre (ver Planificar rutas). Los avisos de NIMA y de documentación son no bloqueantes: puedes continuar.
2. Iniciar la ruta → se crea el FI¶
Al pasar la ruta a En curso, si va por itinerante Odoo crea el FI vacío
en el SDR (nouFsi). Si la creación falla, no bloquea el inicio: se registra
el error en el historial de la ruta y queda el botón «Crear FSI» para
reintentar.
3. El conductor cierra recogidas → se añaden al FI¶
Cada vez que el conductor finaliza una recogida, sus líneas con NT aceptada
se añaden al FI (afegirRecollidesFsi) con el peso del conductor. Las
líneas de los casos 1–3 se apartan según lo visto arriba.
4. Llegada a nave y validación de la descarga¶
En la nave se valida la descarga de la ruta (ver Descarga de ruta). Esa validación es la que abre la ventana de corrección del FI.
5. Ventana de 48 h para corregir kilos¶
Desde que se valida la descarga arranca una ventana de 48 horas
(configurable, act_waste_sdr.fsi_sign_hours) para corregir los kilos con
el wizard «Corregir kilos» si la báscula de nave difirió del peso del
conductor. Lo corregido viaja al SDR como cantidad real del gestor
(quantitatGestor vía modificarRecollidaFsi).
Kilos que se firman
Si logística corrige en la ventana, se firma con los kilos corregidos. Si nadie corrige, se firma con lo que puso el conductor. El peso de báscula interno de la nave no viaja aparte.
6. Firma del FI¶
Pasada la ventana, el FI se firma solo (una tarea programada lo firma en
cuanto la descarga está validada y han pasado las 48 h) o a mano con el
botón «Firmar FSI» cuando la ruta está finalizada (signarFsi). Al firmar,
el FI queda cerrado y los kilos de sus recogidas se congelan.
En la ficha de la ruta¶
Cuando una ruta va por itinerante, su ficha muestra:
- Un banner «Ruta itinerante: se documentará con un FSI (una ruta = un documento)», que aparece antes de crearse el FI.
- Una vez creado: el código y el estado del FI (badge de color), y la fecha «Firmable a partir de».
- Botones en la cabecera:
| Botón | Qué hace | Cuándo aparece |
|---|---|---|
| Crear FSI | Crea/reintenta el FI de la ruta | Toda Catalunya y aún sin FI; ruta planificada o en curso |
| Firmar FSI | Firma el FI (irreversible) | Hay FI y la ruta está finalizada |
| Ver FSI | Abre el documento FI (DI padre) | Hay FI |
| Cancelar FSI | Cancela el FI completo en el SDR | Hay FI y no está firmado ni anulado |
Un FI firmado no se cancela por Odoo
Si el FI ya está firmado, no se puede anular por API: hazlo en el portal de la ARC si procede. También al anular la ruta Odoo intenta cancelar su FI, pero si estaba firmado solo lo avisa.
Anular una sola parada del FI
Si una recogida de la ruta se anula o queda vacía, se puede quitar solo
esa recogida del FI (cancelarRecollidaFsi) sin tocar el resto, siempre
que el FI siga abierto (sin firmar).
FS, DI y FI: los tres documentos del SDR¶
En el SDR de la ARC conviven tres documentos de traslado. Odoo elige el que toca automáticamente:
| Documento | Cuándo | Cómo lo trata Odoo |
|---|---|---|
| DI — Document d'Identificació | Recogida normal a un cliente productor | Un documento por recogida |
| FS — Full de Seguiment | Origen gestor de residuos | Un documento por recogida (gestor emite / GRAMA firma pendiente) |
| FI — Full de Seguiment Itinerant | Ruta itinerante (≥2 productores, toda Catalunya) | Un documento por ruta |
FS y DI comparten el mismo servicio web
Internamente FS y DI usan el mismo web service del SDR y solo cambia un
parámetro (tipusFull); el FI tiene sus propios endpoints. Es un detalle
técnico: tú no eliges el tipo, lo pone Odoo por el origen de cada recogida.
Las otras plataformas
El FI es exclusivo de Catalunya (SDR). En eSIR y E3S cada recogida genera su DI individual; no hay documento itinerante.