Vai al contenuto

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 a k-max-ele-w-tab2 = 6000 righe.
  • Griglia 4 (servizi programmati): w-tab4-dati, fino a k-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).

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-asncnmtv e 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.