Vai al contenuto

COGSA9 - Gestione benestare su documenti

Posizione nel menu Programma non a menu Linkage section UTIL-COGSA9

Tipo Dato Formato Contenuto
INPUT COGSA9-OPE x(20) Operazione da eseguire
COGSA9-DOCUMENTO tes-chia3 Documento da elaborare
COGSA9-RICALCOLA-LISTINO x(01) Opzione aggiuntiva usata nell'elaborazione "RICALCOLA": permette di ricalcolare il valore dei documenti prima dell'elaborazione principale
OUTPUT COGSA9-ESITO x(01) Esito dell'operazione
COGSA9-O-MSG x(150) Messaggio restituito
COGSA9-O-BSTS-ID 9(12) Id benestare collegato
FILLER x(1987)

Logica generale Programma che esegue alcune operazioni comuni sui documenti di magazzino, per la gestione dei benestare. Configurazioni

Gruppo Parametro Note

Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.

Operazione: CONTROLLA

Descrizione Riceve in input un documento e restituisce la situazione nei confronti dei benestare in COGSA8-ESITO (vedi sotto). NB: Generalmente se l'esito restituito è "G" o "A" non dovrebbe essere possibile modificare o cancellare il documento stesso. Chiamata standard

Tipo Dato Formato Contenuto
INPUT COGSA9-OPE x(20) "CONTROLLA"
COGSA9-DOCUMENTO tes-chia3 Documento da controllare
OUTPUT COGSA9-ESITO x(01) Esito dell'operazione




COGSA9-O-MSG x(150) Messaggio restituito
COGSA9-O-BSTS-ID 9(12) Id benestare collegato
FILLER x(2000)

Elaborazione Come prima cosa verifichiamo che i campi obbligatori siano compilati e corretti. Se non è cosi' restituire COGSA8-ESITO = "N", e in COGSA8-MSG la descrizione del problema. A - Ricerca come documento da autorizzare Effettuare una ricerca su COGBSDAU, usando BSDA-CHIA2:

Dato Contenuto
BSDA-DOCUMENTO COGSA9-DOCUMENTO

Se il documento viene trovato, significa che è già stato raccordato ad un benestare: restituire

Dato Contenuto
COGSA9-ESITO "A"
COGSA9-O-MSG "Documento collegato a benestare di 'Autorizzazione': " BSDA-ID
COGSA9-O-BSTS-ID BSDA-ID

e uscire. B - Ricerca movimenti raccordati Come prima cosa, verificare se il documento ha già movimenti, scorrendo tutti i record su COGBSMOV, usando BSMV-CHIA3:

Dato Contenuto
BSDV-DOC-ORIGINE COGSA9-DOCUMENTO

Per ciascun record trovato, se almeno uno contiene BSMV-BSDT-ID > 0, significa che è già stato raccordato ad un benestare. In questo caso restituire:

Dato Contenuto
COGSA9-ESITO "G"
COGSA9-MSG "Documento collegato a benestare di 'Aggregazione': " BSMV-BSDT-ID
COGSA9-O-BSTS-ID BSMV-BSDT-ID

e uscire. C - Uscita "Ok" Se non è stata verificata nessuna delle condizioni precedenti, allora il documento è "a posto" nei confronti dei benestare. quindi restituire

Dato Contenuto
COGSA9-ESITO "S"
COGSA9-MSG " "

Operazione: RICALCOLA

Descrizione Riceve in input un documento e, se ci sono le condizioni, esegue l'elaborazione dei movimenti benestare. Se richiesto come opzione, permetterà anche il ricalcolo del valore dei documenti, prima di effettuare l'elabrazione principale. * Questo sarà utile soprattutto quando si effettuano delle correzioni retroattive sul listino * Il ricalcolo del valore movimenti sarà effettuato, quando richiesto, anche se il documento non prevede il benestare Chiamata standard

Tipo Dato Formato Contenuto
INPUT COGSA9-OPE x(20) "RICALCOLA"
COGSA9-DOCUMENTO tes-chia3 Documento da ricalcolare
COGSA9-RICALCOLA-LISTINO x(01) Opzione aggiuntiva usata nell'elaborazione "RICALCOLA": permette di ricalcolare il valore dei documenti prima dell'elaborazione principale
OUTPUT COGSA9-ESITO x(01) Esito dell'operazione


COGSA9-O-MSG x(150) Messaggio restituito
FILLER x(2000)

