ASNS12 - Ricerca contratto su cliente¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | ASNS12-OPE | x(20) | Vedi argomenti successivi |
| ASNS12-CLI-FAT | 9(05) | Codice cliente di fatturazione | |
| ASNS12-CLI-ASS | 9(05) | Codice cliente assistito | |
| ASNS12-DATA | data | Data per cui eseguire la ricerca del contratto | |
| ASNS12-MTR-ID | 9(12) | Matricola da controllare | |
| OUTPUT | ASNS12-ESITO | x(01) | Esito dell'operazione |
| ASNS12-MSG | x(160) | Messaggio di esito | |
| ASNS12-ID-CONTRATTO | 9(12) | Id contratto trovato e selezionato | |
| FILLER | x(470) |
Logica generale Programma nato con lo scopo di cercare un contratto di assistenza per un cliente in generale, o specificatamente per una matricola del cliente. Maschera del programma Nessuna maschera. Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.
Operazione: CERCA-CONTRATTO¶
Descrizione Riceve in input un cliente e/o una o più matricole del cliente, e verifica se esiste un contratto aperto selezionabile per il cliente stesso.
Chiamata standard
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | ASNS12-OPE | x(20) | CERCA-CONTRATTO |
| ASNS12-CLI-FAT | 9(05) | Codice cliente di fatturazione | |
| ASNS12-CLI-ASS | 9(05) | Codice cliente assistito | |
| ASNS12-DATA | data | Data per cui eseguire la ricerca del contratto | |
| ASNS12-MTR-ID | 9(12) | Matricola da controllare | |
| OUTPUT | ASNS11-ESITO | x(01) | Esito dell'operazione |
| ASNS11-MSG | x(160) | Messaggio di esito | |
| ASNS11-ID-CONTRATTO | 9(12) | Id contratto trovato e selezionato |
Elaborazione Ricerca contratto per la matricola Se è stata passata in input una matricole, come prima cosa eseguire la ricerca dei contratti aperti per la matricola: * Se la matricola è considerata "fuori contratto", saltare questa parte * Ricerca su ASNCNMTR di tutti i record trovati per la matricola passata in input, usando la chiave specifica; i contratti trovati sono validi se: * ACNC-TIP = "C" * Il contratto è ancora valido (ACNT-FL-CHIUSO <> "C") * Verificare se Il contratto è valido per la data passata in input: deve essere compresa tra data inizio e data fine validità contratto (ACNT-DATA-DA e ACNT-DATA-A); * Al termine della ricerca: * Se viene trovato un contratto con tutte le condizioni valide passarlo al programma chiamante con esito = "S"; stesso ragionamento, per ora, nel caso in cui siano presenti più contratti che corrispondono ai requisiti richiesti * Se viene trovato un contratto che risponde a tutti i requisiti ma non a quello sulla data, emettere messaggio: Trovato contratto valido ma non per il periodo richiesto (valido dal ..... al.....); lo seleziono? * Se confermato passarlo al programma chiamante con esito = "S" Ricerca contratto per un impianto che comprende la matricola Se è stata passata in input una matricola, e non è stato selezionato nessun contratto sulla matricola, eseguire la ricerca del contratto sull'impianto; quindi: * Cercare se la matricola in esame ha una matricola padre (ricerca su ASNMTRLK); se si, selezionarla e ripetere l'operazione Ricerca contratto per la matricola * Se anche per la matricola padre non esiste un contratto, ripetere il giro di ricerca padre finchè non abbiamo raggiunto il livello più alto
Ricerca contratto per il cliente Se non è stata passata una matricola, o se comunque non è stato trovato nessun contratto sulla matricola nè sull'impianto, eseguire la ricerca direttamente sul cliente: il cliente assistito (ASNS12-CLI-ASS) potrebbe avere un contratto direttamente intestato, oppure il contratto potrebbe essere intestato al cliente di fatturazione (ASNS12-CLI-FAT). Quindi: 1. Usando il cliente assistito: 1. ricerca su ASNCNTES usando ACNT-CHIA2, impostando: 1. ACNT-CLI-FAT = cliente assistito 2. ACNT-DATA-A = 99999999 2. Start all’indietro. Se: 1. Si trova un contratto con data fine validità successiva e data inizio validità precedente il contratto è valido. 2. Si trova un contratto con data fine validità successiva e data inizio validità non precedente il contratto non è valido. (contratto non ancora entrato in vigore). Si dovrà leggere un nuovo contratto. 3. Si trova un contratto che ha periodo validità = 0 1. Se questo contratto è "a matricole" (ASNCNCND.ACND-TIP-FATT = "M"), lo si seleziona a prescindere 4. Si trova un contratto con data fine validità precedente alla data chiamata: il contratto è già scaduto; quindi si emette una DIALOG: “Contratto id contratto scaduto in data data fine validità; le opzioni possibili sono: 1. ESC Interrompi la ricerca 2. F3: seleziono il contratto 3. F5: elenco contratti per il cliente: in questo caso si richiama ASN200 5. Non si trova un contratto, non seleziono nessun contratto. 6. Se ho selezionato un contratto nei casi precedenti, ma è chiuso forzatamente (ACNT-FL-CHIUSO = “C”), significa che non è utilizzabile; quindi si prosegue con la ricerca. 2. Se con il cliente assistito non ho trovato nessun contratto valido, ripeto il giro di ricerca sopra descritto usando il cliente padre (che è il cliente di fatturazione). In questo caso se trovo un contratto, ACNT-CLI-ASS deve essere = 0 oppure = cliente assistito. 3. Se viene trovato un contratto valido restituirlo al programma chiamante con esito="S" Se tra i contratti trovati ce ne è almeno uno con un criterio "Monte ore/Monte valore" attivo, verrà evidenziato con un apposito messaggio e in una apposita colonna della griglia Se vengono trovati con questo criterio più di un contratto attivo, attivare la selezione con ASN220.
Operazione: CERCA-MONTE¶
Descrizione Riceve in input un cliente, e verifica se esiste un contratto aperto di tipo monte ore o monte valore selezionabile per il cliente stesso.
Chiamata standard
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | ASNS12-OPE | x(20) | CERCA-CONTRATTO |
| ASNS12-CLI-FAT | 9(05) | Codice cliente di fatturazione | |
| ASNS12-CLI-ASS | 9(05) | Codice cliente assistito | |
| ASNS12-DATA | data | Data per cui eseguire la ricerca del contratto | |
| OUTPUT | ASNS11-ESITO | x(01) | Esito dell'operazione |
| ASNS11-MSG | x(160) | Messaggio di esito | |
| ASNS11-ID-CONTRATTO | 9(12) | Id contratto trovato e selezionato |
Elaborazione
Estratto da documentazione interna ClickUp