ASN051 — Rinnovo contratti¶
Sorgente: cbl/asn051.cbl | Tipo: Programma interattivo a griglia | Program-ID: ASN051
Menu: Assist 2.0 > Archivi > Contratti > Rinnovo contratti
Scopo¶
Propone in griglia i contratti di assistenza in scadenza in un periodo e, per quelli selezionati, esegue il rinnovo creando un nuovo contratto con le caratteristiche del precedente. In fase di rinnovo puo' applicare un aumento ISTAT alle righe tariffa del contratto (ASNCNTAR) e gestisce la modalita' "contratto annuale" (allungamento data fine + creazione rate, senza chiudere il vecchio contratto).
Per i dettagli operativi lato utente vedere docs/user — ASN051.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| ASNCNTES | asncntes |
Testata contratti |
| ASNCNTAR | asncntar |
Righe tariffa contratto/modello (prezzi prestazioni) |
| ASNCNADB | asncnadb |
Addebiti/condizioni aggiuntive contratto |
Tabella di lavoro tm-tm-tab1-dati |
(interna) | Righe tariffa in memoria per il calcolo aumento ISTAT |
La chiave primaria di ASNCNTAR (acnr-chia1) e' composta da acnr-pertinenza + acnr-tip + acnr-cod + acnr-id-contratto + acnr-prog (progressivo di tariffa). Per i contratti di pertinenza "C" (contratto specifico) il progressivo acnr-prog non e' necessariamente sequenziale.
Logica di calcolo aumento ISTAT¶
Le righe tariffa del contratto vengono caricate nella tabella di lavoro tm-tm-tab1-dati; per le righe "Servizio"/"Dettaglio"/"Dettaglio fattura" (acnr-fl-servizio = S/D/F) viene calcolato l'aumento in base alla percentuale ISTAT impostata (tm-perc-istat). La differenza generata dall'aumento (w-acnd-importo-diff) viene sommata alla prima riga significativa.
Dopo il calcolo, le righe ricalcolate vengono riscritte su ASNCNTAR (rwr-asncntar).
Casistica problemi noti¶
Rinnovo contratti OSK: tariffe riscritte su righe errate¶
- Sintomo: Dopo il rinnovo di contratti OSK, le righe tariffa (
ASNCNTAR) non risultavano piu' allineate con gli importi originali. - Causa: La rilettura della riga tariffa da aggiornare usava il contatore sequenziale di ciclo come
acnr-prog; sui contratti OSK i progressivi non sono sequenziali, quindi la riscrittura sovrascriveva gli importi su righe errate. La riscrittura avveniva inoltre anche senza aumento ISTAT richiesto. - Correzione: Salvato il progressivo originale della riga tariffa per pilotare rilettura e riscrittura su
ASNCNTAR; riscrittura condizionata a indice ISTAT diverso da zero. Bonifica dei contratti gia' corrotti con il tool OSK004. - Riferimento: dettaglio — ClickUp 869dn6b7j
Storico modifiche¶
2026 — TASK-5330: rewrite tariffe su progressivo originale e solo con ISTAT¶
Correzione di un aggiornamento errato delle righe tariffa in fase di rinnovo, che si manifestava sui contratti OSK (progressivi acnr-prog non sequenziali).
Problema. Il loop di riscrittura delle tariffe ricalcolate usava il contatore sequenziale di ciclo w-i come acnr-prog per rileggere la riga da aggiornare (move w-i to acnr-prog prima della rd-asncntar + rwr-asncntar). Quando i progressivi reali non coincidevano con la sequenza 1..N, la lettura recuperava una riga diversa da quella prevista e la successiva riscrittura sovrascriveva l'importo su righe errate.
Correzione.
- Aggiunto il campo
tm-g1-acnr-prog pic 9(04)nella riga della tabella di lavoro; nei due punti di caricamento delle righe tariffa viene salvato il progressivo originale (move acnr-prog to tm-g1-acnr-prog (i1)). - Nel loop di riscrittura, al posto di
move w-i to acnr-progsi usa ora il progressivo salvato:move tm-g1-acnr-prog (w-i) to acnr-prog, cosi' lard-asncntar/rwr-asncntaragisce sulla riga corretta. - L'intero blocco di riscrittura e' stato condizionato a
tm-perc-istat not = zero: la riscrittura delle tariffe avviene solo se gli importi sono stati effettivamente ricalcolati per l'indice ISTAT, evitando aggiornamenti inutili o errati quando non e' richiesto alcun aumento.
I contratti gia' corrotti da rinnovi errati precedenti possono essere verificati/riallineati con il tool OSK004.