Vai al contenuto

COGV2B - Bilancio di massa magazzino

Panoramica

Programma GUI a filtri (tab "Filtri") + griglia di risultati (tab "Risultati") che calcola il bilancio di massa di un magazzino per un periodo: per ciascun articolo gestito a giacenza determina la giacenza iniziale, i movimenti di entrata e uscita del periodo classificati per tipologia (acquisti, produzione, altro in entrata; vendite, scarti, produzione, altro in uscita) e la giacenza finale. E' uno strumento di quadratura/controllo che verifica la coerenza tra giacenza iniziale, flussi del periodo e giacenza finale, con possibilita' di convertire tutte le quantita' in Kg e produrre una riga di totale. Puo' essere lanciato in modalita' richiamata (selezione) da un altro programma.

Posizione nel menu

Menu Percorso
Magazzino Controllo Magazzino > Bilancio di massa magazzino

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema (nomi file)
COGMOMAG Input Movimenti di magazzino del periodo (scansione per chiave magazzino/articolo/data, chiave secondaria .chia3)
COGTESBO Input Testate documento: tipo documento (tes-tipob) e causale usati per classificare il movimento
COGTABEL Input Tabella causali di magazzino (tipo 15): flag cliente/fornitore, entrata/uscita, concorre a fatturato
COGMERCI Input Anagrafica articoli (classe merceologica "M" = gestito a giacenza, unita' di misura, peso unitario)
COGMERAP Input Anagrafica articoli aggiuntiva: flag "gestito a giacenza" (map-fl-gia)
COGMAGAZ Input Anagrafica magazzini (validazione e descrizione)
COGGENER Input Raccordi generici: individua i documenti collegati a commesse di produzione (tipo "LP", chiave secondaria .chia2)
CLCPGDOC Input Produzione giornaliera: individua i documenti di produzione (chiave secondaria .chia2)
COGTABUM Input Tabelle di conversione unita' di misura (per il bilancio in Kg)
t-grid-det I-O File di transito indicizzato per la griglia dei risultati

Copybook principali

Copybook Descrizione
cogv2b.select / cogv2b.fd / cogv2b.wrk / cogv2b.decla / cogv2b.prc SELECT, FD, working storage, declaratives e procedure di I/O (generati da Screens)
cogv2b-01.scr / cogv2b.tm Screen section (tab-control filtri/risultati + griglia) e area dati modificabili
cogv2b.imppredf / cogv2b.imppredf-wrk Gestione filtri predefiniti (salva/carica impostazioni)
k-tipi-cogtabel.cpy / k-personal.cpy / k-u10.cpy Costanti tipi COGTABEL, personalizzazioni, operazioni COGU10
wgrid.cpy / utilgdad.cpy Gestione griglia e interfaccia GRIDADMN
utils52/s68/u10/u16/u20/u31/w36 Aree di comunicazione con le rispettive subroutine
utilv43.cpy (linkage) Parametri di chiamata a COGV43 (dettaglio movimenti)
utildlg.cpy / utilncnf.cpy Dialoghi e configurazioni RNEWCONF
wgrave/wnscr/wopenf/wstato/cogazien Working storage errori, video, apertura file, stato I/O, dati azienda
grave/mmmask/opengen/stato/stato1/winmsg Errori gravi, maschera, apertura generica, stato verbi, messaggi

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGU31 Calcolo della giacenza iniziale dell'articolo alla data di partenza, per il magazzino
COGU16W Motore di ricerca/scansione articoli filtrati per range e ordinamento (u16-ope: Set-Estremi, Leggi, ecc.)
COGV43 Dettaglio dei movimenti dell'articolo per il magazzino e il periodo (F8 sulla riga di griglia)
GRIDADMN Gestione e personalizzazione della griglia paginata (Shift-F4)

Logica di elaborazione

1. Inizializzazione (apri)

Imposta nome programma, verifica abilitazione, legge dati azienda e apre i file. Abilita i tasti funzione (F3 conferma/gestione, F7 filtra, F8 movimenti/aiuto/calendario, Sf4 griglia, Sf5 export Excel, F9 ricerca avanzata), crea il menu pop-up di griglia, carica le bitmap e prepara i pulsanti Salva/Cerca impostazione. Se richiamato (w-dc-called = "S") imposta la modalita' "S" (selezione), altrimenti "A" (aggiornamento). Imposta il titolo "Bilancio di massa magazzino", prepara i controlli di ricerca articoli (COGU16) e la griglia.

2. Filtri (a4-bis, a-pag-filtri, paragrafi a-tm-*)

Sulla prima pagina del tab-control l'operatore imposta: magazzino (tm-mag, default magazzino principale azienda, aiuto COGW36), data partenza/arrivo (tm-da-data/tm-a-data), ordine estrazione merci (tm-ord-mer: articolo, codice, descrizione), range prodotto da/a (COGS68), e "Bilancio in Kg" (tm-bilancio-kg). Alla conferma (a-controlla-filtri) valida tutti i campi e passa alla pagina Risultati.

3. Calcolo del bilancio (z-grid-ricerca-dati / a10-loop)

Tramite COGU16 scandisce gli articoli nel range richiesto. Scarta servizi e articoli non gestiti a giacenza (classe merceologica diversa da "M", oppure map-fl-gia diverso da "S" in COGMERAP). Per ogni articolo valido:

  • Giacenza iniziale: chiama COGU31 con articolo, data di partenza e magazzino, ottenendo u31-qta.
  • Movimenti del periodo (a15-loop): scandisce COGMOMAG per magazzino/articolo/data (chiave .chia3) fino alla data di arrivo. Per ogni movimento legge la testata documento (COGTESBO) e la causale in COGTABEL (tipo 15).

4. Classificazione dei movimenti

Ogni movimento e' attribuito a una categoria in base a entrata/uscita (mag-entrusc), tipo documento (tes-tipob) e attributi della causale (euta-cb-cli-for, euta-cb-fl-eu, euta-cb-con-fat):

  • Entrate: acquisto (entrata, doc "C", causale fornitore/entrata/concorre a fatturato), produzione (entrata su doc "P" collegato a produzione, verificato da cerco-produzione), altro (ogni altra entrata).
  • Uscite: vendite (uscita, causale cliente/uscita/concorre a fatturato, doc I/D/B), scarti (azzerato nella versione corrente), produzione (uscita collegata a produzione), altro (ogni altra uscita).

Il paragrafo cerco-produzione riconosce i documenti di produzione tramite raccordo COGGENER "LP" (gnr-parte-2 = tes-chia3) o produzione giornaliera CLCPGDOC.

5. Giacenza finale e scrittura riga (a15-fine)

Riporta gli accumulatori di entrata/uscita nella riga di transito e calcola la giacenza finale = iniziale + entrate (acq + prod + altro) - uscite (ven + scar + prod + altro). Inserisce la riga nella griglia (z-grid-det-inserisci-t-rec).

6. Conversione in Kg e totale (kg-10-loop / kg-900)

Se "Bilancio in Kg" = "S", per ogni riga con unita' di misura diversa da KG cerca un coefficiente di conversione: prima specifico articolo-UM in COGTABUM, poi generico per UM, infine il peso unitario articolo (mer-peso). Applica il coefficiente (moltiplicazione o divisione secondo tbu-ope) a tutte le quantita'; se nessuna conversione e' possibile azzera i valori e segnala "Conversione UM non possibile". Aggiunge una riga di totale (t-gor-r-tipo-riga = "Z") con la somma di tutte le colonne.

7. Gestione griglia (a-grid)

Ciclo di accept sulla griglia (read-only): doppio click/Invio, Sf4 (personalizzazione GRIDADMN), Sf5 (export Excel), F8 (dettaglio movimenti dell'articolo via COGV43), menu pop-up di griglia.

8. Chiusura (fine / z-chiudi)

Cancella COGU16W, chiude i file, elimina il transito t-grid-det, distrugge il menu di griglia, chiude la finestra ed esegue z-99-exit-program.

Note tecniche

  • Tabella causali COGTABEL tipo 15: la classificazione dei movimenti dipende dagli attributi della causale (euta-cb-cli-for = C/F, euta-cb-fl-eu = E/U, euta-cb-con-fat = "SI"). Solo le combinazioni previste generano acquisto/vendita; il resto ricade in "Altro".
  • Articoli gestiti a giacenza: sono inclusi solo gli articoli con classe merceologica "M" (COGMERCI) e flag giacenza "S" (COGMERAP map-fl-gia, default "S" se il record e' assente/vuoto).
  • Riconoscimento produzione: un documento e' di produzione se collegato via raccordo COGGENER "LP" o presente in CLCPGDOC (produzione giornaliera); serve a separare i flussi interni di produzione da acquisti/vendite reali.
  • Bilancio in Kg: la conversione usa COGTABUM (specifico o generico) o, in fallback, il peso unitario articolo. Se la conversione non e' possibile le quantita' della riga vengono azzerate e marcate; la riga di totale ("Z") somma solo valori omogenei in Kg.
  • Giacenza iniziale via COGU31: il valore di partenza non e' letto direttamente ma ricostruito da COGU31 alla data di inizio periodo, garantendo coerenza con il calcolo standard delle giacenze.
  • Doppia modalita' (selezione/aggiornamento): se richiamato (w-dc-called = "S") parte in selezione e all'uscita dalla griglia torna al chiamante; da menu parte in aggiornamento. Nota: nella versione corrente la modalita' non attiva flussi di scrittura, il programma resta di sola consultazione.
  • Programma generato da Screens (versione 2.13.1): filtri (tab-control a due pagine), griglia e routine di I/O provengono dai file cogv2b.select/.fd/.wrk/.decla/.prc/.tm e dalla screen cogv2b-01.scr. La griglia usa il transito indicizzato t-grid-det con doppia chiave ed e' amministrata da GRIDADMN.