COGL29 - Aggiornamento garanzia su S/N¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | COGL29-OPE | x(20) | Vedi argomenti successivi |
| COGL29-DDT | TES-CHIA3 | Chiave ddt da elaborare | |
| COGL29-SN | x(30) | Codice s/n da elaborare | |
| COGL29-FL-SILENT | x(01) | Indica se l'elaborazione deve essere senza messaggi |
|
| OUTPUT | COGL29-MSG | x(200) | Messaggio restituito dal programma |
| COGL29-ESITO | x(01) | Esito dell'operazione (S/N) | |
| FILLER | x(500) |
Logica generale Lo scopo principale del programma è di ricalcolare il periodo di garanzia su un s/n o sui s/n collegati ad un documento di uscita. Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.
Operazione: ELABORA-DDT¶
Descrizione Riceve in input le variabili necessarie e aggiorna la garanzia sul ddt in elaborazione. Chiamata standard
| Dato | Contenuto |
|---|---|
| COGL29-OPE | ELABORA-DDT |
| COGL29-DDT | Chiave ddt da elaborare |
| COGL29-SN | " " |
| COGL29-FL-SILENT | Indica se l'elaborazione deve essere senza messaggi |
Elaborazione Come prima cosa verificare che i campi obbligatori siano compilati e corretti (quelli evidenziati in grassetto). Se non è cosi' restituire COGL29-ESITO = "N", e in COGL29-MSG la descrizione del problema. Se COGL29-FL-SILENT <> "N", emettere un clock-msg con il messaggio "Aggiornamento garanzia in corso" A.1 - Ricerca dati Leggere la testata ddt (COGTESBO e COGTESAP) La data inizio garanzia sarà: 1. TSA-DATA-COLLAUDO se significativo, altrimenti 2. TES-DATA NB: tenere in considerazione entrambe le date perchè l'aggiornamento sarà diverso in funzione della provenienza. Se la causale del ddt non è di fatturazione, uscire senza nessun aggiornamento. A.2 Ricerca righe ddt Scorrere COGMOMAG per tutte le righe del ddt. Per ciascuna riga: A.2.1 "Durata garanzia" Usare COGU09 per ottenere il riferimento alla riga ordine collegata. Se trovata, cercare il record COGRORA2; se COGRORA2.RA2-DURATA-GARANZIA: * > 0 -> "Durata garanzia" = RA2-DURATA-GARANZIA * \= 0 -> "Durata garanzia" = COGMERA2.MA2-MESI-GARANZIA, usando la merce trovata su MAG-MERCE3 A.2.2 "Fine garanzia" Calcolare "Fine garanzia": sommare i mesi contenuti in "Durata garanzia" alla data "Inizio garanzia". Se "Inizio garanzia" è il primo giorno del mese, la garanzia finisce alla fine del mese considerato, altrimenti calcolare il numero di giorni preciso; ad esempio:
| Data inizio | Durata (mesi) | Data fine |
|---|---|---|
| 01/06/2018 | 12 | 31/05/2019 |
| 01/06/2018 | 18 | 30/11/2019 |
| 15/06/2018 | 12 | 14/06/2019 |
| 15/06/2018 | 18 | 14/12/2019 |
A.2.3 Ricerca s/n Scorrere COGMTUSC, per tutti i s/n collegati alla riga in elaborazione, usando MTU-CHIA3
| Dato | Contenuto |
|---|---|
| MTU-FL-DOC | "B" |
| MTU-BOLLA | COGL29-DDT |
| MTU-MERCE | MAG-MERCE3 |
Per ciascun s/n trovato posizionarsi su COGMATRI:
| Dato | Contenuto |
|---|---|
| MTR-MAT | MTU-MAT |
Poi su COGSNAGG:
| Dato | Contenuto |
|---|---|
| SNA-SN | MTR-SN |
| SNA-MERCE | MTU-MERCE |
A.2.3.1 Aggiornamento garanzia Se la "Inizio garanzia" è la data di collaudo: Aggiornare COGSNAGG con i dati della garanzia, se diversi (altrimenti non aggiornare)
| Dato | Contenuto |
|---|---|
| SNA-MESI-GARANZIA | "Mesi garanzia" |
| SNA-DATA-INI-GAR | "Inizio garanzia" |
| SNA-DATA-FIN-GAR | "Fine garanzia" |
Se la "Inizio garanzia" è la data del ddt: Verificare se sono presenti più matricole per il s/n-merce: questo perchè nel caso in cui ci sono più uscite, quella che determina la garanzia è la prima (a meno che non sia indicato sul secondo ddt una data di collaudo, vedi caso precedente); quindi: * E' il primo ddt -> Aggiornare sempre, se diversi * E' un ddt successivo -> Aggiornare solo le la garanzia è a 0
| Dato | Contenuto |
|---|---|
| SNA-MESI-GARANZIA | "Mesi garanzia" |
| SNA-DATA-INI-GAR | "Inizio garanzia" |
| SNA-DATA-FIN-GAR | "Fine garanzia" |
A.2.3.2 Aggiornamento matricola di assistenza Se è presente una matricola di assistenza con il s/n in elaborazione, si dovrà aggiornare il periodo di garanzia anche qui. Scorrere ASNMATRI usando AMTR-CHIA2
| Dato | Contenuto |
|---|---|
| AMTR-SN | MTR-SN |
Aggiornare la matricola se: * AMTR-MERCE = MTU-MERCE * AMTR-VAL <> "C"
| Dato | Contenuto |
|---|---|
| AMTR-GAR-INI | SNA-DATA-INI-GAR |
| AMTR-GAR-FIN | SNA-DATA-FIN-GAR |
A.9 Restituzione esito
Al termine restituire:
| Dato | Contenuto |
|---|---|
| COGL29-O-CHIAMATA | ACHT-ID |
| COGL29-ESITO | "S" |
| COGL29-MSG | " " |
Operazione: ELABORA-SN¶
Descrizione Aggiorna la garanzia sul s/n in elaborazione. NB: * questa è una operazione provvisoria, e viene eseguita per poter visualizzare direttamente la garanzia durante l'inserimento nel ddt di uscita: se sul ddt sono presenti più righe con durate di garanzia diverse a parità di merce, al termine della gestione verrà innescata l'operazione ELABORA-DDT che potrebbe cambiare questa durata e ricalcolare la garanzia. * Eseguire solo se la data di garanzia per il s/n è ancora vuota Chiamata standard
| Dato | Contenuto |
|---|---|
| COGL29-OPE | ELABORA-SN |
| COGL29-DDT | Chiave ddt da elaborare |
| COGL29-SN | Chiave S/N da elaborare: sarà elaborato solo il s/n in oggetto |
| COGL29-FL-SILENT | Indica se l'elaborazione deve essere senza messaggi |
Elaborazione Come prima cosa verificare che i campi obbligatori siano compilati e corretti (quelli evidenziati in grassetto). Se non è cosi' restituire COGL29-ESITO = "N", e in COGL29-MSG la descrizione del problema. Se COGL29-FL-SILENT <> "N", emettere un clock-msg con il messaggio "Aggiornamento garanzia in corso" A.1 - Ricerca dati Leggere la testata ddt (COGTESBO e COGTESAP) La data inizio garanzia sarà: 1. TSA-DATA-COLLAUDO se significativo, altrimenti 2. TES-DATA NB: tenere in considerazione entrambe le date perchè l'aggiornamento sarà diverso in funzione della provenienza. Se la causale del ddt non è di fatturazione, uscire senza nessun aggiornamento. A.2 Ricerca s/n Leggere COGSNAGG per il s/n in oggetto. Poi posizionarsi sulla riga del ddt avente la merce collegata (SNA-MERCE): scansione su COGMOMAG finchè non si trova MAG-MERCE3 = SNA-MERCE. A.2.1 "Durata garanzia" Usare COGU09 per ottenere il riferimento alla riga ordine collegata. Se trovata, cercare il record COGRORA2; se COGRORA2.RA2-DURATA-GARANZIA: * > 0 -> "Durata garanzia" = RA2-DURATA-GARANZIA * \= 0 -> "Durata garanzia" = COGMERA2.MA2-MESI-GARANZIA, usando la merce trovata su MAG-MERCE3 A.2.2 "Fine garanzia" Calcolare "Fine garanzia": sommare i mesi contenuti in "Durata garanzia" alla data "Inizio garanzia". Se "Inizio garanzia" è il primo giorno del mese, la garanzia finisce alla fine del mese considerato, altrimenti calcolare il numero di giorni preciso; ad esempio:
| Data inizio | Durata (mesi) | Data fine |
|---|---|---|
| 01/06/2018 | 12 | 31/05/2019 |
| 01/06/2018 | 18 | 30/11/2019 |
| 15/06/2018 | 12 | 14/06/2019 |
| 15/06/2018 | 18 | 14/12/2019 |
A.2.3 Aggiornamento garanzia In questa modalità aggiorniamo solo se la data di garanzia è 0 (vuota)
| Dato | Contenuto |
|---|---|
| SNA-MESI-GARANZIA | "Mesi garanzia" |
| SNA-DATA-INI-GAR | "Inizio garanzia" |
| SNA-DATA-FIN-GAR | "Fine garanzia" |
A.9 Restituzione esito
Al termine restituire:
| Dato | Contenuto |
|---|---|
| COGL29-O-CHIAMATA | ACHT-ID |
| COGL29-ESITO | "S" |
| COGL29-MSG | " " |
Estratto da documentazione interna ClickUp