ASNS25 - Gestione prestazioni/materiali previsti¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | ASNS25-CALLER | x(20) | Programma chiamante |
| ASNS25-OPE | x(20) | Vedi argomenti successivi | |
| ASNS25-CHIAMATA | 9(12) | ID chiamata da elaborare | |
| ASNS25-ID-MODELLO | 9(12) | Modello prestazioni/materiali da usare Se passato in input non verrà cercato nella subroutine |
|
| ASNS25-SOLO-NEW | x(01) | Se vale "S", il ricalcolo effettuerà solo l'aggiunta di nuove merci tra le prestazioni e i materiali, trascurando le altre variazioni | |
| OUTPUT | ASNS25-ESITO | x(01) | Esito dell'operazione |
| ASNS25-MSG | x(160) | Messaggio di esito | |
| FILLER | x(500) |
Logica generale Questo programma permette la creazione o l'aggiornamento della struttura "Prestazioni/materiali previsti" su una chiamata. Viene innescato in tutti i programmi di creazione nuova chiamata allo scopo di finalizzare la determinazione dei materiali/prestazioni previste. All'interno del programma eseguire la gestione del log di procedura in modo da tracciare le scelte principali del programma. Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| ass-chiam | prestazione-consegna | Permettono di aggiungere una prestazione prevista automatica, in caso di chiamata "di consegna" |
| ass-chiam | tipo-attivita-consegna | |
| assist | chiamate-programmate-provenienza | |
| ass-chiam | mat-prest-da-distinta-matr | |
| ass-chiam | asns25-salva-prestazioni-interventi-contratti | Se "S", salva le prestazioni collegate agli interventi delle chiamate programmate da contratto. Introdotta per clienti (es. EFFE IMPIANTI) che vogliono solo le prestazioni previste da "Tipo Attivita'" |
Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.
Operazione: RICALCOLA¶
Descrizione Riceve in input una chiamata, ed effettua la ricerca e aggiornamento dei materiali prestazioni/previsti per la chiamata stessa. In sintesi, la logica di ricerca è la seguente: 1. Ricerca prestazioni/materiali collegati direttamente ad un tipo attività 2. Ricerca prestazioni/materiali collegati al tipo matricola (sulla prima matricola della chiamata) 3. Ricerca dell'esistenza di un modello prestazioni/materiali collegato alla chiamata usando (vedi ASN03E - Modelli prestazioni/materiali di default) 1. La ricerca viene eseguita attraverso una chiamata a ASNS22 - Ricerca modello prestazioni/materiali 4. Ricerca di una distinta base collegata alla matricola: 1. Se la configurazione mat-prest-da-distinta-matr è attiva, ricerca prestazioni/materiali presenti nella distinta base matricola Ad ogni livello di ricerca, le eventuali prestazioni/materiali trovati vengono sommati a quelle trovate sui livelli precedenti. Quando non eseguire il ricalcolo Prima di iniziare il ricalcolo, verifico se su ASNMTRPD esiste almeno un record: se non è cosi' significa che tutta la logica di gestione delle m/p previste è manuale, o attraverso altri mezzi come * Preventivi * Kit * ... quindi in questo caso non viene eseguito il ricalcolo. Chiamata standard
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | ASNS25-CALLER | Programma chiamante |
| ASNS25-OPE | "RICALCOLA" | |
| ASNS25-ID-CHIAMATA | Id chiamata da elaborare | |
| ASNS25-ID-MODELLO | Modello da utilizzare Se non presente verrà cercato direttamente qui |
|
| ASNS25-SOLO-NEW | Se vale "S", il ricalcolo effettuerà solo l'aggiunta di nuove merci tra le prestazioni e i materiali, trascurando le altre variazioni |
Elaborazione B.1 Operazioni preliminari B.1.1 Verifico se eseguire il ricalcolo * Se non esiste nessun record su ASNMTRPD, non eseguirò nessun ricalcolo * Se è una chiamata programmata (ACHT-PROVENIENZA = chiamate-programmate-provenienza ) da contratto, e la configurazione mat-prest-da-distinta-matr non è attiva, non eseguirò nessun ricalcolo
Nota (02/04/2026 - TASK-3351): Dopo il ricalcolo, se la configurazione mat-prest-da-distinta-matr e' attiva, il salvataggio delle prestazioni collegate agli interventi del contratto viene eseguito solo se la configurazione asns25-salva-prestazioni-interventi-contratti vale "S". Questo permette ai clienti che usano solo le prestazioni da "Tipo Attivita'" di non avere prestazioni aggiuntive dagli interventi contratto.
B.1.2 Ricerca modello
Se il modello ASNS25-ID-MODELLO non viene passato, sarà cercato usando ASNS22 - Ricerca modello prestazioni/materiali
| Dato | Contenuto |
|---|---|
| ASNS22-CALLER | K-PROGRAM-ID |
| ASNS22-OPE | "CERCA-MODELLO" |
| ASNS22-CHIAMATA | ID Chiamata |
B.2 Memorizzazione dati attuali Il dettaglio prestazioni/materiali presente attualmente sulla chiamata viene memorizzato in una tabella di appoggio. La tabella deve contenere anche il campo "Matricola". Questo servirà per poter confrontare il contenuto attuale con i dati ricalcolati, prima di aggiornare. Il confronto avverrà a parità di "Merce" e "Matricola" B.3 Ricerca P/M B.3.1 - Da tipo attività Sul tipo attività della chiamata viene effettuata la ricerca della presenza di p/m di default, con una ricerca su ASNMTRPD, impostando:
| Dato | Contenuto |
|---|---|
| AMPD-TIPO | "A" |
| AMPD-CODICE | ACHT-TIP-ATT |
Ogni record letto viene aggiunto alla tabella, a parità di codice merce trovato. In funzione del contenuto di AMPD-PROPOSTA-SU si valorizza la matricola sulla tabella:
| AMPD-PROPOSTA-SU | Cosa fare |
|---|---|
| "P" | Valorizzare con la prima matricola della chiamata |
| "T" | Il confronto va fatto con tutte le matricole della chiamata |
| "G" | Il confonto va fatto con matricola "vuota" |
La quantità verrà sommata alla quantità già presente. B.3.2 - Da tipo matricola Se sulla chiamata è collegata almeno una matricola (presenza di ASNCHDET), viene prelevato il tipo matricola dalla prima. Quindi si cercano p/m trovati su di essa.
| Dato | Contenuto |
|---|---|
| AMPD-TIPO | "M" |
| AMPD-CODICE | AMTR-TIP |
Ogni record letto viene aggiunto alla tabella, a parità di codice merce trovato e matricola sulla tabella. La quantità verrà sommata alla quantità già presente.
| AMPD-PROPOSTA-SU | Cosa fare |
|---|---|
| "P" | Valorizzare con la prima matricola della chiamata |
| "T" | Il confronto va fatto con tutte le matricole della chiamata |
| "G" | Il confonto va fatto con matricola "vuota" |
B.3.3 - Da modello Se il modello è presente (passato in input o cercato all'inizio) si prelevano p/m presenti in esso:
| Dato | Contenuto |
|---|---|
| AMPD-TIPO | "G" |
| AMPD-CODICE | ASNS25-ID-MODELLO |
B.3.4 - Altre gestioni particolari B.3.4.1 - Attività di consegna Se la chiamata è "di consegna", quindi il tipo attività è quello configurato in tipo-attivita-consegna, e la prestazione è configurata ( prestazione-consegna ) allora aggiungo alla tabella la prestazione configurata. In questo caso si ignora il contenuto di AMPD-PROPOSTA-SU, e si confronta con matricola vuota B.3.5 - Distinta base matricola Questa sezione viene eseguita se la configurazione mat-prest-da-distinta-matr è attiva Ricerca delle matricole collegate alla chiamata, su ASNCHDET:
| Dato | Contenuto |
|---|---|
| ACHD-ID | Id chiamata |
Per ciascuna matricola collegata, cercare l'esistenza della distinta base su ASNMTRDB:
| Dato | Contenuto |
|---|---|
| AMDB-ID-MTR | ACHD-ID-MATRICOLA |
Aggiungere il dettaglio alla tabella per il confronto.
| AMPD-PROPOSTA-SU | Cosa fare |
|---|---|
| "P" | Confrontare con la matricola in elaborazione |
| "T" | |
| "G" | Il confonto va fatto con matricola "vuota" |
B.4 Confronto tabella Ora la tabella può contenere "n" righe, dove le quantità e le matricole: * Precedente * Calcolata differiscono. In questo caso devo segnalare opportunamente all'utente la situazione e attendere una attività da parte dell'utente. Ad esempio:
| Caso | Merce/matricola originale | Merce/matricola calcolata | Qta originale | Qta calcolata | Note |
|---|---|---|---|---|---|
| A (INV) | Presente | Presente | 1 | 1 | La merce era già prevista, e la quantità è rimasta invariata |
| Presente | Presente | 0 | 0 | La merce era già prevista, e la quantità è rimasta invariata (c'è solo la merce ma non la quantità) | |
| B (AUM) | Presente | Presente | 1 | 2 | La merce era già prevista, e la quantità è aumentata |
| Presente | Presente | 0 | 2 | La merce era già prevista, e la quantità è aumentata | |
| C (DIM) | Presente | Presente | 2 | 1 | La merce era già prevista, e la quantità è diminuita |
| Presente | Presente | 2 | 0 | La merce era già prevista, e la quantità è diminuita | |
| D (ELI) | Presente | 1 | 0 | La merce era prevista ma è stata tolta completamente | |
| E (NEW) | Presente | 0 | 2 | La merce non era prevista in precedenza, ma è stata calcolata in questo momento |
B.4.1 Decisione In base al confronto effettuato, se il flag ASNS25-SILENT vale "N", devo chiedere all'utente una decisione, mostrando quali casi sono presenti nella chiamata attuale, mostrando un messaggio opportuno che gli faccia capire quali casi sono presenti. Se l'utente quindi annulla, non eseguo la parte seguente di aggiornamento Casi particolari: * Se non è presente nessun caso (tabella vuota) non segnalo nulla e skippo l'aggiornamento * Se sono presenti solo casi "A" (merci invariate), non segnalo nulla e non eseguirò nessun aggiornamento * Se sono presenti solo casi "E", significa che in precedenza non c'era nessuna P/M prevista, ed è stata aggiunta dall'elaborazione corrente, quindi potrei anche evitare la segnalazione e proseguire. * Se ASNS25-SOLO-NEW = "S" * Verranno considerati solo i casi "E" in fase di aggiornamento, e non verrà emesso nessun messaggio 09/11/2023: dato che ora è possibile dettagliare le voci per matricola, non è necessario emettere nessun messaggio informativo. B.5 Aggiornamento La fase di aggiornamento rimuove tutti i record relativi alla chiamata da ASNCHPRP, quindi li reinserisce dalla tabella, quando è presente la merce "ricalcolata"
Estratto da documentazione interna ClickUp