Vai al contenuto

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: dettaglioClickUp 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-prog si usa ora il progressivo salvato: move tm-g1-acnr-prog (w-i) to acnr-prog, cosi' la rd-asncntar/rwr-asncntar agisce 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.