Vai al contenuto

ASN530 - Stima prestazioni previste (riparazioni in laboratorio)

Sorgente: cbl/asn530.cbl (2.470 righe) | Tipo: Programma interattivo a griglia editabile (tabella prestazioni previste di una chiamata di laboratorio), invocabile anche in modalita' automatica "PREPARA-DEFAULT"

Menu: Assist 2.0 > Operativo > Riparazioni > Stima: prestazioni previste


Scopo

Gestisce la tabella delle prestazioni/materiali previsti (stima) di una chiamata di laboratorio (classe L), memorizzata in ASNCHPRP. Per una data chiamata (tm-cht-id) mostra in griglia le righe di stima (merce, quantita', importanza, flag validazione/contenitore/visibilita') e ne consente inserimento, modifica e cancellazione.

Al primo caricamento, se lo step "stima prestazioni" del workflow chiamata non e' ancora completato (o in modalita' PREPARA-DEFAULT), precarica automaticamente le prestazioni di default a partire dal tipo matricola e dal tipo attivita' della chiamata (ASNMTRPD).

Al salvataggio aggiorna lo stato dello step nel workflow (ASNCHWKF) e, opzionalmente, notifica all'amministrazione una richiesta di preventivo (CRMS08) e archivia/stampa il documento di stima (ASN599). Con la configurazione "modo-chiusura = E" (PCASE-3817) crea e gestisce automaticamente un intervento di stima collegato.


Interfaccia chiamato (linkage)

util-asn530 (utilasn530.cpy):

Campo Tipo Uso
asn530-caller x(08) Programma chiamante
asn530-called x(08) Nome chiamato
asn530-in-id 9(13) Id chiamata di ingresso
asn530-ope x(20) Operazione: PREPARA-DEFAULT per elaborazione automatica (senza interfaccia grafica)

Modalita' operative:

  • Interattiva standalone: a-modalita = "A" (aggiornamento). L'utente digita/ricerca la chiamata, la griglia e' editabile, F3 aggiorna
  • Called in selezione: w-dc-called = "S"a-modalita = "S", la griglia e' di sola consultazione con F3 che alterna Selezione/Aggiornamento
  • PREPARA-DEFAULT: nessuna interfaccia; precarica le prestazioni di default e le scrive direttamente in ASNCHPRP, poi ritorna. Invocata tipicamente da ASN510 alla creazione della chiamata di laboratorio

File acceduti

Input/lettura

