ASN565 - Esecuzione prestazioni/attivita' previste su chiamata¶
Sorgente: cbl/asn565.cbl (2.925 righe) | Tipo: Programma interattivo con griglia editabile e movimentazione di magazzino via transito temporaneo
Menu: Assist 2.0 > Operativo > Riparazioni > Esecuzione attivita'
Nota etichetta/funzione: L'etichetta di menu "Esecuzione attivita'" corrisponde alla funzione reale. Nel commento di testa il sorgente la descrive come "Procedura strumenti x Endonova: Esecuzione prestazioni previste". Opera sulle prestazioni/materiali previsti di una chiamata di assistenza (classe
L= lavorazioni), consuntivando la loro esecuzione.
Scopo¶
Consente di consuntivare l'esecuzione delle prestazioni e dei materiali previsti su una chiamata di assistenza tipo "lavorazione" (acht-classe = 'L'). Data una chiamata (ASNCHTES), il programma carica in griglia le prestazioni/materiali previsti (da ASNCHPRP o, con la config "dettaglio", da ASNINDET/preventivo ASNCHPRV) e permette all'operatore di impostare per ciascuna riga: data di esecuzione, note, tecnico, quantita', importanza, flag (contenitore/valorizzare/visibile/fatturabile).
Al salvataggio (F3) il programma:
- Scrive il dettaglio eseguito su
ASNINDET(e, versione "originale", suASNCHPRP), calcolando prezzo/sconti/importo tramiteASNS03; - Movimenta il magazzino per i materiali usati (scarico/rientro sulla differenza qta prevista − eseguita) tramite la tabella temporanea
TRAN-S26eCOGS26, sia sul magazzino aziendale sia (se configurato) sul magazzino cliente; - Aggiorna lo stato dello step "Lavorazioni" nel workflow chiamata (
ASNCHWKF) portandolo aC(completato); - Opzionalmente stampa/archivia il rapporto (
ASN599).
Interfaccia chiamato (linkage util-asn565)¶
| Campo | Uso |
|---|---|
asn565-called / asn565-caller |
Identificativi. Se called != k-program-id e non spazi → azzera asn565-in-id (esecuzione standalone) |
asn565-in-id |
Id chiamata in ingresso (se != 0, entra diretto su quella chiamata) |
asn565-out-id |
Id chiamata in uscita |
La modalita' called (w-dc-called = 'S') abilita la selezione (F3 alterna Selezione/Aggiornamento e Invio seleziona); da menu il programma parte in modalita' Aggiornamento (a-modalita = "A").
File acceduti¶
Lettura¶
| File | Copybook | Uso |
|---|---|---|
| ASNCHTES | acht-rec |
Testata chiamata: acht-classe (deve essere L), data/ora/oggetto, cli-ass/cli-fat, acht-id-contratto |
| ASNCHDET | achd-rec |
Dettaglio chiamata (achd-id-matricola, prog 1) |
| ASNCHPRP | achp-rec |
Prestazioni/materiali previsti (merce, qta, importanza, flag, tecnico, data eseguita) |
| ASNCHPRV | achv-rec |
Preventivo collegato (achv-fl-sel, achv-tpr-ann/num) — solo config dettaglio |
| COGRIGPR | rpr-rec |
Righe preventivo (caricamento righe non ancora previste) |
| ASNINTES | acit-rec |
Testata intervento (acit-id-chiamata, acit-int-data). Chiave k02 |
| ASNINTE2 | acit2-rec |
Estensione intervento (inserita/aggiornata per ogni intervento) |
| ASNCHWKF | achw-rec |
Workflow chiamata (step k-step-c-lavorazioni): stato, date/ora/operatore prima/ultima. Chiave k02 |
| ASNFASIC | acif-rec |
Fasi chiamata (verifica programma associato allo step) |
| ASNPRPIM | aprm-rec |
Importanza prestazione (descrizione) |
| ASNMATRI/ASNMODEL/ASNMTRTP | amtr-rec/amod-rec/amtp-rec |
Dati matricola della chiamata; flag valorizzare/esposta per merce/prestazione |
| COGMERCI | mer-rec |
Merce: mer-classe (S = prestazione, altro = materiale), mer-um |
| COGRIFER | rif-rec |
Tecnico (nome) |
| COGANATN | atn-rec |
Anagrafica tecnici per operatore (proposta tecnico). Chiave k03 |
Scrittura¶
| File | Copybook | Scrittura |
|---|---|---|
| ASNINDET | acid-rec |
Dettaglio eseguito: tipo (P/M), merce, qta, data-int, prezzo/sconti/importo, note, tecnico, matricola, contratto, fl-fat |
| ASNCHPRP | achp-rec |
Aggiornamento previsti (versione "originale": inserimento/modifica/cancellazione) |
| ASNINTE2 | acit2-rec |
Estensione intervento |
| ASNINDMG | acim-rec |
Legame intervento↔documento magazzino (acim-tes-chia3 da COGS26) |
| ASNCHWKF | achw-rec |
Step "Lavorazioni" → stato C + date/operatore |
Transito¶
| File | Base | Nome fisico | Scopo |
|---|---|---|---|
| tran-s26 | tran-s26.cpy (external) |
#<program-id>_<oper> in ext-tmp-dir |
Buffer righe di movimento magazzino per COGS26 (segno U/E, merce, qta) |
Chiavi secondarie¶
asnchwkf.k02,coganatn.k03,asnintes.k02,tran-s26.k01
Programmi chiamati¶
| Programma | Contesto |
|---|---|
| ASN210 | F9 ricerca chiamata (ASN210-CALLED) |
| ASN046 | F8 lookup importanza prestazione (in griglia) |
| ASN599 | Stampa/archiviazione rapporto (k-c-modst-rapporto); A = archivia |
| ASNS03 | Calcolo prezzo netto/lordo/sconti per merce (listino/fascia cliente) |
| COGS26 | Inserimento: genera il documento di magazzino dal transito tran-s26 |
| COGU10/COGU10W | Arrotondamento/formattazione importo |
| COGG67 | F8 selezione tecnico (in cella ese-tecnico) |
| COGS52/COGS68/COGS93/COGS95 | Gestione controlli/celle (date, merce, radio, check) |
| GRIDADMN | Preparazione/personalizzazione griglia (S-F4) |
| DIALOGS | Dialogo finale "aggiornati" (ESC/F9 stampa) |
| RNEWCONF | Configurazioni (x99-confi) |
Configurazioni RNEWCONF (x99-confi)¶
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ass-strum |
esec-prest-modifica |
tm-cfg-esec-prest-modifica |
S = consente aggiungere/eliminare righe (Ctrl+A / Ctrl+E) e modificare merce/qta/importanza |
| 02 | ASS-STRUM |
GENERAZIONE-DOSSIER |
tm-cfg-genera-dossier |
S = alla stampa archivia nel dossier (ASN599 A) |
| 03 | ASS-STRUM |
IMPORTANZA-DEFAULT |
tm-cfg-importanza |
Importanza proposta di default |
| 04 | ASS-STRUM |
ESEC-PREST-PROPONI-TECNICO |
tm-cfg-esec-prest-proponi-tecnico |
S = propone il tecnico dell'operatore (COGANATN) all'impostazione data |
| 05 | ass-strum |
gestione-mag-cl |
tm-cfg-gestione-mag-cl |
S = movimenta anche il magazzino cliente |
| 06 | ass-strum |
mag-cl |
tm-cfg-mag-cl |
Magazzino cliente (obbligatorio se gestione-mag-cl = S) |
| 07 | ass-strum |
esec-prest-e-materiali |
tm-cfg-esec-prest-e-materiali |
Se N, tratta solo prestazioni. Forzato a N dal codice (gestione materiali non ancora attiva) |
| 08 | ass-strum |
esec-prest-aggiorna-previste |
tm-cfg-esec-prest-aggiorna-previste |
S = aggiorna la quantita' prevista (stima) sui previsti |
| 09 | ass-strum |
esec-prest-dettaglio |
tm-cfg-esec-prest-dettaglio |
(070322) S = modalita' "dettaglio prestazioni": carica da ASNINDET, permette ripetizione stessa prestazione. Incompatibile con idx 08 = S |
| 10 | ASS-STRUM |
TECNICO-DEFAULT |
tm-cfg-tecnico-def |
Tecnico forzato sulle righe da preventivo |
(link: ass-strum)
Logica di elaborazione¶
Caricamento griglia (a-avanti)¶
A seconda della configurazione esec-prest-dettaglio:
- Dettaglio (
S):a-carica-da-asnindet(righe gia' consuntivate) +a-carica-da-preventivo(righe preventivo selezionate non ancora presenti) + fallbacka-carica-da-asnchprp. - Standard:
a-carica-da-asnchprp— scorre i previsti e, per ognuno, cerca il dettaglio corrispondente inASNINDET(per merce, conacid-tipP/M) recuperando qta eseguita e fl-fat.
Se esec-prest-e-materiali = 'N' (caso corrente forzato), vengono caricate solo le prestazioni (mer-classe = 'S'). La griglia distingue per riga la classe (m-prestazione/m-materiale), la provenienza (S da previsti, P da preventivo), qta prevista/eseguita, importanza, data/note/tecnico e i flag.
Salvataggio (a1-aggiorna → b-aggiorna)¶
x-controlla-tm-tab-tuttovalida tutte le righe.b-aggiornaconfrontatm-prog(attuale) contm-prog-precper decidere per ogni riga: inserisci / modifica / cancella suASNINDET(e suASNCHPRPnella versione originale). Il calcolo prezzo passa daASNS03(listino/fascia cliente), importo arrotondato viaCOGU10.aggiorna(post): movimentazione magazzino viaaggiorna-mag(+aggiorna-mag-clse configurato). Per ogni materiale con data eseguita e differenza qta ≠ 0 scrive una riga intran-s26(segnoUscarico /Erientro sul magazzino aziendale, invertito sul magazzino cliente) e a fine ciclo chiamaCOGS26per generare il documento; il legame e' salvato inASNINDMG.- Aggiorna lo step
k-step-c-lavorazioniinASNCHWKFa statoCcon date/ora/operatore prima/ultima. - Aggiorna
ASNINTE2per ogni intervento della chiamata.
Modifica righe (config esec-prest-modifica = 'S')¶
- Ctrl+A: aggiunge una riga (merce editabile).
- Ctrl+E: elimina la riga (svuota mantenendo
tm-prog-precper la cancellazione a salvataggio; per i materiali → movimento di rientro viacancella-riga).
Stampa finale (a-dialogo)¶
Dopo il salvataggio (modalita' non-called) propone dialogo con F9: stampa rapporto (x-stampa → ASN599) o archivia+stampa (x-archivia-e-stampa) se genera-dossier = 'S'.
Messaggi principali¶
Messaggi maschera m-asn565-NN-1 (da .prc), tra cui:
m-asn565-3-1/4-1: magazzino cliente non configurato (blocco se gestione-mag-cl =S)m-asn565-5-1: nessuna prestazione/materiale previstom-asn565-20-1/21-1/22-1: chiamata inesistente / classe nonL/ intervento assentem-asn565-23-1..29-1: controlli riga (merce, qta, importanza, tecnico, data)m-asn565-11-1..18-1: errori apertura/scrittura transito magazzino (tran-s26)
Storico modifiche significative (dal sorgente)¶
- 070322: introdotta config
esec-prest-dettaglio— carica da ASNINDET, ammette la ripetizione della stessa prestazione su righe diverse, gestisce colonnafl-fatper riga; incompatibile con l'aggiornamento della stima. - 5/3/15: gestione materiali disabilitata forzatamente (
esec-prest-e-materialiforzato aN). - case 3942: aggiornamento carico/scarico solo per materiali (come ASN560), con opzione magazzino cliente.
Note implementative¶
- La griglia usa
wgrid.cpy/utilgdad.cpy/GRIDADMN; le celle sono pilotate da paragrafiz-tm-tab-*-be-ep(before-entry) ez-usa-tf-tm-tab-ep(tasti funzione). tran-s26e' un fileexternaltemporaneo condiviso con COGS26: viene aperto in output (svuotamento), i-o, popolato e cancellato ad ogni ciclo di movimentazione (aziendale e cliente separati).- La differenza
qta prevista − qta eseguitadetermina il segno del movimento: scarico quando si consuma di piu', rientro quando si consuma di meno. - Config idx 07 (
esec-prest-e-materiali) e' letta ma poi sempre forzata aNin coda ax99-confi: di fatto il programma tratta solo prestazioni finche' la gestione materiali non verra' riattivata.