ASN050 - Gestione contratti¶
Sorgente: cbl/asn050.cbl | Program-ID: ASN050 | Tipo: Programma interattivo (maschera multi-pagina con 6 griglie) - modulo centrale gestione contratti di assistenza
Menu: Assist 2.0 > Archivi > Contratti > Gestione contratti
Scopo¶
Programma centrale del sotto-modulo Contratti di Assistenza. Gestisce l'intero ciclo di vita del contratto: testata (cliente assistito/fatturazione, date validita', tipo/modello, stato), condizioni economiche (importo, cadenza rate, pagamento, priorita', iva agevolata, ISTAT, gettone, assicurazione), matricole coperte, servizi/prestazioni programmate, DDT e documenti collegati, chiamate/interventi generati, dossier commerciale. E' richiamabile anche da altri programmi (ASN220, creazione contratto da matricola/chiamata) in modalita' visualizzazione/inserimento.
Sorgente di grandi dimensioni (~23.650 righe); la maschera e' organizzata a tab control con 6 pagine e altrettante griglie.
File e tabelle principali¶
Tabelle del contratto (famiglia ASNCN*)¶
| Tabella | Ruolo | Record / campi chiave |
|---|---|---|
| ASNCNTES | Testata contratto | acnt-rec; chiave acnt-id-contratto; acnt-rif-contratto, acnt-data/acnt-data-da/acnt-data-a, acnt-tip, acnt-modello, acnt-cli-fat, acnt-cli-ass, acnt-fl-chiuso (A/C/D), acnt-tipologia, acnt-fl-proposta, acnt-rinnovato, acnt-fl-assicurazione, acnt-gettone, acnt-tipo-fat, acnt-id-origine (rinnovo) |
| ASNCNCND | Condizioni economiche | acnd-rec; acnd-pertinenza (M=modello / C=contratto), acnd-importo, acnd-durata-mesi, acnd-cnt-pag-*, acnd-pag-*, acnd-priorita, acnd-crea-chiamate, acnd-avvisa-cliente, acnd-tip-fatt (" "=standard / "M"=a matricola), acnd-mesi-fatturaz |
| ASNCNMTR | Matricole su contratto (griglia 2) | acnc-rec; chiave acnc-id-contratto+acnc-tip+acnc-prog; acnc-id-matricola, acnc-raggr, acnc-canone, acnc-data-da/-a, acnc-cadenza-fatt, acnc-provenienza, acnc-da-confermare, acnc-gettone, acnc-seq, acnc-fl-nascondi (usa asncnmtr.k02) |
| ASNCNITG | Servizi/prestazioni programmate (griglia 4) | prestazioni con cadenza, raggruppamento, numero interventi, aggio, area/responsabile |
| ASNCNMTV | Variazioni quantita' matricole | movimenti di incremento/decremento canone a matricola; gestite tramite una tabella di transito t-asncnmtv (vedi sotto) |
| ASNCNFAT | Righe di fatturazione contratto | acnf-rec; acnf-pertinenza, acnf-id-contratto, acnf-stato ("E"=eseguito, collegato a documento magazzino) |
| ASNCNMTF | Fatturazione a matricola (movimenti) | amtf-rec; amtf-id-contratto, amtf-mag-bol (blocca cancellazione se bollato) |
| ASNCNMTB | DDT a matricola | amtb-rec; chiave 3 amtb-id-contratto+amtb-id-matricola (usa asncnmtb.k03) |
| ASNCNDDT / ASNCNINT / ASNCNTAR / ASNCNMOD | DDT, interventi, tariffe, modelli contratto collegati | consultate/aggiornate nelle rispettive funzioni |
Tabelle anagrafiche e di supporto (lettura/validazione)¶
COGGEANA (clienti, con coggeana.k04), ASNMATRI/ASNMODEL/ASNMARCH (matricole, modelli, marche; chiavi secondarie asnmatri.k02/.k04, asnmodel.k02), ASNMTRTP (tipi matricola), ASNMTRLK (legami matricola padre/figlia), ASNPRIOR (priorita'), ASNCNTIP/ASNCNMOD (tipi e modelli contratto), COGTABEL (iva agevolata, tipi fatturazione, ecc.), COGDESTI (destinazioni diverse), CRMDOSSR/CRMANAGR (dossier e nominativi CRM; crmdossr.k02, crmanagr.k03), ASNCHTES/ASNCHDET/ASNINTES (chiamate e interventi; asnchtes.k02, asnchdet.k02, asnintes.k02), COGTESCM/COGRIFER/COGRACCO (commesse laboratorio).
File temporanei / di transito¶
| File | Tipo | Ruolo |
|---|---|---|
| FILSEQ | line sequential | Import/export dati (es. matricole da file) |
| T-ASNCNMTV | ISAM (temp) | Transito delle variazioni quantita' matricole; nome #$t-asncnmtv_<time>.<oper>, layout t-amtv-* |
| COGTRANS (via replacing) | ISAM (temp) | I verbi su T-ASNCNMTV sono generati da cogtrans.k01/.k02 con replacing leading 'cogtrans' by 't-asncnmtv' |
Transito griglia 2 (z-tm-tab2-*) |
ISAM (temp) | Griglia matricole gestita con file di transito, ordinamento e filtro (pattern GRIDADMN) |
Copybook utilizzate¶
| Gruppo | Copybook |
|---|---|
| Screen Designer | asn050.select, asn050.fd, asn050.wrk, asn050-01.scr, asn050.prc, asn050.decla |
| Costanti | k-u10, k-personal, k-tipi-cogtabel, costanti-tipi-documento, l-copiaf / u-copiaf (copia file remoto) |
| Working standard | wgrave, wnscr, wopenf, wstato, cogazien, utilncnf |
| Griglia | wgrid.cpy, utilgdad.cpy, utily67.cpy, utily68.cpy |
| Utility | utilw02, utildlg (DIALOGS), utils52/utils65/utils68, utilu10/utilu20/utilu22/utilu35w, utilestrxls, opensave.def, utilgesdate, utilagprg |
| Linkage moduli Assist | utilasns02, utilasns03, utilasns06, utilasns17, utilasns58, utilasn016, utilasn029, utilasn030, utilasn035, utilasn036, utilasn041, utilasn043, utilasn044, utilasn052, utilasn053, utilasn055, utilasn069, utilasn05b, utilasn05d, utilasn03b, utilasn110, utilasn200, utilasn220, utilasn070w |
| Linkage CRM / magazzino | utilcrms06, utilcrms07, utilcrms08, utilcrms10, utilcrm031, utilcrmk10, utilcrmk11, utilcrmk24, utilcogma3, utilcogmal, utilcogmak |
| Chiusura | grave, mmmask, opengen, stato, stato1, winmsg, sendw02, sendu22, call-u35, getdcont |
| Chiavi secondarie | coggeana.k04, asncnmtr.k02, asnchdet.k02, asnmatri.k02/.k04, asnmodel.k02, cogtescm.k03, cogrifer.k02, cogracco.k02, asnchtes.k02, asnintes.k02, crmdossr.k02, crmanagr.k03, asncnmtb.k03 |
Linkage esterno: utilasn050.cpy (parametri di chiamata asn050-called/asn050-caller/asn050-in-contratto/asn050-id-matricola/asn050-operazione/asn050-cli-fat).
Struttura maschera (tab control e griglie)¶
Il tab control gestisce fino a 6 pagine (tab-pag con codici TS1, TS2, RIG, RI2, RI3, RI4). I dati modificabili sono nel gruppo tab-maschera suddiviso per pagina:
- TS1 (Testata / pagina 1): id contratto, tipo/modello (
tm-acnp-*,tm-acnm-*), date (tm-acnt-data,tm-acnt-data-da/-a), riferimento, tipo fatturazione (tm-tip-fatt: standard / a matricola), cliente fatturazione e cliente assistito, stato (tm-acnt-fl-chiuso), tipologia, rinnovo/stagionale, commessa collegata, note, dossier. - TS2 (Condizioni / pagina 2): importo, servizi, pagamento (
tm-tipopag/tm-codpag,tm-acnd-cnt-pag-*,tm-acnd-pag-*), priorita', crea-chiamate, iva agevolata, cadenza rate (tm-cadenza-rate,tm-mesi-fatturaz), incremento ISTAT, assicurazione. - Pagina 3 (gettone / scalare): gettone, tipo scalare, monte ore/valore.
- Pagina 4 (totali matricole):
tm-nr-tot-matr,tm-valore-tot-matr. - Griglia 2 (matricole):
w-tab2-dati/ transito, fino ak-max-ele-w-tab2= 6000 righe. - Griglia 4 (servizi programmati):
w-tab4-dati, fino ak-max-ele-w-tab4= 900 righe. - Griglia interventi / documenti: pagine RIG-RI4 con la griglia documenti (
tm-file*,tm-tab-ordini) e le note/oggetto chiamata.
Le 6 griglie (e-tm-tab1 ... e-tm-tab6) sono preparate in apri (z-prepara-tm-grid1..5, z-prepara-grid-interventi) e svuotate all'inizio di a4.
Logica¶
Apertura e abilitazioni (apri)¶
Sei chiamate a CTRABIL (livelli ASN050-1..ASN050-6) determinano i flag di abilitazione w-abi-abi-asn050-a..f. Se tutti a "N" il programma esce con messaggio. Segue ctr-abil, rd-azi, apertura file, x99-load-config, lettura divisa (U10), caricamento bitmap e creazione dei numerosi pulsanti custom (F7 documenti, F5 integrazioni/importa matricole, Shift+F2 filiera, Shift+F8 calcola, Shift+F6 valorizza/rateizza, F6 gestione, Shift+F7 dettaglio DDT matricola, F1 inserisci matricola, Shift+F9 licenze/dbase matricole), del menu a tendina principale (W$MENU) e del popup di griglia.
Il gruppo w-dati-called decodifica i parametri di chiamata:
- w-dc-called = "S": richiamato in consultazione su contratto passato;
- w-dc-called = "X": inserimento contratto da matricola (asn050-id-matricola);
- w-dc-called = "I" / asn050-operazione = "I": inserimento con cliente fatturazione pre-impostato.
Selezione chiave (a-tm-id-contratto -> a-fine-chiave)¶
Accept dell'id contratto (con help x-aiuto-tm-id-contratto; F9 apre ASN220 per la ricerca). a-fine-chiave legge ASNCNTES:
- non trovato -> fl-vario = "I" (inserimento);
- trovato -> fl-vario = "V" (variazione), quindi cerca-chiamata, eventuale creazione/aggancio dossier (creazione-dossier, config genera-dossier/dsr-tip), verifica stato.
Controlli bloccanti: contratto proposta (acnt-fl-proposta = "S") non gestibile; contratto rinnovato o chiuso/disdetto -> sola visualizzazione (flag-contratto-chiuso), con dialog (DIALOGS/TASK-5315) per eventuale passaggio ad "Attivo"->"Chiuso"; contratto con DDT/movimenti bollettati (ASNCNFAT stato "E", ASNCNMTF mag-bol, ASNCNMTB) -> cancellazione inibita (w-contratto-con-ddt).
Caricamento dati (a-fine-chiave-ins)¶
In variazione: proponi-dati e carica-griglia-1..6 popolano testata, condizioni e le sei griglie; carica-t-asncnmtv carica le variazioni quantita' nel transito. In inserimento: propone i default da ASNCNCND (condizioni del modello), imposta cliente da matricola (ramo "X") o da parametro (asn050-cli-fat) e prepara le griglie di inserimento (carica-griglia-*-ins).
Navigazione pagine e accept¶
a-pagina-ts1/ts2/rig/ri2/ri3/ri4 gestiscono l'attivazione della pagina corrente (modify e-tab-control), l'abilitazione/disabilitazione dei pulsanti e dei tasti funzione per pagina, e la catena di accept dei campi (a-tm-acnt-data, a-tm-acnd-durata-mesi, ...). Ogni campo ha un x-controlla-* con colorazione errore. Il tasto F3 su qualsiasi pagina porta a a-richiesta-conferma.
Conferma e salvataggio (a-richiesta-conferma)¶
x-controlla-dati esegue la validazione complessiva; in caso di errore torna al campo. Il salvataggio scrive/aggiorna ASNCNTES (testata), ASNCNCND (condizioni), ASNCNMTR (righe matricola dal transito griglia 2), ASNCNITG (servizi), ASNCNMTV (variazioni dal transito), oltre alla propagazione verso chiamate/interventi programmati e alla sincronizzazione KPN (AGPRG/SWN). Le date rate e il piano di fatturazione sono calcolati nella logica a5-* / b5-* (tabelle a5-tab5-dati, tab5f-dati) su cadenza mensile/trimestrale/semestrale/annuale con gestione fine-mese e incremento ISTAT.
Calcolo (Shift+F8) e valorizzazione (Shift+F6)¶
Il pulsante calcola totalizza il valore del contratto (w-tot-contr) e la durata; la valorizzazione/rateizzazione ricalcola il piano rate e l'importo per matricola.
Dossier commerciale (menu Operazioni)¶
x-aggancia-dossier / x-sgancia-dossier collegano/scollegano un dossier CRM al contratto via CRMK11 (ricerca/creazione dossier) e CRMS10 (LKG-COLLEGA-DOC / LKG-SCOLLEGA-DOC / LKG-RICERCA), con tipo documento k-doc-tip-contratto-ass.
Configurazioni (x99-load-config)¶
Legge (RNEWCONF) un ampio set di chiavi in tm-cfg, tra cui: genera-dossier/dsr-tip/dsr-prefisso-id, tipo-contratto, doc-per-causale, commessa-impianto, modo-programmazione, creazione-ddt-fatturazione, gestione-rif-contratto, iva-agev-standard, fatturazione-canone-matricole, raggr-matricole-su-chiamata, gest-certificazioni, tipo-att-collega-commessa, tipo-dossier-com, tipo-fat-contratti-std, tipo-mtr-licenze-sw, tipo-mtr-firewall, prestazioni-prog-proposte, oltre ai parametri di layout scheda CRM.
CALL a sottoprogrammi (principali)¶
| Programma | Contesto |
|---|---|
| CTRABIL | Controllo abilitazioni (6 livelli ASN050-1..6) |
| GRIDADMN | Amministrazione delle griglie |
| DIALOGS | Dialog a piu' opzioni (stampa, conferma stato) |
| ASN043 / ASN044 | Selezione tipo contratto / modello contratto (F8) |
| ASN220 | Ricerca contratti (F9 su chiave) |
| ASN070W | Stampa contratto (con opzioni matricole confermate / da confermare / tutte) |
| CRMK11 | Ricerca/creazione dossier commerciale |
| CRMS10 | Collega/scollega documento a dossier (LKG-*) |
| ASN030 / ASN200 | Matricole (gestione / visualizzazione) |
| ASN110 | Chiamate collegate |
| AGPRG / SWN* | Sincronizzazione contratto/matricole verso KPN |
| U10 / U20 / U22 / U35 | Utility divisa, numeratori, servizi comuni |
| RNEWCONF | Lettura configurazioni |
(Oltre a numerosi moduli ASNS/ASN05/CRMS/COGMA usati nelle sotto-funzioni: import matricole, valorizzazione, licenze, integrazioni.)
Note¶
- La griglia matricole (griglia 2) e' gestita con file di transito, ordinamento (
z-tm-tab2-componi-ord) e filtro; il transito e' obbligatorio per non perdere le modifiche quando si applica un filtro. - Le variazioni quantita' matricole (ASNCNMTV) non sono editate direttamente ma accumulate nel transito
t-asncnmtve riversate al salvataggio. - Stati contratto (
acnt-fl-chiuso): "A"/spazio = Attivo, "C" = Chiuso, "D" = Disdetto. I contratti chiusi/disdetti, rinnovati o allo stato di proposta sono in sola lettura. - Il tipo fatturazione (
acnd-tip-fatt) discrimina i contratti "a matricola" ("M"), che abilitano il canone per riga matricola (ASNCNMTR) e la stampa selettiva delle matricole confermate/da confermare (ASN070W). - Programma richiamabile: da ASN220 (elenco contratti), dalla creazione contratto da matricola (
w-dc-called = "X") e da chiamata/inserimento (operazione = "I"). k-max-ele-tab= 900, griglie matricole/servizi fino a 6000/900 righe.