File Copybook Uso
ASNCHTES acht-rec Testata chiamata: deve essere classe L; cliente assistito, tipo attivita', dossier
ASNCHDET achd-rec Dettaglio chiamata (prog 1): matricola collegata
ASNMATRI amtr-rec Matricola: tipo, serial number, marca, modello
ASNMODEL amod-rec Modello matricola (nome, scheda)
ASNMTRTP amtp-rec Tipo matricola: flag validazione/esposizione default (PBUG-652)
ASNMTRPD ampd-rec Prestazioni di default per tipo matricola (M) e tipo attivita' (A)
ASNPRPIM aprm-rec Importanza prestazione: descrizione
ASNFASIC acif-rec Fasi ciclo: descrizione e programma associato allo step
COGMERCI mer-rec Merci: classe S (prestazione) / M (materiale), unita' di misura
COGGEANA ana-rec Anagrafica cliente assistito
COGANATN atn-rec Raccordo operatore-tecnico (chiave k03 atn-ope-cod)
PRNTOPER ptop-rec Profilo operatore destinatario notifica preventivo
ASNINDET acid-rec Righe intervento eseguite (per verifica prestazione gia' eseguita)

Output/scrittura

File Copybook Scrittura
ASNCHPRP achp-rec Righe di stima: insert/update/delete secondo confronto tm-prog / tm-prog-prec
ASNCHWKF achw-rec Aggiornamento stato step "stima prestazioni" a C (completato), date/ore/operatore prima/ultima (chiave k02)
ASNINTES acit-rec (modo-chiusura E) creazione intervento di stima; chiave k02
ASNINTE2 acit2-rec Estensione intervento di stima
ASNINDET acid-rec (modo E) cancellazione righe intervento a parita' merce

Chiavi secondarie

  • asnchwkf.k02 (id chiamata + step)
  • asnintes.k02 (id chiamata)
  • coganatn.k03 (operatore)

Programmi chiamati

Programma Operazione Scopo
ASN210 ASN210-CALLED F9: ricerca avanzata chiamata
ASN510 (called, I) F7 (nuovo): inserimento chiamata di laboratorio
ASN520 ASN520-CALLED F7 dalla griglia: gestione/simulazione preventivo (classe AC)
ASN046 (lookup) F8 sulla colonna importanza: lookup importanza prestazione
ASN140 ASN140-CALLED (modo-chiusura E) gestione/chiusura intervento di stima (PCASE-3817/3950)
ASN599 (stampa/archiviazione) Stampa o archiviazione dossier documento di stima (modulo lavorazione)
CRMS08 SCRIVI Notifica attivita' "Richiesta preventivo" all'operatore configurato (CASE 3904)
COPIAF delete Archiviazione file di stampa lato client nel dossier
DIALOGS Dialoghi (stampa/esci, intervento stima non chiuso)
GRIDADMN Prepara / S-F4 Personalizzazione griglia
RNEWCONF Lettura/modifica configurazioni

Configurazioni RNEWCONF (x99-load-config)

Idx Gruppo Chiave Variabile Effetto
01 ass-strum generazione-dossier tm-cfg-genera-dossier S = archivia+stampa nel dossier
02 ass-strum importanza-default tm-cfg-importanza Importanza proposta di default
03 ass-strum importanza-obbligatoria tm-cfg-importanza-obb Importanza obbligatoria
04 ass-strum operatore-notifica-preventivo tm-cfg-operatore-notifica-pr Operatore destinatario notifica
05 ass-strum stima-prestazioni-notifica-preventivo tm-cfg-stima-prestazioni-notifica-pr F/S = attiva notifica (S = chiede conferma)
06 stampe path-stampa-file tm-cfg-file-stampa Path file di stampa
07 ass-strum tipo-att-notifica-preventivo tm-cfg-tipo-att-notifica Tipo attivita' CRM per notifica
08 ass-strum esec-prest-aggiorna-previste tm-cfg-esec-prest-aggiorna-previste N = niente blocco modifica quantita' (pcase-1200)
09 ass-strum esec-prest-dettaglio tm-cfg-esec-prest-dettaglio Gestione dettaglio prestazioni
10 ass-strum prestazione-stima-generica tm-cfg-prestaz-stima-generica Merce prestazione di stima generica
11 ass-strum prestazione-stima-approfondita tm-cfg-prestaz-stima-approfondita Merce prestazione di stima approfondita
12 ass-strum modo-chiusura tm-cfg-modo-chiusura E = chiusura "esterna" con intervento di stima automatico (PCASE-3817)
13 assist tipo-numerazione-interventi tm-cfg-tipo-numerazione C = numerazione interventi legata alla chiamata
14 ass-strum mag-intervento tm-cfg-mag-intervento Magazzino intervento di stima

Link di riferimento: gruppi ass-strum, stampe, assist.

Nota: se esec-prest-dettaglio = S e esec-prest-aggiorna-previste = S il programma emette errore e si chiude (configurazioni incompatibili).

Logica di elaborazione

Caricamento (a-avanti / a10-loop)

Scorre ASNCHPRP per achp-id-chiamata = tm-cht-id e carica ogni riga nella tabella di griglia tm-grid-dati-ele: merce, classe (da COGMERCI), quantita', importanza (+ descrizione da ASNPRPIM), flag validazione/contenitore/visibilita', unita' di misura, id intervento collegato (achp-id-inter). Salva il progressivo precedente (tm-prog-prec) per il diff in aggiornamento.

Precaricamento default (carica-default / prestazioni-default)

Eseguito se PREPARA-DEFAULT oppure se lo step non e' ancora completato (ASNCHWKF con achw-stato ≠ 'C'). Scorre ASNMTRPD due volte: per tipo matricola (ampd-tipo = "M", codice = amtr-tip) e per tipo attivita' (ampd-tipo = "A", codice = acht-tip-att), inserendo le righe di default con quantita', importanza e flag preconfigurati.

Aggiornamento (a1-aggiorna / b-aggiorna)

Valida tutta la tabella (x-controlla-tm-tab-tutto), poi per ogni riga decide l'operazione confrontando tm-prog e tm-prog-prec:

  • merce vuota + prog-prec ≠ 0 → cancella (b3-cancella)
  • prog-prec ≠ 0 → modifica (b2-modifica)
  • prog-prec = 0 → inserisce (b1-inserisci)

In inserimento/modifica scrive achp-tipo (P/M) in base alla classe merce (270723). Aggiorna quindi lo stato dello step su ASNCHWKF a C.

Gestione intervento di stima (modo-chiusura = E, PCASE-3817/3950)

Se modo-chiusura = "E" e la merce inserita e' una prestazione di stima (generica/approfondita configurata):

  • crea un intervento di stima dedicato (intervento-stima / cerca-numerazione-bis), racchiudendo tutte le prestazioni di stima nell'intervento #49 della chiamata (id-chiamata * 100 + 49)
  • collega il tecnico dell'operatore (da COGANATN)
  • al termine innesca ASN140-CALLED per gestire/chiudere l'intervento; se non chiuso propone via DIALOGS di ritentare la chiusura (verif-inter-stima)
  • le righe con intervento collegato sono protette da modifica/cancellazione

Notifica preventivo (chiama-crms08)

Se generazione-dossier = S e stima-prestazioni-notifica-preventivo = F/S, archivia il documento (COPIAF + ASN599 A) e invia un'attivita' CRM "Richiesta preventivo" (CRMS08) all'operatore configurato, con allegato il file di stampa e allarme.

Stampa (a-dialogo / x-stampa / x-archivia-e-stampa)

A fine aggiornamento (uso standalone) propone via DIALOGS di stampare (F9): se genera-dossier = S archivia+stampa (ASN599 con elaborazione A e riuso progressivo), altrimenti stampa diretta (ASN599 modulo lavorazione).

Messaggi principali

ID Contesto
m-asn530-2-1 Titolo maschera
m-asn530-3-1/4-1/5-1/6-1 Abilitazioni inserimento/aggiornamento
m-asn530-7-1 Conferma salvataggio prima di uscire
m-asn530-8-1 Nessuna riga da cancellare
m-asn530-9-1/9-2 Prog non trovato in modifica
m-asn530-10-1/10-2 Dettaglio chiamata mancante
m-asn530-11-1 ... 18-2 Notifica preventivo / operatore / archiviazione
m-asn530-19-1/20-1 Chiamata inesistente / non di classe L
m-asn530-21-1 ... 25-1 Validazioni riga (merce/qta/importanza)
m-asn530-26-1 Etichetta pulsante F7
m-asn530-30 Riga con intervento collegato non cancellabile

Storico modifiche significative (dal sorgente)

  • 271114: importanza obbligatoria
  • 220115: operatore/tipo attivita' notifica preventivo
  • 210120: pcase-1200 flag esec-prest-aggiorna-previste (blocco modifica quantita')
  • 070322: gestione esec-prest-dettaglio
  • 270723: achp-tipo (P/M) valorizzato in base alla classe merce
  • 080524: PCASE-3817 modo-chiusura E: intervento di stima automatico + ASN140
  • 110624: PCASE-3950 prestazioni di stima racchiuse nell'intervento #49; tecnico da operatore in achp-ese-tecnico
  • PBUG-652: precaricamento flag validazione/visibilita' da tipo matricola

Note implementative

  • La griglia editabile e' costruita da Screens; i tf per cella e i vincoli di editabilita' sono gestiti negli entry-point z-tm-tab-*-be-ep
  • In PREPARA-DEFAULT la maggior parte delle operazioni grafiche e' saltata (nessun load-bitmap, nessun display maschera)
  • Il completamento step "stima prestazioni" e' individuato da k-step-c-stima-prest (costanti-assist.cpy)