Elaborazione Come prima cosa verifichiamo che i campi obbligatori siano compilati e corretti. Se non è cosi' restituire COGSA8-ESITO = "N", e in COGSA8-MSG la descrizione del problema. A - Cancellazione Scorrere tutti i record su COGBSMOV, usando BSMV-CHIA3:

Dato Contenuto
BSDV-DOC-ORIGINE COGSA9-DOCUMENTO

Ciascun record trovato deve essere cancellato. B - Creazione movimenti B.1 - Verifica condizioni documento Per poter creare i movimenti, devono esserci 2 condizioni vere: * Causale del documento abilitata alla gestione dei benestare "Da aggregare" (EUTA-CB-BENESTARE = "G") * Cliente di fatturazione abilitato alla gestione dei benestare (AAP2-FL-BENESTARE = "S") * Questa condizione non skippa l'elaborazione completa, ma impedisce solo la creazione del movimento principale al cliente: gli eventuali movimenti di rifatturazione saranno creati ugualmente B.2 - Ricerca preliminare dati Come prima cosa verifichiamo se il documento proviene da una assistenza, cercando il raccordo su ASNINDMG, usando ACIM-CHIA2

Dato Contenuto
ACIM-TES-CHIA3 Documento da elaborare
ACIM-TIP "D"

Se presente, il documento proviene da intervento B.2.1 - Ricerca azienda collegata al documento L'azienda che ha generato il documento è COGTESAP.TSA-GRP-AZ-COD Il documento dovrà essere saltato se il cliente (TES-NONNO) corrisponde all'azienda emittente. Cercare quindi il cliente su COGAZGRP usando AZG-CHIA2 e confrontare TSA-GRP-AZ-COD con AZG-COD: se uguali skippare il documento. B.2.2 - Ricerca zona relativa al documento Se viene richiesto il ricalcolo del listino, è necessario rendere corrente la zona .... Questa dovrà essere cercata in funzione della provenienza della ricerca, e degli elementi presenti: * Chiamata di assistenza (è possibile che sia presente anche un nominativo CRM) * Se presente il nominativo CRM, prelevare la zona da qui (informazione configurata "ass-chiam"-"info-crm-zona") * Se presente una destinazione, prelevare la zona da qui, se trovata * Se presente un cliente assistito, prelevare la zona da qui * Se presente un cliente di fatturazione, prelevare la zona da qui * Documento standard * Se presente una destinazione, prelevare la zona da qui, se trovata * Se presente un cliente assistito, prelevare la zona da qui * Se presente un cliente di fatturazione, prelevare la zona da qui B.3 - Creazione movimenti Scorrere i movimenti di magazzino collegati al documento (COGMOMAG). Se richiesto dall'apposita opzione COGSA9-RICALCOLA-LISTINO, verrà aggiornato il movimento dopo averne ricalcolato prezzi e valori con il listino corrente. Saranno quindi esclusi i movimenti NON valorizzati. Per ciascun movimento valido inserire un movimento su COGBSMOV: B.3.1 - Creazione movimenti NON da intervento In questo caso (bolle creata in modo indipendente) ogni movimento di magazzino genera un movimento benestare Questa parte non viene eseguita, se il cliente non prevede la gestione benestare

Dato Non proviene da intervento
BSMV-ID-MOV
BSMV-DATA TES-DATA
BSMV-PROVENIENZA "A"
BSMV-MAG-CHIAP-ORIGINE MAG-CHIAP
BSMV-MERCE MAG-MERCE3
BSMV-SEGNO MAG-ENTRUSC
BSMV-QTA MAG-QTAMAGAZ
BSMV-PREZZO MAG-PREZZO
BSMV-IMPORTO MAG-VALORE
BSMV-ID-CHIAMATA 0
BSMV-ID-INTERVENTO 0
BSMV-ANA-FAT-TIP MAG-TIPOCF
BSMV-ANA-FAT-COD MAG-NONNO
BSMV-GRP-AZ-DOC TSA-GRP-AZ-COD
BSMV-BRAND TSA-BRAND
BSMV-STATO "I"
BSMV-BSDT-ID 0
BSMV-BSDT-PROG 0
BSMV-ORIGINE-ID-MOV 0
BSMV-FL-CONTINUATIVO "N"
BSMV-PERIODICITA 0
BSMV-TECNICO 0

B.3.2 - Creazione movimenti da intervento In questo caso (bolle proveniente da intervento) in caso di gestione multiazienda, ogni movimento potrebbe generare più di un movimento benestare (rifatturazione) Vediamo i casi possibili

