Vai al contenuto

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:

  1. Inizializzazione, lettura configurazione (RNEWCONF), apertura file
  2. Creazione dei 3 file di transito temporanei (COGTRANS, COGTRANS2, COGTRANS3)
  3. Accept filtri: data riferimento, merce, commessa, consolidato, data consolidamento, report
  4. Conferma utente
  5. Elaborazione FIFO (semplificato o completo)
  6. 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:

  1. Fase 1 - Raccolta movimenti: scorre COGRIGCM e per ogni riga RD (documenti) chiama tratta-rd per caricare i movimenti nel file COGTRANS, classificandoli per tipo:
  2. A = carichi (entrate in commessa)
  3. B = resi a fornitore
  4. C = resi da cliente

  5. Fase 2 - Costruzione carichi disponibili: scorre COGTRANS per tipo A e scrive su COGTRANS2 (carichi con quantita' e qta-usata=0)

  6. Fase 3 - Rettifica per resi fornitore: scorre tipo B, trova il carico di origine tramite COGMOAG2 e riduce la qta disponibile in COGTRANS2

  7. 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

  8. 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":

  9. 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
  10. Reso (tratta-reso): inverte il processo, restituendo quantita' ai carichi FIFO piu' recenti (dal fondo)

  11. Fase 6 - Assegnazione: chiama assegnazione-costo-comm per riportare i costi FIFO sulle righe di COGDMRIG

Tratta-carico (dettaglio)

  1. Scorre COGTRANS2 per commessa+merce dalla data piu' vecchia
  2. Per ogni carico con quantita' residua (trs2-qta > trs2-qta-usata):
  3. Se la qta da assegnare >= il residuo: consuma tutto il carico, sottrae dal residuo
  4. Altrimenti: consuma solo la qta rimanente, chiude il ciclo
  5. Scrive COGTRANS3 con l'assegnazione (carico-uso + carico-acquisto + qta + costo unitario)
  6. 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".