Vai al contenuto

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