Caso Caso Azienda esecutrice Azienda appaltante Azienda tecnico # Movimento Emittente (azienda) Destinatario (cliente)
A Lavoro eseguito da un tecnico dell'azienda a cui è stato assegnato A A A 1 A Cliente di fatturazione
A.1 Lavoro aggiuntivo effettuato a fronte del caso A C A A 1 C Cliente di fatturazione
2 A Azienda "C"
B Lavoro effettuato da un tecnico di azienda diversa A A B 1 A Cliente di fatturazione
2 B Azienda "A"
B.1 Lavoro aggiuntivo effettuato a fronte del caso B C A B 1 C Cliente di fatturazione
2 A Azienda "C"
3 B Azienda "A"
C Lavoro effettuato da un cottimista A A D 1 A Cliente di fatturazione
2 D Azienda "A"
C.1 Lavoro aggiuntivo effettuato a fronte del caso C C A D 1 C Cliente di fatturazione
2 A Azienda "C"
3 D Azienda "A"
D Lavoro richiesto a "C" effettuato da un cottimista "D" che ha un contratto per una terza azienda "A" (quindi è distaccato per questa azienda) A A C 1 A Cliente di fatturazione
Questo caso è da rivedere e approfondire 2 A Azienda "C"
Documento di entrata a D

