COGG58 - Ricalcolo Valori Fifo¶
Scopo¶
Ricalcolo del costo delle merci utilizzate nelle commesse applicando il metodo FIFO (First In, First Out). Il programma ricostruisce la catena di carichi e scarichi per ogni articolo di ogni commessa, assegnando il costo dei carichi piu' vecchi agli scarichi in ordine cronologico. I costi FIFO vengono poi assegnati alle righe di giornaliero commessa. Supporta opzionalmente il consolidamento delle commesse e la produzione di un report di stampa.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Vendite | Commesse > Utilita' > Ricalcolo Valori Fifo |
Struttura¶
Programma GUI interattivo di elaborazione batch. Flusso:
- Inizializzazione, lettura configurazione (RNEWCONF), apertura file
- Creazione dei 3 file di transito temporanei (COGTRANS, COGTRANS2, COGTRANS3)
- Accept filtri: data riferimento, merce, commessa, consolidato, data consolidamento, report
- Conferma utente
- Elaborazione FIFO (semplificato o completo)
- Assegnazione costi sulle righe di commessa
Modalita' FIFO¶
- Semplificato (criterio <> 'Z'): FIFO calcolato per commessa e articolo. Implementato.
- Completo (criterio = 'Z'): FIFO su tutti i movimenti. Non ancora implementato.
Tabelle/File utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema |
| COGTESCM | Input | Testata commesse |
| COGRIGCM | I-O | Righe commessa |
| COGDMRIG | I-O | Dettaglio righe giornaliero |
| COGDMTES | Input | Testata documenti |
| COGMOAG2 | Input | Movimenti magazzino 2 (origine movimento) |
| COGMERCI | Input | Anagrafica merci |
| COGTRANS | I-O (temp) | Transito movimenti commessa |
| COGTRANS2 | I-O (temp) | Transito carichi disponibili |
| COGTRANS3 | I-O (temp) | Transito assegnazioni FIFO |
| FLSTA | Output | File di stampa report |
| File da cogg58.select | I-O | File generati da Screens |
Struttura file di transito¶
COGTRANS (movimenti commessa): chiave primaria commessa+merce+data+prog; chiave secondaria commessa+tipo-mov+merce+data+prog. Campi: mag-chiap, entrusc, cli-for, flag EU, segno commessa, flag costo, flag giacenza, tipo movimento, qta, prezzo, importo, costo-tot.
COGTRANS2 (carichi disponibili): chiave primaria commessa+merce+data+prog; chiave secondaria mag-chiap+chiave primaria. Campi: mag-chiap, qta, qta-usata, prezzo, importo.
COGTRANS3 (assegnazioni FIFO): chiave primaria commessa+merce+chiap-uso+chiap-acq; chiave secondaria commessa+merce+data+chiap-acq+chiap-uso. Campi: data, qta-usata, qta-resa, costo-uni.
Configurazioni (RNEWCONF)¶
| Gruppo | Chiave | Descrizione |
|---|---|---|
| COMMESSE | CRITERIO-FIFO-COMMESSA | "A" = ultimo acquisto per residuo, "B" = prezzo medio per residuo, "Z" = FIFO completo (non implementato) |
Logica di elaborazione¶
Elaborazione per commessa (elabora-tsc-cod)¶
Per ogni commessa non consolidata:
- Fase 1 - Raccolta movimenti: scorre COGRIGCM e per ogni riga RD (documenti) chiama
tratta-rdper caricare i movimenti nel file COGTRANS, classificandoli per tipo: - A = carichi (entrate in commessa)
- B = resi a fornitore
-
C = resi da cliente
-
Fase 2 - Costruzione carichi disponibili: scorre COGTRANS per tipo A e scrive su COGTRANS2 (carichi con quantita' e qta-usata=0)
-
Fase 3 - Rettifica per resi fornitore: scorre tipo B, trova il carico di origine tramite COGMOAG2 e riduce la qta disponibile in COGTRANS2
-
Fase 4 - Rettifica per resi cliente: scorre tipo C, trova il carico di origine (doppio passaggio via COGMOAG2) e incrementa la qta disponibile in COGTRANS2
-
Fase 5 - Calcolo FIFO: scorre tutti i movimenti della commessa. Per quelli con segno "E" (entrata in commessa) o "U" (uscita) e flag costo "F":
- Carico (
tratta-carico): assegna il costo FIFO consumando i carichi in COGTRANS2 dal piu' vecchio. Se la quantita' eccede i carichi disponibili, il residuo viene valorizzato al prezzo di ultimo acquisto (criterio A) o prezzo medio (criterio B) tramite COGL61 -
Reso (
tratta-reso): inverte il processo, restituendo quantita' ai carichi FIFO piu' recenti (dal fondo) -
Fase 6 - Assegnazione: chiama
assegnazione-costo-commper riportare i costi FIFO sulle righe di COGDMRIG
Tratta-carico (dettaglio)¶
- Scorre COGTRANS2 per commessa+merce dalla data piu' vecchia
- Per ogni carico con quantita' residua (
trs2-qta > trs2-qta-usata): - Se la qta da assegnare >= il residuo: consuma tutto il carico, sottrae dal residuo
- Altrimenti: consuma solo la qta rimanente, chiude il ciclo
- Scrive COGTRANS3 con l'assegnazione (carico-uso + carico-acquisto + qta + costo unitario)
- Se resta quantita' non coperta: valorizza al prezzo di ultimo acquisto o medio
Report di stampa¶
Se richiesto, produce un report per articolo e commessa con righe per ogni documento: data, tipo documento, quantita', operazione, giacenza, commessa, quantita' FIFO, valore FIFO, prezzo FIFO, prezzo vendita e margine.
Chiamate a sottoprogrammi¶
| Sottoprogramma | Scopo |
|---|---|
| COGL61 | Prezzo acquisto e prezzo medio |
| COGUA3 | Costo servizio per tecnico |
| COGU10 / COGU10W | Gestione divise e cambi |
| COGS01 | Ricerca prezzo vendita da listino |
| RNEWCONF | Lettura configurazioni |
COPY utilizzate¶
Working storage¶
cogg58.wrk, wgrave, wnscr, wopenf, wstato, cogazien, utils52, utils54, utils68, utilu10, utilu35w, utilncnf, utilcogl61, utilcogua3
Linkage¶
wcont, wcont1
Screen/Procedure¶
cogg58.select, cogg58.fd, cogg58.wrk, cogg58.decla, cogg58-01.scr, cogg58.prc
Generiche¶
feurtab.fd, cogfiles.cpy, flsta.fd, flsta.cpy, mmmask.cpy, stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, call-u35.cpy
Note¶
- I tre file di transito vengono creati nella directory temporanea con nomi
#COGG58{datasis}-{orasis}.{operatore},#COGG58{datasis}-{orasis}2.{operatore},#COGG58{datasis}-{orasis}3.{operatore}e cancellati alla chiusura. - La modalita' FIFO completo (criterio "Z") e' dichiarata ma non implementata; il programma mostra un messaggio e non procede.
- Il consolidamento (se richiesto) imposta il flag e la data sulle commesse e righe elaborate.
- La conversione divise per i costi residui viene gestita tramite COGU10 con operazione "Cambio".