Vai al contenuto

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", su ASNCHPRP), calcolando prezzo/sconti/importo tramite ASNS03;
  • Movimenta il magazzino per i materiali usati (scarico/rientro sulla differenza qta prevista − eseguita) tramite la tabella temporanea TRAN-S26 e COGS26, sia sul magazzino aziendale sia (se configurato) sul magazzino cliente;
  • Aggiorna lo stato dello step "Lavorazioni" nel workflow chiamata (ASNCHWKF) portandolo a C (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) + fallback a-carica-da-asnchprp.
  • Standard: a-carica-da-asnchprp — scorre i previsti e, per ognuno, cerca il dettaglio corrispondente in ASNINDET (per merce, con acid-tip P/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-aggiornab-aggiorna)

  1. x-controlla-tm-tab-tutto valida tutte le righe.
  2. b-aggiorna confronta tm-prog (attuale) con tm-prog-prec per decidere per ogni riga: inserisci / modifica / cancella su ASNINDET (e su ASNCHPRP nella versione originale). Il calcolo prezzo passa da ASNS03 (listino/fascia cliente), importo arrotondato via COGU10.
  3. aggiorna (post): movimentazione magazzino via aggiorna-mag (+aggiorna-mag-cl se configurato). Per ogni materiale con data eseguita e differenza qta ≠ 0 scrive una riga in tran-s26 (segno U scarico / E rientro sul magazzino aziendale, invertito sul magazzino cliente) e a fine ciclo chiama COGS26 per generare il documento; il legame e' salvato in ASNINDMG.
  4. Aggiorna lo step k-step-c-lavorazioni in ASNCHWKF a stato C con date/ora/operatore prima/ultima.
  5. Aggiorna ASNINTE2 per 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-prec per la cancellazione a salvataggio; per i materiali → movimento di rientro via cancella-riga).

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 previsto
  • m-asn565-20-1/21-1/22-1: chiamata inesistente / classe non L / intervento assente
  • m-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 colonna fl-fat per riga; incompatibile con l'aggiornamento della stima.
  • 5/3/15: gestione materiali disabilitata forzatamente (esec-prest-e-materiali forzato a N).
  • 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 paragrafi z-tm-tab-*-be-ep (before-entry) e z-usa-tf-tm-tab-ep (tasti funzione).
  • tran-s26 e' un file external temporaneo 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 eseguita determina 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 a N in coda a x99-confi: di fatto il programma tratta solo prestazioni finche' la gestione materiali non verra' riattivata.