Anche in questo caso saranno esclusi i movimenti che NON sono valorizzati. Il movimento verso il cliente di fatturazione non viene inserito se questo non prevede la gestione benestare NB: i casi C e C.1, D sono equivalenti dal punto di vista operativo a B e B.1 (cambia solo il fatto che "D", in quanto cottimista, è un libero professionista che lavora per sè stesso, ma potrà essere gestito come una azienda qualunque. Quindi, ciascun caso potrebbe generare 3 movimenti benestare, come si evince dallo schema sopra. NB:La stessa tabella è presente nel documento Rifatturazioni; quando la situazione è ben definita riportarla li'. Per ciascun movimento:

Dato Proviene da intervento
BSMV-ID-MOV Primo progressivo libero
BSMV-DATA TES-DATA
BSMV-PROVENIENZA "A"
BSMV-MAG-CHIAP-ORIGINE MAG-CHIAP
BSMV-MERCE MAG-MERCE3
BSMV-SEGNO MAG-ENTRUSC
BSMV-QTA MAG-QTAMAGAZ
BSMV-PREZZO Vedi Valorizzazione movimenti benestare
BSMV-IMPORTO
BSMV-ID-CHIAMATA Id chiamata collegata a intervento
BSMV-ID-INTERVENTO Id intervento
BSMV-ANA-FAT-TIP "C"
BSMV-ANA-FAT-COD Il cliente di fatturazione dell'intervento, o il codice cliente associato all'azienda "Destinatario"
BSMV-GRP-AZ-DOC Azienda "Emittente"
BSMV-BRAND ACHT-BRAND
BSMV-STATO "I"
BSMV-BSDT-ID 0
BSMV-BSDT-PROG 0
BSMV-ORIGINE-ID-MOV 0
BSMV-FL-CONTINUATIVO "N"
BSMV-PERIODICITA 0

Il movimento non dovrà essere inserito se il cliente risultante (BSMV-ANA-FAT-COD) corrisponde all'azienda emittente BSMV-GRP-AZ-DOC. Cercare quindi il cliente su COGAZGRP usando AZG-CHIA2 e confrontare bsmv-GRP-AZ-COD con AZG-COD: se uguali skippare il movimento. Note sulla logica in caso di più tecnici Nell'intervento ci potrebbero essere più tecnici, appartenenti ad aziende diverse, quindi in questo caso il ragionamento illustrato sopra dovrà essere ripetuto per ciascun tecnico assegnato all'intervento, suddividendo l'importo delle prestazioni in parti uguali. Valorizzazione movimenti benestare Il movimento principale (quello che deriva direttamente dal documento, quindi rivolto al cliente di fatturazione, sarà valorizzato esattamente come il movimento di magazzino: MAG-VALORE. Quando ci sono invece rifatturazioni tra le aziende, si dovrà applicare la regola di rifatturazione trovata su COGSCORF: * Se è presente lo sconto, si applica lo sconto su MAG-VALORE * Se è presente la classe di listino, si dovrà cercare il listino utilizzando la classe fornita (i due parametri sono in alternativa) La ricerca di COGSCORF dovrà essere effettuata in funzione dei dati del movimento: 1) Ricerca per il cliente di fatturazione

Dato Contenuto
SRF-AZIENDA-FAT BSMV-GRP-AZ-COD
SRF-AZIENDA-CLI Il codice azienda "Destinatario"
SRF-ANA-COD MAG-NONNO
SRF-DATA-DEC MAG-DA3

Cercare il primo record corrispondente, con data decorrenza uguale o inferiore a quella impostata. Se non trovato, effettuare la stessa ricerca senza il cliente di fatturazione:

Dato Contenuto
SRF-AZIENDA-FAT BSMV-GRP-AZ-COD
SRF-AZIENDA-CLI Il codice azienda "Destinatario"
SRF-ANA-COD 0
SRF-DATA-DEC MAG-DA3

Anche in questo caso cercare il primo record corrispondente, con data decorrenza uguale o inferiore a quella impostata. Il movimento principale (quello che deriva direttamente dal documento, quindi rivolto al cliente di fatturazione, sarà valorizzato esattamente come il movimento di magazzino: MAG-VALORE. Valorizzazione con sconto Se valorizzato SRF-PERC-RIF, conterrà la percentuale da applicare a MAG-VALORE per ottenere BSMV-IMPORTO. BSMV-PREZZO, di conseguenza dovrà essere ricalcolato come BSMV-IMPORTO / BSMV-QTA. Valorizzazione con classe listino Se valorizzato SRF-LSPS-CLASSE, conterrà la classe listino con cui effettuare la ricerca del prezzo. Effettuare quindi una chiamata ad COGS01, analogamente a quanto viene fatto in altri programmi, aggiungendo pero' anche la valorizzazione di COGS01-I-CLASSE. In questo caso il cliente di fatturazione con cui effettuare la ricerca è il cliente collegato all'azienda "Destinatario" Valorizzare il record quindi con i valori ottenuti. Nessuna valorizzazione Se non è valorizzato nè SRF-PERC-RIF nè SRF-LSPS-CLASSE, il movimento di rifatturazione non dovrà essere generato.

Operazione CANCELLA

Descrizione Effettua alciune operazioni relative alla gestione dei benestare, quando un documento di magazzino viene cancellato: riceve in input un documento che presumibilmente deve essere cancellato (o è appena stato cancellato) e: * cancella tutti i movimenti benestare collegati * In caso di documenti generati dal benestare per la sua fatturazione: rimuove il collegamento tra il documento e la testata benestare, e riapre il benestare stesso NB: prima viene effettuata Operazione: CONTROLLA, e deve dare esito positivo! Chiamata standard

Tipo Dato Formato Contenuto
INPUT COGSA9-OPE x(20) "CANCELLA"
COGSA9-DOCUMENTO tes-chia3 Documento da controllare
OUTPUT COGSA9-ESITO x(01) Esito dell'operazione


COGSA9-O-MSG x(150) Messaggio restituito
FILLER x(2000)

Elaborazione Come prima cosa verifichiamo che i campi obbligatori siano compilati e corretti. Se non è cosi' restituire COGSA8-ESITO = "N", e in COGSA8-MSG la descrizione del problema. A - Controllo documento Eseguire Operazione: CONTROLLA L'esito restituito dovrà essere "S", altrimenti uscire senza fare nulla, restituendo

Dato Contenuto
COGSA9-ESITO "N"
COGSA9-MSG "Il documento è già presente in un benestare"

B - Cancellazione B.1 - Cancellazione movimenti (operazione che ha effetto sui documenti che hanno generato movimenti benestare) Scorrere tutti i record su COGBSMOV, usando BSMV-CHIA3:

Dato Contenuto
BSDV-DOC-ORIGINE COGSA9-DOCUMENTO

Ciascun record trovato deve essere cancellato. B.2 - Riapertura testata benestare (operazione che ha effetto sui documenti generati per la fatturazione di un benestare) Cercare il documento sulla testata benestare COGBSTES, usando BSTS-CHIA3:

Dato Contenuto
BSTS-DOCUMENTO-FAT COGSA9-DOCUMENTO

Se viene trovato, indica il benestare che ha generato il documento. Quindi si dovrà "riaprire" il benestare:

Dato Contenuto
BSTS-DOCUMENTO-FAT " "

B.3 - Esito Al termine restituire

Dato Contenuto
COGSA9-ESITO "S"
COGSA9-MSG " "

Estratto da documentazione interna ClickUp