Los recorridos reales de una operadora de televisión por cable en Odoo: quién hace qué, qué hace el sistema solo, y en qué momento pasa cada cosa.
Los colores de los diagramas no son decoración: cada uno dice quién da el paso.
Antes de leer nada más. Si entiendes esto, el resto del manual se lee solo; si no, todo lo demás te va a parecer que está mal.
En casi cualquier negocio, deber dinero significa tener una factura sin pagar. En una operadora de televisión por cable, no. Aquí el abonado paga una mensualidad que se repite siempre igual, mes tras mes, durante años, y emitir una factura cada mes a cada abonado —cobrada o no— llenaría el sistema de comprobantes que nadie pidió y que habría que anular uno a uno.
Por eso existe la planilla: el documento que dice «este abonado debe el mes de julio». Nace sola, todos los meses, para todos los contratos activos. No es un documento del SRI, no tiene clave de acceso, no se declara. Es la cuenta de la casa.
flowchart TD
A["Contrato activo"]:::sis
B["Cada mes nace una PLANILLA
(no es documento del SRI)"]:::sis
C{"¿El abonado
viene a pagar?"}:::sis
D["La planilla se queda ABIERTA
y se acumula con las anteriores"]:::no
E["Ventanilla: se cargan sus planillas
en la venta y se cobra"]:::caj
F["Ahí nace la FACTURA
con su secuencial y su envío al SRI"]:::ok
G["Las planillas cobradas
quedan cerradas"]:::ok
A --> B --> C
C -->|no| D --> C
C -->|sí| E --> F --> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Buscar facturas vencidas no te dice quién debe. Un abonado con ocho meses sin pagar no tiene ocho facturas vencidas: no tiene ninguna. Tiene ocho planillas abiertas. Los informes de cartera del sistema general miran facturas, así que para cable hay una cartera propia que mira planillas — se explica en su sección 17.
El portal del abonado muestra planillas. Por lo mismo: si mostrara facturas, quien lleva medio año sin pagar entraría a su cuenta y la vería en cero.
Las dos deudas no se suman nunca. Un abonado puede deber planillas del servicio y, además, tener facturas pendientes por otra cosa —una instalación, un equipo, un material—. Son dos columnas separadas y se leen aparte. Sumarlas sería mezclar lo que el SRI ya conoce con lo que todavía no existe para él.
Cortar el servicio se decide por planillas, no por facturas. La corrida de corte mira cuánto debe cada contrato en planillas abiertas y cuántos días de gracia lleva.
Todo lo que pasa desde que el abonado llega a la ventanilla es el flujo normal de cualquier empresa, y está explicado en el manual general: los caminos de una venta (la sección «Los cuatro caminos de una venta» ↗ Manual General), cobrar en caja (la sección «Cobrar en caja» ↗ Manual General), el SRI y los comprobantes electrónicos (la sección «El SRI y los documentos electrónicos» ↗ Manual General) y los asientos que genera cada operación (la sección «Los asientos: qué cuenta y qué diario usa cada operación» ↗ Manual General).
Lo propio de cable —y lo único que cuenta este manual— es lo que pasa antes: el contrato, la planilla que nace cada mes, el corte cuando no se paga, el técnico que va a la casa y el equipo que queda instalado.
El contrato no nace suelto: nace de una solicitud de suscripción aprobada. Quien recibe al abonado no es quien lo convierte en contrato — son dos personas distintas y dos pasos distintos.
El abonado llega y llena un talonario preimpreso y numerado: ese número de papel se guarda en «Nº del formulario en papel» y es distinto del número interno de la solicitud, que el sistema asigna solo. La cajera lo recibe en ventanilla, toma los datos del cliente, de dónde vive, de su trabajo, del fiador que firma con él, y arma la lista de servicios y la liquidación que le corresponde pagar. Ahí termina lo que hace la cajera: la solicitud queda «Recibida», y de ahí no puede moverla.
Al recibir la solicitud, el sistema le deja al supervisor una tarea pendiente dentro de Odoo — no se manda nada por WhatsApp ni por correo. La tarea aparece en sus actividades pendientes y la puede aprobar desde donde esté, con su propio usuario y dejando quién aprobó y cuándo. Si nadie tiene el grupo de administrador configurado como aprobador, el sistema avisa en el historial de la propia solicitud.
flowchart TD
A["La cajera recibe el papel
y llena la solicitud"]:::caj
B["Recibida"]:::neu
C{"¿Un administrador
la aprueba?"}:::sis
D["BLOQUEO: «Esta solicitud
ya no está en recepción»"]:::no
E["Aprobada"]:::ok
F{"¿Tiene servicios
en la lista?"}:::sis
G["BLOQUEO: no se puede
aprobar sin servicios"]:::no
H["Botón «Crear contrato»"]:::caj
I{"¿Ya generó
un contrato?"}:::sis
J["BLOQUEO: ya generó
el contrato X"]:::no
K["Nace el contrato.
Estado: Contrato creado"]:::ok
L["Rechazada"]:::avi
A --> B --> C
C -->|servicios vacíos| G --> D
C -->|aprueba| F
F -->|sí| E
E --> H --> I
I -->|no| K
I -->|sí| J
B -->|«Rechazar»| L
E -->|«Rechazar»| L
L -->|«Volver a recepción»| B
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
Quién puede tocar cada botón está resumido en sección «Quién puede qué» ↗ Manual General, y cómo sigue el cobro de esa factura de inicio en sección «El SRI y los documentos electrónicos» ↗ Manual General.
Una sola pantalla reúne lo que se cobra, dónde está el servicio y cómo está físicamente el cable. Se lee en solo lectura casi siempre: editarlo es del administrador, no de la ventanilla.
Arriba de todo va el número de contrato, que es su propia secuencia — en la migración conservó el número que traía del sistema anterior. Debajo, cuatro bloques:
| Bloque | Qué guarda |
|---|---|
| Abonado | a quién se le presta el servicio y, si es distinto, a quién se factura. |
| Cobro | modalidad (prepago o postpago), el día del mes en que arranca el período y la mensualidad. |
| Ubicación del servicio | dirección, teléfonos, y la caja NAP y el poste de donde cuelga la acometida. |
| Corte | fecha del último corte, de la última reconexión, y hasta cuándo está aplazado si tiene una promesa de pago vigente. |
catv_nap_code y catv_pole_number son de solo lectura en este formulario, con el aviso «lo anota el técnico al instalar»: nadie en ningún grupo los edita a mano aquí. Suben solos al contrato cuando el técnico los llena en su orden de trabajo y la cierra en el sitio — sin pisar lo que ya había si esa visita en particular no tocó la acometida.| Pestaña | Qué contiene |
|---|---|
| Servicios contratados | lo que se cobra cada mes: televisión, internet, puntos adicionales. Suma la mensualidad del pie. |
| Cargos de inicio | lo que se cobra una sola vez al arrancar. Una instalación exonerada queda aquí con descuento del 100% y sin facturar, y es lo que permite cobrarla después si el abonado se va antes de cumplir la permanencia. |
| Equipos | el Anexo B de ARCOTEL: qué aparato tiene el abonado, en qué régimen (préstamo, arriendo, venta a plazos) y su valor comercial. |
| Anexo B — instalación y permanencia | la exoneración de instalación, los meses de permanencia mínima, y la tarifa preferencial de ley (sección 8). |
| El papel firmado | la referencia al formulario en papel y quién firmó como garante. |
El botón «Vista previa del abonado» abre el contrato tal como lo ve él desde el portal, con su enlace propio; para reenviárselo por correo está la acción «Compartir» del engranaje.
flowchart TD
A["Contrato activo"]:::ok
B["Suspendido
(voluntario o por deuda)"]:::avi
C["Cortado"]:::no
D["Terminado"]:::no
A -->|"«Suspender»"| B
B -->|"«Reactivar»"| A
A -->|"«Ordenar corte»"| C
C -->|"«Ordenar reconexión»"| A
A -->|"«Terminar contrato»"| D
B -->|"«Terminar contrato»"| D
C -->|"«Terminar contrato»"| D
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Los seis botones de operación del encabezado —suspender, reactivar, ordenar corte, ordenar reconexión, posponer corte y terminar— abren cada uno un asistente que pide el motivo: es lo que se lee cuando el abonado reclama «a mí nadie me avisó». Suspender y reactivar se detallan en sección 5 y sección 6; terminar en sección 7.
La planilla es lo que el motor de generación calcula para un contrato y un período: días a cobrar, precio congelado del contrato, impuestos. No es un documento del SRI —eso ya lo explica la sección 1—; aquí va cómo aparece, qué la agrupa y qué tres estados puede tener.
Casi siempre sola: un cron diario, no mensual. El cron corre todos los días a la 1:00 de Galápagos y decide qué le toca generar a cada contrato. Al postpago le genera el período corriente, igual que si corriera una vez al mes. Al prepago no le alcanza con eso: la regla de corte prepago no da meses de gracia, así que si el cron solo mirara el día 1 el abonado se quedaría sin la planilla del período siguiente delante para pagarla antes de que llegue el corte. Por eso al prepago se le genera también el período que viene, en cuanto entra en su ventana de anticipación. Correrlo a diario no duplica nada: los días en que no toca generar, el cron simplemente no crea nada nuevo.
La otra vía es a mano: botón «Generar planilla del período» en el contrato, visible salvo que el contrato esté terminado. Sirve para el abonado que llega a pagar antes de que corra la generación del mes —el caso completo está en el caso 27—. Pasa por el mismo motor que el cron: mismo cálculo del período, mismos impuestos congelados, mismo control de duplicados. Es idempotente: si la planilla de ese período ya existe, el botón la devuelve en vez de crear otra.
Lo que agrupa una planilla es contrato + período, con índice único detrás. Por eso no se puede crear una a mano desde la lista de planillas —ahí ni siquiera aparece «Nuevo»— ni duplicar una existente: una planilla hecha a mano no cuadra con nada, y duplicada choca con el índice único o cuela un mes repetido.
flowchart TD
A["Cron diario
01:00 Galápagos"]:::sis
B{"¿Contrato postpago
o prepago?"}:::sis
C["Postpago: genera el
período corriente"]:::sis
D["Prepago: genera el corriente
y el siguiente si ya entró en
la ventana de anticipación"]:::sis
E["Botón «Generar planilla
del período» en el contrato"]:::caj
F{"¿Ya existe la planilla
de ese período?"}:::sis
G["La devuelve tal cual:
no crea otra"]:::neu
H["Nace en «Abierta»"]:::ok
I["Se factura desde caja"]:::caj
J["«Facturada»"]:::ok
K["«Cancelar»
(manager, con confirmación)"]:::sis
L["«Cancelada»"]:::no
M["«Reabrir»
(manager)"]:::sis
N["Se anula la factura
desde Contabilidad"]:::caj
A --> B
B -->|postpago| C --> H
B -->|prepago| D --> H
E --> F
F -->|sí| G
F -->|no| H
H --> I --> J
H --> K --> L
L --> M --> H
J --> N --> H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
| Estado | Cómo se llega | Qué significa |
|---|---|---|
| Abierta | Es el estado de nacimiento, por el cron o por el botón. | Puede cobrarse, entra al aging de corte, y la ventanilla y el administrador pueden editarla. |
| Facturada | Se cobró en caja (sección «Cobrar en caja» ↗ Manual General) y quedó con una factura detrás. | Es la única que de verdad cuenta como pagada. Queda con un candado que ni el administrador salta. |
| Cancelada | Botón «Cancelar», solo manager, con la confirmación «No entrará al aging ni podrá facturarse». | No cuenta deuda ni se puede cobrar. «Reabrir» —también manager— la regresa a Abierta. |
Intentar facturar algo que no está Abierta se detiene con «Solo se pueden facturar planillas abiertas.» — ni una Cancelada ni una ya Facturada entran de nuevo al cobro.
El abonado se va de viaje, o cierra la casa por una remodelación, y no quiere que le corran los días que no va a usar el servicio. Se registra por rango de fechas y no genera deuda: es la diferencia con estar suspendido por falta de pago.
Botón «Suspender» en el contrato, del administrador de TV Cable. No aparece si el contrato ya está cortado o terminado — en esos dos estados no hay nada que suspender, el servicio ya no está prestándose.
flowchart TD
A["Botón «Suspender»"]:::caj
B{"¿Contrato cortado
o terminado?"}:::sis
C["BLOQUEO: reconéctalo
primero"]:::no
D{"¿Trae desde
y hasta?"}:::sis
E["BLOQUEO: indica desde
y hasta qué fecha"]:::no
F{"¿Hasta es anterior
a desde?"}:::sis
G["BLOQUEO: la fecha final
es anterior a la inicial"]:::no
H{"¿Pasa del tope de
meses de la empresa?"}:::sis
I["BLOQUEO: no puede pasar
de N meses"]:::no
J{"¿Se solapa con otra
suspensión del contrato?"}:::sis
K["BLOQUEO: se solapa
con otra suspensión"]:::no
L["Se crea la suspensión.
Queda escrita en el historial"]:::ok
M{"¿El rango
cubre hoy?"}:::sis
N["El contrato pasa a
«Suspensión voluntaria» ya mismo"]:::ok
O["El contrato sigue activo;
el cron diario lo alcanza
cuando llegue la fecha"]:::neu
A --> B
B -->|sí| C
B -->|no| D
D -->|falta alguna| E
D -->|sí| F
F -->|sí| G
F -->|no| H
H -->|sí| I
H -->|no| J
J -->|sí| K
J -->|no| L --> M
M -->|sí| N
M -->|no| O
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
El asistente pide desde y hasta qué fecha, el tipo —voluntaria, viaje, construcción o remodelación, u otra— y el motivo, obligatorio y que queda escrito en el historial del contrato.
Dos rangos de suspensión del mismo contrato no se pueden solapar: el sistema descuenta días sumando los rangos, y un solape descontaría el mismo día dos veces. Si el abonado ya tiene una suspensión vigente y pide otra que la cruza, hay que ajustar la que ya existe en vez de crear una nueva.
Devolver un contrato a «Activo» sin mandar cuadrilla. Es el paso donde más se confunde el nombre del botón con lo que hay que pulsar.
| El contrato está… | Se hace con… |
|---|---|
| Suspendido (voluntario o por deuda) | «Reactivar» — este botón. El cable nunca se desconectó. |
| Cortado | «Ordenar reconexión», otro botón. Hay que ir físicamente a cerrar el cable en el poste. |
| Terminado | ninguno de los dos. Un servicio dado de baja se vuelve a dar de alta con un contrato nuevo. |
El botón «Reactivar» es del administrador de TV Cable, igual que suspender: es la misma decisión —cualquier cambio de estado del servicio lo autoriza quien responde por la cartera, no la ventanilla— aunque devolver a alguien al cobro normal no tiene el riesgo de dejar de cobrarle.
flowchart TD
A["Botón «Reactivar»"]:::caj
B{"¿Estado del
contrato?"}:::sis
C["BLOQUEO: ya está activo"]:::no
D["BLOQUEO: está CORTADO en
el poste. Usa «Ordenar
reconexión»"]:::no
E["BLOQUEO: está terminado.
Se da de alta con un
contrato nuevo"]:::no
F["Cierra las suspensiones
que cubren hoy"]:::sis
G["Anula las órdenes de
corte que estén en la calle"]:::sis
H["Contrato vuelve
a «Activo»"]:::ok
A --> B
B -->|activo| C
B -->|cortado| D
B -->|terminado| E
B -->|suspendido| F --> G --> H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
La baja definitiva. Botón «Terminar contrato», del administrador de TV Cable, con dos candados delante — y los dos candados no pesan igual.
El asistente pide la fecha de baja y el motivo, obligatorio y que queda en el historial. Al confirmar pasan dos comprobaciones antes de que el contrato quede terminado.
flowchart TD
A["Botón «Terminar contrato»"]:::caj
B{"¿Debe algún
preaviso la empresa?"}:::sis
C["Un responsable CATV
puede saltárselo igual"]:::avi
D{"¿Tiene planillas
impagas abiertas?"}:::sis
E["BLOQUEO firme: «Cóbralas
o cancélalas primero».
Nadie lo salta desde aquí"]:::no
F["Contrato TERMINADO"]:::ok
G{"¿Quedan equipos, o el
servicio no estaba cortado?"}:::sis
H["Nace sola una orden de
RETIRO DE EQUIPOS"]:::sis
I["No hace falta visita:
nada que ir a buscar"]:::neu
A --> B
B -->|sí| C --> D
B -->|no| D
D -->|sí| E
D -->|no| F
F --> G
G -->|sí| H
G -->|no| I
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
El contrato exige avisar con cierta anticipación que el abonado ya no sigue —lo dice el propio contrato firmado— y el sistema la comprueba contra la fecha en que se registró ese aviso. El mensaje, tal cual: «El contrato %(contract)s exige avisar con %(dias)s días de anticipación... Un responsable CATV puede darlo de baja igualmente.» Como el botón ya es del administrador, en la práctica esta comprobación casi nunca detiene a quien la pulsa: existe para que quede negro sobre blanco que se dio de baja sin cumplir el preaviso, no para impedirlo. Negarle la baja a quien se va del pueblo mañana no lo retiene — solo deja el contrato generando planillas que nadie va a pagar.
Se emite sola una orden de trabajo de retiro de equipos cuando hay algo que ir a hacer a la casa: recuperar el decodificador o la ONU, o cerrar una acometida que todavía estaba conectada. Si el contrato ya estaba cortado y no tiene ningún equipo registrado, no hace falta visita y no se crea ninguna orden — no hay nada que ir a buscar. La orden, cuando sale, lleva el estado del servicio al momento de la baja, el motivo y el listado de equipos a retirar.
La rebaja que exige la Ley del Anciano o la Ley Orgánica de Discapacidades. No la aplica quien atiende en ventanilla: la autoriza el administrador de TV Cable, y solo con las tres condiciones cumplidas.
Vive en la pestaña «Anexo B — instalación y permanencia» del contrato, en el bloque «Tarifa preferencial de ley». Dos botones: «Aplicar tarifa preferencial» y «Quitar tarifa preferencial», los dos del administrador. El mensaje si alguien sin ese grupo intenta llegar por otro lado: «La tarifa preferencial la autoriza el administrador de TV Cable, no la ventanilla.»
| Condición | Dónde se registra |
|---|---|
| El motivo legal (tercera edad o discapacidad) | campo «Motivo». No basta con «sin verificar» ni con «comercial»: esas dos etiquetas existen para lo que llegó del sistema anterior sin comprobar, o para descuentos que no son de ley. |
| Que el abonado viva solo | casilla de confirmación. |
| El estudio previo en el domicilio | su fecha. El respaldo escaneado —cédula o carné del CONADIS— va al expediente del contrato. |
Si falta cualquiera, el sistema no aplica nada y lista exactamente qué falta en un solo mensaje, para no obligar a intentarlo tres veces.
flowchart TD
A["«Aplicar tarifa preferencial»"]:::caj
B{"¿Es administrador
de TV Cable?"}:::sis
C["BLOQUEO: la autoriza el
administrador, no la ventanilla"]:::no
D{"¿Ya tiene la
preferencial aplicada?"}:::sis
E["BLOQUEO: ya la tiene"]:::no
F{"¿Motivo, vive solo
y estudio, los tres?"}:::sis
G["BLOQUEO: lista lo
que falta"]:::no
H{"¿Un solo servicio
principal en el contrato?"}:::sis
I["BLOQUEO: ajusta el
precio a mano"]:::no
J{"¿La tarifa de ley es
menor que lo que ya paga?"}:::sis
K["BLOQUEO: no es menor.
No se toca nada"]:::no
L["Precio baja a la tarifa
de ley. Queda quién
la autorizó"]:::ok
A --> B
B -->|no| C
B -->|sí| D
D -->|sí| E
D -->|no| F
F -->|falta algo| G
F -->|las tres| H
H -->|no hay una sola| I
H -->|sí| J
J -->|no| K
J -->|sí| L
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Solo al servicio básico de televisión (o al combo que lo incluye): un abonado que además tiene puntos adicionales los sigue pagando a su precio normal. Si el contrato tiene más de un servicio que califica como principal, el sistema no adivina cuál —cobrar de menos o de más es igual de grave— y manda a corregirlo a mano en la línea que corresponda.
El monto de la tarifa preferencial vive en Ajustes › TV Cable, campo «Tarifa preferencial de ley», y es el total que paga el abonado, impuestos incluidos — no la base. El sistema le pregunta a los impuestos del propio servicio cuánto hay que descontar para que ese total salga exacto, así que si algún día cambia qué impuesto lleva el servicio, la tarifa se recalcula sola sin que haya que tocar el número. Si la tarifa configurada no es menor que lo que el contrato ya paga, no se aplica nada: bajar un precio que ya está más bajo no tiene sentido.
Los dos movimientos quedan en el historial del contrato: quién autorizó, por qué motivo legal, y de qué precio a qué precio pasó el servicio.
Cómo se decide, cada semana, a quién se le corta la señal por deuda. Enlaza con sección 10, que es quien de verdad lo ejecuta.
La corrida (TV Cable → Operación → Corridas de corte, visible solo para el manager CATV) nace sola una vez por semana con un cron que corre a diario y decide: cada día mira si hoy es el «Día de la corrida semanal de corte» que se fijó en Ajustes y, si lo es, crea una corrida nueva —una por compañía y por día, nunca dos el mismo día—. Nace en Borrador y con el listado ya generado: el manager la revisa antes de mandar nada a la calle.
Dos parámetros, en Ajustes: «Días de gracia antes del corte» (30 por defecto) y «Deuda mínima para corte». Pero el criterio de tiempo no es el mismo para las dos modalidades de cobro:
| Modalidad | El reloj de gracia corre desde… |
|---|---|
| Postpago | que la planilla termina su período. El abonado usa primero y paga después, así que no debe nada hasta que el servicio ya se prestó completo. |
| Prepago | que el período en curso empieza. Se paga por adelantado: si no pagó, el período vigente ya está vencido desde el primer día, y el plazo que se le da es el de «Días de gracia en prepago» — puede ser 0. |
El criterio de corte es simple una vez filtrado por gracia: basta con que exista una sola planilla vencida. La deuda mínima se mide contra lo vencido, no contra la deuda total — no vale la pena mandar la cuadrilla por unos centavos atrasados a quien recién le llegó su planilla del mes.
flowchart TD
A["Cron diario: ¿hoy es el
día de la corrida?"]:::sis
B["Nace la corrida en Borrador
con el listado ya generado"]:::sis
C["Manager revisa el listado"]:::caj
D["«Generar listado» (rehacer,
solo si sigue en Borrador)"]:::caj
E["«Confirmar (emitir órdenes)»"]:::caj
F["BLOQUEO: «La corrida no tiene
contratos morosos; genera
el listado primero»"]:::no
G["Una orden de trabajo de
CORTE por cada contrato
pendiente del listado"]:::ok
H["«Cerrar»"]:::caj
I["«Cancelar»"]:::caj
J["BLOQUEO: «Hay órdenes de corte
ya emitidas; cancélalas en
Órdenes de trabajo primero»"]:::no
A -->|sí| B --> C
C --> D --> C
C --> E
E -->|sin líneas| F
E -->|con líneas| G --> H
C --> I
I -->|ya hay órdenes| J
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
El documento con el que la cuadrilla sale a la calle, y el único sitio donde el sistema se entera de que un trabajo se hizo de verdad. Enlaza con sección 9, con sección 11 y con sección 13.
La planta de TV por cable es coaxial: nadie corta ni reconecta desde una pantalla, alguien tiene que ir al poste. Por eso el sistema tiene dos verbos separados y no hay que confundirlos: ordenar y ejecutar. Todo lo que ves en las secciones anteriores —confirmar una corrida, cobrar una reconexión, pulsar «Ordenar corte» en un contrato— ordena: crea una orden de trabajo con estado «Emitida» y ahí se detiene. El estado del contrato —Cortado, Activo— no cambia todavía. Cambia cuando el técnico cierra su orden con «Marcar ejecutada», y solo entonces.
| Origen | Operación | Cuándo |
|---|---|---|
| Corrida de corte confirmada | Corte | Una por cada contrato pendiente del listado |
| Se cobra la planilla de un contrato cortado | Reconexión | Ver sección 13 |
| Botones «Ordenar corte» / «Ordenar reconexión» del contrato | Corte / Reconexión | A mano, solo manager — para el caso puntual: el gerente da una reconexión por cortesía, o hay que cortar a alguien fuera del ciclo semanal |
| El catálogo de trabajos de la cuadrilla | Revisión técnica, Instalación, Retiro de equipos | Visitas que no son corte ni reconexión: mala señal, cambio de domicilio, cambio de ONU |
Las que nace el sistema (corrida, reconexión al pagar) salen ya Emitidas, sin que nadie tenga que acordarse de emitirlas. Una orden creada a mano nace en Borrador y hay que emitirla con «Emitir a cuadrilla».
flowchart TD
A["Nace la orden
(sistema o a mano)"]:::sis
B["Borrador"]:::neu
C["«Emitir a cuadrilla»"]:::caj
D["Emitida"]:::neu
E["«En campo»
(el técnico llegó)"]:::caj
F["En campo"]:::neu
G["«Marcar ejecutada»"]:::caj
H["¿Es una instalación?"]:::sis
I["Exige caja NAP, dB en casa,
poste y —si entrega equipo—
producto y serie"]:::avi
J["BLOQUEO: «No se puede cerrar
la instalación: falta …»
(Anexo A de ARCOTEL)"]:::no
K["Ejecutada:
estado del CONTRATO cambia,
material sale de bodega,
equipo entregado queda registrado"]:::ok
A -->|nace en borrador| B --> C --> D
A -->|nace emitida| D
D --> E --> F --> G
B --> G
G --> H
H -->|sí| I --> J
I -->|todo completo| K
H -->|no| K
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
El botón lleva su propia confirmación: «Al marcar la orden como ejecutada se actualiza el estado del servicio del contrato. ¿Confirmas que el trabajo ya se hizo?». No es un simple cambio de estado de la orden — dispara, en el mismo paso:
Qué pasa cuando la cuadrilla llega a cortar y el abonado dice que paga ahí mismo. Enlaza con sección 10 y con el caso 25, que lo recorre de punta a punta.
Es un trato habitual del sector: al abonado le sale más barato pagar en el momento que perder el servicio y encima pagar la reconexión, y a la empresa le conviene cobrar sin mandar a nadie dos veces. Pero tiene una regla que no se negocia: el técnico PIDE la promesa, no la concede. Quien decide si se le da el plazo es un supervisor, desde su propia pantalla — nunca quien está parado en la puerta.
Con la orden en Emitida o En campo, el técnico pulsa «Solicitar aplazar el corte» («Se pedirá al supervisor aplazar el corte. Hasta que lo apruebe, el corte SIGUE EN PIE. ¿Confirmas?»). La orden pasa a «Promesa por aprobar» y queda anotada la deuda del contrato en ese momento. El corte sigue en pie mientras se espera: nada en este paso saca al contrato de la corrida ni detiene a la cuadrilla, justamente para que pedir la promesa no sea, en la práctica, obtenerla.
Desde ahí, solo un supervisor CATV resuelve, con dos botones que solo él ve:
Un proceso automático revisa cada hora todas las promesas vivas —no espera a que venza el plazo, para no dejar colgada hasta la medianoche a quien ya pagó a media tarde— y compara la deuda actual contra la que tenía el contrato al momento de aprobarse la promesa:
El supervisor también puede resolverlo a mano, sin esperar al proceso automático: «Comprobar si pagó» (mismo criterio de arriba) o «No pagó: devolver a la cuadrilla», que regresa la orden a Emitida de inmediato.
flowchart TD
A["Técnico en la puerta:
el abonado promete pagar"]:::caj
B["«Solicitar aplazar el corte»"]:::caj
C["Promesa por aprobar
(el corte SIGUE EN PIE)"]:::avi
D{"Supervisor decide"}:::sis
E["«Negar la promesa»"]:::caj
F["Vuelve a Emitida:
el corte sigue su curso"]:::no
G["«Aprobar la promesa»"]:::caj
H["Prometió pagar,
plazo hasta las 23:59"]:::avi
I{"¿Bajó la deuda a cero
antes del plazo?"}:::sis
J["Ejecutada sola:
no se corta"]:::ok
K["Venció sin pagar"]:::no
L["Vuelve a Emitida:
corte ese mismo día"]:::no
A --> B --> C --> D
D --> E --> F
D --> G --> H --> I
I -->|sí| J
I -->|no| K --> L
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
La otra forma de sacar a un contrato de la corrida de corte: sin que la cuadrilla haya llegado a ningún lado. Enlaza con sección 9 y con sección 11, que es la misma protección pero pedida en la puerta.
Botón «Posponer corte», en la ficha del contrato. Solo lo ve y lo puede usar el manager CATV: sacar a alguien de la corrida es dejar de cobrarle, y esa decisión no la toma quien atiende en ventanilla. Lleva su propia confirmación: «Se excluirá el contrato de las corridas de corte durante 7 días (promesa de pago). ¿Continuar?».
Al pulsarlo, el contrato queda protegido hasta una fecha —7 días desde hoy por defecto—. Mientras esa fecha no pase, la corrida de corte lo deja fuera: aparece en el listado como «Excluido», con el motivo escrito («Corte pospuesto hasta …») y la fecha, así que nadie tiene que ir a buscar por qué ese contrato no salió cortado.
flowchart TD
A["Manager abre el contrato"]:::caj
B["«Posponer corte»"]:::caj
C["Contrato protegido
7 días"]:::ok
D["La corrida de esa semana
lo marca «Excluido»"]:::sis
E{"¿Pasó la fecha
de protección?"}:::sis
F["Vuelve a entrar
en la corrida normal"]:::no
A --> B --> C --> D
D --> E
E -->|sí| F
E -->|no, sigue protegido| D
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Qué pasa en el asistente de cobro cuando el abonado que llega a pagar tiene el servicio cortado. Enlaza con sección «Cobrar en caja» ↗ Manual General, con sección 10 y con el caso 26.
El asistente de cobro en caja reconoce solo si el abonado tiene algún contrato cortado y avisa antes de que la cajera confirme nada, con un aviso distinto según cómo se está cobrando: «Contrato(s) CORTADO(S): [números]. Cobra la reconexión; la orden de trabajo a la cuadrilla sale sola cuando la factura quede PAGADA» al contado, o «…; como el cobro es A CRÉDITO, la orden de trabajo a la cuadrilla sale en cuanto se emita la factura, sin esperar al pago» cuando el cliente tiene plazo. La cajera es quien le contesta al abonado «¿y cuándo me reconectan?», y este es el aviso que le da la respuesta correcta según el caso.
Por cada contrato cortado del abonado, el asistente precarga una línea con el producto de reconexión configurado en Ajustes CATV, apartado «Producto de reconexión» (catv_reconnection_product_id): a su precio de lista y con sus impuestos, sin que la cajera tenga que acordarse de añadirlo a mano. Si el abonado tiene dos casas cortadas, son dos reconexiones — una por contrato, porque son dos cuadrillas distintas las que tienen que salir.
| Cobro | La orden de reconexión se emite… |
|---|---|
| Al contado | cuando la factura queda pagada. Es el trato normal de ventanilla: el abonado paga y se va reconectado. |
| A crédito | al emitir la factura, sin esperar el pago. Una empresa que factura a 15 días no va a pagar hoy, y dejarla dos semanas sin servicio con el cargo de reconexión ya cobrado sería cobrar por algo que no se le está prestando. |
flowchart TD
A["Cajera abre el asistente
de cobro"]:::caj
B{"¿Algún contrato del
abonado está Cortado?"}:::sis
C["Aviso + cargo de
reconexión precargado"]:::avi
D{"¿Cómo se cobra?"}:::sis
E["Confirma el cobro
al contado"]:::caj
F["Factura queda pagada"]:::sis
G["Nace la orden de
RECONEXIÓN, ya Emitida"]:::ok
H["Confirma la venta
a crédito"]:::caj
I["Factura se emite"]:::sis
A --> B
B -->|no| E2["Cobro normal, sin aviso"]:::neu
B -->|sí| C --> D
D -->|contado| E --> F --> G
D -->|crédito| H --> I --> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
La orden de reconexión nace ya Emitida, igual que la de corte de la corrida. El paso que de verdad reconecta al abonado sigue siendo el mismo de siempre: el técnico va a la casa y cierra la orden con «Marcar ejecutada» (sección 10). Cobrar no reconecta por sí solo — abre la orden, no cierra el trabajo.
Qué aparato tiene cada abonado, con qué régimen legal y desde cuándo. Es un registro administrativo del módulo de TV Cable, y hay algo importante que decir sobre lo que no hace: no mueve inventario.
Hay dos sitios, y no son intercambiables porque el dato no se conoce en el mismo momento:
Al cerrar la orden, el aparato que dejó el técnico pasa a ser el equipo del contrato. El retiro se procesa antes que la entrega: en un recambio se recoge el aparato viejo y se deja el nuevo en la misma visita, y si se hiciera al revés el contrato tendría dos aparatos vivos a la vez. Si el técnico no dijo por qué salió el aparato retirado, el sistema lo deduce solo: si en esa misma orden entra otro aparato es un recambio; si no, se da como devuelto. No se deja nunca en blanco, porque «no sé por qué salió» es lo que después impide reclamar lo que corresponda.
flowchart TD
A["Técnico cierra la
orden de trabajo"]:::caj
B{"¿Marcó un equipo
para retirar?"}:::sis
C["Ese equipo se desactiva:
motivo, fecha y nota de la orden"]:::sis
D{"¿Marcó «Entrega
un equipo»?"}:::sis
E["Nace el equipo del contrato:
tipo, marca, serie, régimen"]:::ok
F["El contrato se queda
con lo que ya tenía"]:::neu
G["Anotación administrativa
NO mueve stock"]:::avi
A --> B
B -->|sí| C --> D
B -->|no| D
D -->|sí| E
D -->|no| F
C -.-> G
E -.-> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
El anexo distingue tres situaciones que no son lo mismo jurídicamente, y el sistema las lleva como campo, no como nota: de ahí depende quién responde por el equipo y qué pasa cuando el contrato termina.
| Régimen | Qué implica |
|---|---|
| Prestado | Es de la empresa y se devuelve al terminar el servicio. Es lo normal: el aparato necesario para dar el servicio. |
| Arrendado | Paga una cuota mensual aparte del servicio, mientras lo tenga. |
| Vendido | Pasa a ser del abonado, al contado o a plazos. A plazos lleva cuota, meses pactados y cuotas pagadas, y de ahí sale lo pendiente si el contrato termina antes de completar el pago. |
El acta de entrega también pide el color del equipo y el color del cargador: sirven para identificar el aparato cuando la etiqueta de la serie ya no se lee, y para que el abonado no devuelva un cargador que no es el suyo.
Eso quiere decir, en concreto, qué SÍ queda registrado y qué NO cuando un aparato deja la casa del abonado:
| SÍ queda registrado | NO queda registrado |
|---|---|
| El equipo se desactiva en el contrato (deja de estar «vivo»). | Ningún movimiento de inventario. |
| El motivo de salida: devuelto en buen estado, retirado dañado, no lo devolvió, cambiado por otro. | Ningún cambio en el disponible del producto correspondiente. |
| La fecha de salida y una nota con la orden de trabajo que lo retiró. | Ningún registro de a qué ubicación «volvió» el aparato. |
«Vuelve a bodega» es una anotación, no un movimiento de stock. El sistema deja escrito que el aparato salió de casa del abonado y por qué, pero no sabe —porque no se le pidió que supiera— si ese aparato de verdad está hoy en un estante, en reparación, o roto en una caja. Ese es justo el caso que desarrolla el caso 24: quién tiene que asumir, a mano, lo que el sistema no cuadra solo.
Cerrar la orden con el botón «Marcar ejecutada» es el evento que marca que el trabajo se hizo de verdad. En una instalación, el sistema no deja pasar ese cierre sin los datos que ARCOTEL exige levantar en el sitio.
El control se aplica solo en instalaciones. Un retiro de equipos, un corte o una reconexión no tienen caja NAP que medir, y exigirlo en toda visita obligaría al técnico a inventar valores solo para poder cerrar, lo que documenta peor que no pedir nada.
Con el campo «Trabajo concluido» marcado, hacen falta:
Si falta algo de eso, el sistema no deja cerrar:
No siempre se puede instalar: no estaba el abonado, no llega la señal, faltó material. Para eso está la otra puerta: desmarcar «Trabajo concluido» y escribir el motivo en «Motivo por el que no se concluyó». Sin ese motivo, tampoco cierra:
Sin esta puerta, la orden se quedaría abierta para siempre o el técnico terminaría inventando datos con tal de cerrarla. Marcarla «no concluida» con su motivo cierra la visita igual —se hizo, aunque no terminara en servicio— y deja escrito por qué el abonado sigue esperando.
flowchart TD
A["Técnico pulsa cerrar
la orden de instalación"]:::caj
B{"¿Es una orden
de Instalación?"}:::sis
Z["Cierra sin exigir
datos del Anexo A"]:::ok
C{"¿«Trabajo concluido»
marcado?"}:::sis
D{"¿Falta caja NAP, dB,
poste, o —si entregó
equipo— producto/serie?"}:::sis
E["BLOQUEO: se dice
qué falta, tal cual"]:::no
F["¿Escribió el motivo
de por qué no concluyó?"]:::sis
G["BLOQUEO: pide
el motivo"]:::no
H["Orden cerrada:
datos del Anexo A completos"]:::ok
I["Orden cerrada:
no concluida, con motivo"]:::avi
A --> B
B -->|no| Z
B -->|sí| C
C -->|sí| D
D -->|falta algo| E
D -->|completo| H
C -->|no| F
F -->|no| G
F -->|sí| I
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
Superado el control, cerrar la orden dispara en cadena lo que corresponde: descuenta de la bodega de la cuadrilla el material que de verdad se usó, sube la planta (caja NAP, dB, poste) al contrato, registra el equipo entregado o retirado (sección 14), y si la orden era de corte, marca esas líneas como cortadas. Todo eso ocurre al cerrar, no antes: hasta que el técnico no cierra no se sabe qué usó de verdad, y lo que se llevó en la camioneta sin usar sigue siendo de la empresa.
Quién sale a la calle, con qué material, y en qué lenguaje se anota lo que hace. Dos catálogos de configuración, en TV Cable › Configuración, y los dos son del administrador.
TV Cable › Configuración › Cuadrillas. Crear, editar o archivar una cuadrilla es del grupo administrador de CATV; el técnico solo tiene lectura sobre este catálogo —ve qué cuadrillas hay, no las puede tocar—.
Una cuadrilla es la gente que sale junta y la furgoneta con su material: un responsable (el técnico que responde por ella y por lo que lleva), sus integrantes, y una bodega propia. Esa bodega es una ubicación bajo el almacén principal —no un almacén aparte—, y se crea sola la primera vez que hace falta si se deja vacía: la primera visita no se cae porque nadie entró a Ajustes a prepararla.
El stock es de la cuadrilla, no del técnico: dos técnicos de la misma cuadrilla gastan del mismo montón. Al cerrar una orden de trabajo, el material que de verdad se usó se descuenta de la bodega de esa cuadrilla, no de una bodega personal.
El acceso a las órdenes de trabajo sigue el mismo criterio de «lo mío»: un técnico solo lee y actualiza las órdenes que tiene asignadas o las que están sin asignar; las de otro técnico no las ve. El administrador ve y edita todas.
TV Cable › Operación › Trabajos de la cuadrilla, también del administrador. Es el lenguaje real con el que la cuadrilla nombra lo que hace: «mala señal», «cambio de domicilio», «cambio de ONU», «cable arrancado» — decenas de conceptos, y crece cuando la empresa incorpora trabajo nuevo (de coaxial a fibra, por ejemplo).
Cada trabajo del catálogo define tres cosas que la orden hereda al elegirlo:
| Campo del catálogo | Qué decide |
|---|---|
| «Qué le hace al servicio» | La operación que la orden va a ejecutar al cerrarse: corte, reconexión, instalación o retiro de equipos. La mayoría de los trabajos la dejan vacía, y eso está bien: una inspección, una avería de mala señal o programar el televisor no cambian el estado del abonado, son «solo visita». |
| «Se le cobra la visita» | Si la mano de obra genera costo por omisión. La misma clase de trabajo se cobra o no según de quién sea la culpa de la avería, y el técnico puede corregirlo en el sitio. |
| «Se le cobra el material» | El material que se gasta —cable, conectores, divisores— se cobra aunque la visita en sí no se cobre. Va aparte. |
Esa distinción entre «cambia el estado del servicio» y «solo visita» es lo importante de este catálogo. Un trabajo con operación vacía nunca dispara un corte, una reconexión, una instalación ni un retiro por sí solo, por mucho que suene parecido en el papel de la cuadrilla; y un trabajo con operación sí lo hace en cuanto la orden se cierra (sección 15 es el caso más exigente, el de instalación).
flowchart TD
A["En la orden se elige
el «Trabajo» del catálogo"]:::caj
B{"¿El trabajo trae
«Qué le hace al servicio»?"}:::sis
C["La orden nace como
«Revisión técnica»
(solo visita)"]:::neu
D["La orden toma esa
operación (corte, reconexión,
instalación, retiro)"]:::sis
E["El técnico puede corregir
la operación en el sitio"]:::caj
F["Al cerrar: NO cambia
el estado del contrato"]:::ok
G["Al cerrar: SÍ dispara
la transición del contrato"]:::ok
A --> B
B -->|no| C --> E
B -->|sí| D --> E
E -->|se deja como está| F
E -->|se deja como está| G
C -.-> F
D -.-> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
Esto es el matiz de TV cable sobre la cartera del cliente ↗ Manual General: la deuda por facturas ya está explicada allá. Aquí solo lo que cambia cuando el cliente además es abonado.
Un abonado debe sobre todo planillas, no facturas — la razón está en sección 1. La cartera común solo sabe de facturas, así que sin este matiz un abonado con seis meses de planillas sin pagar aparecería en la cartera como alguien que no debe nada.
flowchart LR
A["Deuda por FACTURAS
(cartera común)"]:::caj
B["Deuda por PLANILLAS
(columnas propias de TV cable)"]:::sis
C["Se muestran una junto a otra.
NUNCA se suman"]:::avi
A --> C
B --> C
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
En la pestaña «Cartera EC» y en el listado «Cartera de Clientes», junto a las columnas de facturas, aparecen estas — solo cuando el contacto tiene contratos de TV cable:
| Columna / campo | Qué cuenta |
|---|---|
| «Deuda planillas» | El total en planillas abiertas de todos sus contratos. |
| «Mes en curso» / «Mes anterior» / «Anteriores» | La misma deuda, repartida en los tres cubos que también usa la corrida de corte — no en 30/60/90. Con dos criterios de antigüedad distintos, la cartera y el listado de corte dirían cosas diferentes del mismo abonado. |
| «Meses debidos» / «Debe desde» | Cuántos períodos y desde cuándo. |
| «Prioridad TV cable» | La misma prioridad con la que ese abonado entra —o no— a la corrida de corte. |
| «Cortados» | Si alguno de sus contratos ya está con el servicio cortado. |
Además, la ficha del contacto suma una pestaña «Planillas TV Cable» con el detalle por contrato, y el botón «Ver el detalle mes a mes» para abrirlo.
El menú TV Cable → Abonados → Cartera abre la acción «Cartera de planillas» (grupo «Usuario de TV Cable»). Es la misma pantalla de la cartera común, con las mismas columnas: solo entra ya filtrada a quienes tienen contratos y con «Con deuda de TV cable» marcado, porque desde TV Cable a nadie le interesa el cliente que solo debe material.
El informe «Estado de Cuenta» genérico de la cartera común solo mira facturas, así que para un abonado sale siempre en cero aunque deba planillas. Con contratos de TV cable, el botón «Imprimir» de la ficha y el envío automático de recordatorios usan en su lugar el estado de cuenta propio de CATV, que sí trae la deuda en planillas — sin que tengas que elegir cuál usar: el sistema decide solo, según si el contacto tiene contratos.
Lo que el abonado ve cuando entra a su propia cuenta: sus contratos y sus planillas — nunca sus facturas.
El motivo está en sección 1: la deuda del abonado no vive en facturas, vive en planillas. Si el portal mostrara facturas, un abonado con seis meses sin pagar vería su cuenta en cero, porque todavía no se le ha emitido ninguna. Por eso el portal tiene sus propias pantallas, separadas de «Mis facturas».
Dos tarjetas nuevas en «Mi cuenta», cada una con su contador:
| Tarjeta | A dónde lleva | Qué cuenta el número |
|---|---|---|
| «Mis contratos» | /my/catv/contracts |
Todos los contratos del abonado, incluidos los dados de baja: si le queda deuda de uno que ya cerró, tiene que poder verla. |
| «Mis planillas» | /my/catv/planillas |
Solo las planillas pendientes, para que de un vistazo sepa cuánto debe. |
Desde el listado de contratos se entra al detalle de uno (/my/catv/contracts/<id>),
y ahí están sus servicios contratados y sus planillas, una a una. Desde el detalle de una
planilla (/my/catv/planillas/<id>) se ve el desglose de sus líneas y sus
totales — base, impuestos y total.
flowchart TD
A["Abonado entra a«Mi cuenta»"]:::caj
B["«Mis contratos» /
«Mis planillas»"]:::caj
C{"¿Contrato o planilla
es del abonado?"}:::sis
D["Ve el detalle"]:::ok
E["No aparece en el listado:
el dominio de la consulta
lo excluye"]:::no
F["Enlace compartido con token
(sin sesión)"]:::caj
G{"¿El token es el
de ESE contrato?"}:::sis
H["Ve SOLO ese contrato
y sus planillas"]:::ok
I["No entra"]:::no
A --> B --> C
C -->|sí| D
C -->|no| E
F --> G
G -->|sí| H
G -->|no| I
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Hay dos formas de llegar al detalle de un contrato, y solo dos:
| Puerta | Cómo entra | Qué ve |
|---|---|---|
| La sesión | El abonado logueado, en «Mi cuenta». | Todos sus contratos y todas sus planillas. El listado nunca se arma «leyendo todo y filtrando después»: la consulta ya sale atada al abonado, así que el contrato del vecino ni siquiera se intenta traer. |
| El enlace compartido | Un enlace con un código propio de ese contrato, que se puede reenviar por WhatsApp o correo, y se abre sin necesidad de sesión. | Únicamente ese contrato y sus planillas — nada de «Mi cuenta», nada de migas de pan hacia el resto de su cartera. Un código inventado, vacío, o el de otro contrato, no abre nada: manda de vuelta al inicio. |
Desde la ficha del contrato, el botón «Vista previa del abonado» abre la página tal como la ve él, ya con su código en la URL — igual que la vista previa de una cotización de venta. Para mandarle ese enlace por correo está la acción «Compartir» del engranaje, que es el flujo nativo de Odoo (el mismo wizard que comparte una orden de venta): no hace falta explicarlo aparte, se usa igual.
Matiz sobre WhatsApp (opcional) ↗ Manual General: cómo se llegan a mandar por WhatsApp los avisos propios de TV cable. Lo de mandar, recibir y vincular el número ya está explicado allá y no se repite aquí.
Había dos sistemas de avisos funcionando en paralelo, y cada uno con su propio freno. El problema no era que cada uno estuviera mal hecho: era que fueran dos. Los dos le hablaban al mismo número de teléfono de la empresa, y cada uno creía que el ritmo lo marcaba él.
Si uno permite seis mensajes por minuto y el otro también, por ese teléfono salen doce. El freno deja de frenar justo cuando más falta hace, que es durante un envío masivo. Por eso ahora hay un solo sistema, un solo freno y una sola cola.
| Qué quieres | Dónde |
|---|---|
| Que un aviso salga o no, y a quién le llega | Ajustes → Notificaciones → Quién recibe qué |
| Por qué canal sale (correo, WhatsApp, bandeja de Odoo…) | La misma pantalla: cada aviso lleva sus canales marcados |
| El ritmo de envío y el horario de no molestar | Ajustes → Notificaciones → Canales → WhatsApp |
| El contacto de prueba | También en el canal de WhatsApp |
Son cinco, no cuatro: se sumó el del saldo de la instalación, que antes solo salía por correo. Cada uno aparece por su nombre en la lista de avisos y se configura por separado.
| Aviso | Quién lo recibe | Qué dice |
|---|---|---|
| Recordatorio de pago | El abonado | Que su planilla está por vencer, antes de que deba nada. |
| Aviso previo de corte | El abonado | Que tiene planillas pendientes y en qué fecha se suspende el servicio. |
| Saldo del alta | El abonado | Lo que falta por pagar de su instalación. |
| Orden emitida al técnico | El técnico asignado | Dirección, teléfono y materiales de la visita. |
| Trabajo hecho | El abonado | Que su visita técnica quedó atendida. |
Un mismo aviso puede ir por los dos canales a la vez, y en el caso del recordatorio de pago es a propósito: quien tenga celular y correo recibe los dos. Se prefiere insistir a que el aviso se pierda. El correo lleva la carta completa; el WhatsApp, tres datos que caben en un teléfono — cuánto debe, hasta cuándo tiene y con quién hablar.
flowchart TD
A["Pasa algo:
vence una planilla,
se emite una orden…"]:::sis
B["El sistema busca
cómo avisar de ESO"]:::sis
C{"¿Está configurado
el canal WhatsApp?"}:::sis
D["Solo sale el correo"]:::no
E["Entra en LA COLA
(una sola, para todo el sistema)"]:::sis
F["Sale de a pocos:
tope por minuto, tope por día,
y nada en horario de no molestar"]:::caj
G["Llega al abonado
o al técnico"]:::ok
A --> B --> C
C -->|no| D
C -->|sí| E --> F --> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Detrás de estos avisos no está la API de negocios de Meta, sino WhatsApp Web: no hay quien apruebe plantillas ni ponga cupos. Nadie frena un envío masivo hasta que el número de la empresa queda baneado. Una sola corrida de aviso de corte alcanza a miles de contratos, y sin un tope el primer envío masivo sería también el último.
Por eso los avisos no salen en el momento: entran en una cola y el sistema los va soltando de a pocos, respetando el tope por minuto, el tope diario y el horario de no molestar. Con poco volumen nadie lo nota — salen enseguida. Con mucho, se reparten solos.
Mientras «Contacto de prueba» tenga a alguien puesto, todos los mensajes de WhatsApp van a esa persona, con el destinatario real escrito dentro del mensaje. Es la única forma de probar sin escribirle a un abonado de verdad.
Y es también la trampa más común: si lo dejas puesto después de probar, nadie más recibe nada, y no hay ningún error que lo avise. Antes de dar por buena una configuración, revisa que ese campo esté vacío.
No a todo abonado se le puede mandar un WhatsApp, y el sistema lo sabe de antemano. En la ficha del contacto, junto al teléfono, aparece si se le puede escribir y, si no, por cuál de estas dos razones:
| Lo que dice | Qué hay que hacer |
|---|---|
| «Sin teléfono» | Conseguirle un número. No hay ninguno cargado. |
| «El teléfono no es un celular» | Pedirle el celular. Tiene un fijo cargado, y a un fijo no llega WhatsApp. |
Todos salen del menú «Imprimir» del formulario donde corresponden — no hay un menú aparte de reportes. Aquí, cuál es cada uno y para qué sirve.
flowchart LR
A["Abonado / contrato /
corrida de corte / solicitud /
orden de trabajo"]:::caj
B["Menú «Imprimir»
del formulario"]:::caj
C["El informe propio
de ese documento"]:::ok
A --> B --> C
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
| Informe | Desde dónde se saca | Para qué sirve |
|---|---|---|
| Estado de cuenta | «Imprimir» en la ficha del abonado (todos sus contratos), o en el propio contrato (solo ese). | Lo que pide cualquiera en ventanilla: cuánto debe. Junta en un solo documento las facturas pendientes y las planillas abiertas, con un total único — nunca dice «no tiene facturas pendientes» si de verdad debe planillas. |
| Anexo B — Equipos y permanencia | «Imprimir» en el contrato. | El anexo de ARCOTEL que se firma junto con el contrato: qué equipo es prestado, cuál arrendado y cuál vendido, y la permanencia mínima que exonera la instalación. |
| Aviso de corte | «Imprimir» en el contrato. | El papel que se entrega o se deja en la puerta cuando el correo no llega — porque el abonado no tiene correo cargado, o simplemente no lo revisa. Dice lo mismo que el correo de aviso, con los mismos datos. |
| Listado de corte | «Imprimir» en la corrida de corte. | La hoja de ruta para la cuadrilla, en A4 horizontal y ordenada por dirección —no por deuda—, con el número de orden de trabajo y el técnico asignado. |
| Solicitud de suscripción | «Imprimir» en la solicitud de suscripción. | El formulario que firma quien pide el servicio nuevo. |
| Anexo A de la orden de trabajo | «Imprimir» en la orden de trabajo. | El formulario que ARCOTEL exige por cada visita técnica, con el trabajo hecho, la caja NAP, los niveles de señal y el material gastado. Se imprime para firmar: lo que ya se sabe sale rellenado, lo que se mide en el sitio queda en blanco para completarlo con el abonado. |
El abonado quiere terminar el contrato y en la pantalla de planillas figuran una o varias impagas. Es el caso más común de los que llegan a este botón, y no tiene atajo: hay que resolver la deuda antes.
Un responsable CATV abre el contrato y pulsa «Terminar contrato» (sección 7). El sistema revisa las planillas del contrato que están abiertas y con saldo mayor a cero, y si encuentra alguna, corta ahí mismo:
flowchart TD
A["El abonado pide
la baja y debe"]:::caj
B["«Terminar contrato»"]:::caj
C{"¿Tiene planillas
abiertas con saldo?"}:::sis
D["BLOQUEO: cóbralas
o cancélalas primero"]:::no
E["Se cobran en caja, o se
cancelan si corresponde"]:::caj
F["Se reintenta
«Terminar contrato»"]:::caj
G["Contrato TERMINADO"]:::ok
H["Orden de retiro de
equipos, si hace falta"]:::sis
A --> B --> C
C -->|sí| D --> E --> F --> C
C -->|no| G --> H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
Con la deuda en cero, «Terminar contrato» funciona igual que en cualquier otro caso: pide fecha de baja y motivo, y si quedan equipos en casa del abonado o el servicio no estaba ya cortado, se emite sola la orden de retiro de equipos.
Debe ocho planillas y solo trae para pagar tres. La cajera no puede cobrarle «lo que se pueda» a ciegas: hay que decidir cuáles tres, y dejar las otras cinco intactas para el próximo pago.
Es la situación más común detrás del abonado que «siempre debe algo»: no dejó de pagar de golpe, se fue atrasando y va cerrando la brecha de a poco. El sistema no cobra por cuenta propia las planillas más viejas ni reparte el pago entre todas: quien cobra elige, planilla por planilla.
flowchart LR
ABO(["Abonado"]):::act
CAJ(["Quien cobra en caja"]):::act
UC["Cobrar solo algunas
de las planillas debidas"]:::uc
ABO --> UC
CAJ --> UC
UC -.->|se apoya en| S1["El panel de cobros"]:::ref
UC -.->|se apoya en| S2["La cartera del abonado"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
Esto se resuelve desde el Panel de Cobros, con el botón «Elegir planillas»: abre un diálogo con el listado de lo que debe el abonado, para marcar exactamente cuáles de esas ocho se van a cobrar hoy. Ese diálogo y sus reglas —qué se puede marcar, qué pasa si ya hay una orden a medio armar— los documenta la sección propia del panel; aquí solo el caso.
flowchart TD
A["El abonado debe VARIAS
planillas y trae para pagar
solo ALGUNAS"]:::caj
B["Botón «Elegir planillas»
en el Panel de Cobros"]:::caj
C["Se abre el listado de lo
que debe, planilla por planilla"]:::sis
D["Se marcan las que SÍ
se van a cobrar hoy"]:::caj
E["Se agregan a la orden
de venta en curso"]:::sis
F["Se cobra y se factura
esa orden, como cualquier venta"]:::ok
G["Esas planillas quedan
CERRADAS"]:::ok
H["Las que no se marcaron
siguen ABIERTAS, intactas,
a la espera del próximo pago"]:::avi
A --> B --> C --> D --> E --> F
F --> G
D -.-> H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
El resto de la cuenta no desaparece ni se olvida: sigue viéndose en sección 17, en la columna de deuda por planillas, con sus mismos meses debidos y su misma prioridad para la corrida de corte. Pagar tres de ocho no saca al abonado de una corrida de corte si las que quedan pendientes ya entran en ella — sección 9 decide eso por sus propios criterios, no por cuántas planillas se acaban de cobrar.
No hay un botón «Trasladar domicilio» en el contrato — buscarlo es perder el tiempo. Hoy una mudanza se resuelve con una orden de trabajo suelta, del tipo que corresponda del catálogo de la cuadrilla.
Las cinco operaciones que sí tienen botón propio en el contrato son suspender, reactivar, cortar, reconectar y terminar (sección 3). Cambiar de domicilio no es ninguna de las cinco: el servicio sigue activo, no se corta ni se termina, solo cambia dónde está instalado. El camino que existe es abrir una orden de trabajo directamente, con el concepto «Cambio de domicilio» del catálogo de trabajos de la cuadrilla — el mismo catálogo donde están «mala señal», «cambio de ONU» o «ubicación de cable», y que se administra en TV Cable › Operación › Trabajos de la cuadrilla.
flowchart TD
A["El abonado avisa
que se muda"]:::caj
B["El administrador crea una
orden de trabajo suelta,
concepto «Cambio de domicilio»"]:::caj
C["El técnico va a la
dirección nueva"]:::sis
D["Anota el NAP y el
poste nuevos en SU orden"]:::caj
E["Marca la orden
«Ejecutada»"]:::caj
F["El NAP y el poste
suben solos al contrato"]:::ok
G["La dirección del contrato
NO se actualiza sola"]:::avi
H["El administrador corrige
a mano la dirección
y el teléfono del contrato"]:::caj
A --> B --> C --> D --> E
E --> F
E --> G --> H
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
Cuando el técnico cierra la orden en el sitio, el NAP y el número de poste que anotó en su orden reemplazan a los que tenía el contrato — es el mismo mecanismo que llena esos dos campos en una instalación nueva, y por eso en el contrato aparecen como «lo anota el técnico al instalar» (sección 3).
La dirección y el teléfono del servicio son distintos: al crear la orden se copian del contrato tal como estaban ese día, pero al cerrarla no se copian de vuelta. Si el técnico corrige la dirección en su orden porque la casa nueva queda en otra calle, esa corrección se queda en la orden — el contrato sigue mostrando la dirección vieja hasta que alguien la cambie a mano. Por eso, después de cerrada la orden, el administrador tiene que entrar al contrato y actualizar «Dirección del servicio» y el teléfono del punto, si cambiaron.
Un técnico retira un decodificador o una ONU de casa de un abonado —se dio de baja, se dañó, se le cambió por otro— y en el sistema queda escrito que ese aparato ya no está ahí. Lo que hay que tener clarísimo es qué de todo eso es real y qué es solo la anotación.
Es el punto donde más fácil se da algo por hecho que no es cierto: alguien mira que el equipo quedó «retirado» y asume que en algún reporte de inventario va a aparecer de vuelta como disponible. No aparece. El puente entre el registro del equipo del abonado y el inventario real está apagado (sección 14), y ese hueco hay que cubrirlo a mano mientras siga así.
flowchart LR
TEC(["Técnico"]):::act
BOD(["Quien recibe
en bodega"]):::act
UC["Retirar un equipo y
dejarlo disponible de verdad"]:::uc
TEC --> UC
BOD --> UC
UC -.->|se apoya en| S1["Equipos del abonado"]:::ref
UC -.->|se apoya en| S2["El inventario"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
flowchart TD
A["Orden de trabajo con
equipo a retirar"]:::caj
B["Técnico cierra la orden
(«Marcar ejecutada»)"]:::caj
C["El equipo se desactiva
en el contrato"]:::sis
D["Queda anotado: motivo,
fecha, orden de trabajo"]:::sis
E{"¿Alguien mueve el
aparato físico a bodega?"}:::sis
F["El aparato llega
a bodega de verdad"]:::caj
G["El aparato NO llega
—queda en la camioneta,
en el taller, olvidado—"]:::no
H["El sistema no lo sabe
de ninguna forma:
no hay stock que consultar"]:::avi
I["Bodega lo cuenta a mano
o lo apunta fuera del
sistema hasta que se encienda
el inventario de equipos"]:::neu
A --> B --> C --> D --> E
E -->|sí| F
E -->|no o no se sabe| G
F --> H
G --> H
H --> I
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
| Pregunta | Respuesta |
|---|---|
| ¿El equipo deja de figurar como del contrato? | Sí, se desactiva. |
| ¿Queda dicho por qué salió? | Sí: devuelto en buen estado, retirado dañado, no lo devolvió, o cambiado por otro. |
| ¿Queda dicho cuándo y en qué orden se retiró? | Sí, con fecha y una nota que cita la orden de trabajo. |
| ¿El disponible del producto de inventario sube? | No. No hay movimiento de stock detrás de este retiro. |
| ¿Se puede volver a «entregar» ese mismo aparato desde el sistema y que descuente de bodega? | No. El campo «Producto de inventario» del equipo es solo referencia; entregarlo de nuevo se anota en la próxima orden de trabajo igual que la primera vez, sin que el sistema sepa que es un reuso. |
Esto no es una carencia oculta: está documentado en el propio registro del equipo (sección 14) precisamente para que, el día que se decida encender el flujo de inventario para equipos, ya esté resuelto qué es cada aparato — falta únicamente activar el movimiento que hoy no corre.
De punta a punta, uniendo sección 10 y sección 11.
La corrida de corte de la semana ya emitió la orden de este contrato y la cuadrilla llega al domicilio con la orden en Emitida. El técnico toca la puerta, y el abonado dice que hoy mismo deposita o paga por transferencia — pide que no le corten.
Supongamos que el supervisor aprueba. A partir de aquí hay dos finales posibles, y el sistema los resuelve solo, cada hora, comparando la deuda de hoy contra la que había al aprobar la promesa:
| Qué pasó con el pago | Qué hace el sistema |
|---|---|
| Pagó todo antes de las 23:59 | La orden se cierra sola como Ejecutada. El contrato nunca llega a Cortado — la promesa cumplió su función. |
| Pagó una parte | No cuenta: mientras quede algo de lo que estaba venciendo al momento de la promesa, sigue sin cumplir. La orden queda esperando el resto del plazo. |
| No pagó nada, o llegó la hora tope sin completar | La orden vuelve a Emitida y regresa a la cuadrilla: se corta ese mismo día o el siguiente. |
flowchart TD
A["Cuadrilla en la puerta,
orden en Emitida"]:::caj
B["Abonado promete pagar"]:::caj
C["Técnico: «Solicitar
aplazar el corte»"]:::caj
D["Promesa por aprobar
(el corte sigue en pie)"]:::avi
E{"Supervisor, desde
su pantalla"}:::sis
F["«Negar la promesa»"]:::caj
G["Vuelve a Emitida:
se corta hoy"]:::no
H["«Aprobar la promesa»"]:::caj
I["Prometió pagar,
plazo 23:59"]:::avi
J{"Cada hora: ¿bajó
la deuda a cero?"}:::sis
K["Ejecutada sola:
no se corta"]:::ok
L["Vence sin pagar"]:::no
A --> B --> C --> D --> E
E --> F --> G
E --> H --> I --> J
J -->|sí, pagó todo| K
J -->|no o parcial| L --> G
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
classDef no fill:#DC2626,stroke:#991B1B,color:#fff
De punta a punta, uniendo sección 13 y sección 10. Enlaza también con sección «Cobrar en caja» ↗ Manual General para el resto del asistente de cobro.
El abonado tiene el servicio Cortado por deuda y se presenta en ventanilla con lo que debe. Quiere pagar y que le devuelvan la señal lo antes posible.
flowchart TD
A["Abonado cortado llega
a pagar en ventanilla"]:::caj
B["Cajera abre el
asistente de cobro"]:::caj
C["Aviso + cargo de
reconexión ya precargado"]:::avi
D["Abonado paga al contado"]:::caj
E["Factura queda pagada"]:::sis
F["Nace la orden de
RECONEXIÓN, Emitida"]:::ok
G["Abonado se va: pagado,
pero TODAVÍA CORTADO"]:::avi
H["Cuadrilla llega a la casa"]:::caj
I["«Marcar ejecutada»"]:::caj
J["Contrato pasa a Activo"]:::ok
A --> B --> C --> D --> E --> F --> G --> H --> I --> J
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef avi fill:#B45309,stroke:#7C3D06,color:#fff
El cron que genera las planillas corre a diario, pero eso no significa que la del período corriente ya exista en el momento en que el abonado se presenta en ventanilla a pagar. Sin nada que cobrarle, el dinero acabaría entrando como anticipo — justo lo que nadie quiere llevar a mano.
Pasa con frecuencia: un abonado que paga siempre a inicios de mes, o uno que quiere dejar todo al día antes de un viaje. La solución no es esperar al cron ni crear nada por fuera del sistema: es un botón, dentro del propio cobro en caja.
flowchart LR
CAJ(["Ventanilla"]):::act
ABO(["Abonado"]):::act
UC["Cobrar la planilla del período
antes de que exista"]:::uc
CAJ --> UC
ABO --> UC
UC -.->|se apoya en| S1["La planilla:
cómo nace y qué estados pasa"]:::ref
UC -.->|se apoya en| S2["Cobrar en caja"]:::ref
classDef act fill:#2098AF,stroke:#186B7A,color:#fff
classDef uc fill:#E6F4F7,stroke:#2098AF,color:#111
classDef ref fill:#fff,stroke:#9CA3AF,color:#374151
flowchart TD
A["El abonado llega a pagar"]:::caj
B["La cajera lo busca en el
asistente de cobro por
contrato, cédula o nombre"]:::caj
C{"¿Hay planilla ABIERTA
del período corriente?"}:::sis
D["La marca y sigue
el cobro normal"]:::neu
E["Botón «Generar la
planilla del mes»"]:::caj
F{"¿Ya existía?"}:::sis
G["Se genera:
«Generada la planilla del
período… Ya está marcada
para cobrar»"]:::ok
H["No se duplica:
«…no se creó otra,
se marcó la que había»"]:::ok
I["Queda marcada
para el cobro"]:::ok
J["Botón «Generar
orden de cobro»"]:::caj
K["Sigue el cobro en caja:
factura siempre incluida"]:::ok
A --> B --> C
C -->|sí| D --> J
C -->|no| E --> F
F -->|no existía| G --> I
F -->|ya existía| H --> I
I --> J --> K
classDef caj fill:#2098AF,stroke:#186B7A,color:#fff
classDef sis fill:#7C3AED,stroke:#5B21B6,color:#fff
classDef ok fill:#037F58,stroke:#026345,color:#fff
classDef neu fill:#E6F4F7,stroke:#2098AF,color:#111
El botón funciona sobre todos los contratos activos del abonado, no solo el que abrió el cobro: si tiene más de un contrato, genera la planilla del período de cada uno que la necesite. Y pasa por el mismo motor que el cron (sección 4): mismo cálculo del período, mismos impuestos congelados, mismo control de duplicados.
Si se vuelve a pulsar el botón sin que haya nada nuevo que hacer, el aviso lo dice igual de claro: «La planilla del período ya existe y ya está marcada para cobrar: no hay nada más que generar.»