Vai al contenuto

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