Vai al contenuto

COGM106 - Valore Prodotti Finiti e Componenti

Scopo

Analizza le lavorazioni di produzione in un periodo e calcola il valore della produzione dettagliato per merce, distinguendo tra prodotti finiti e componenti. Presenta i risultati in griglia con possibilita' di selezione, stampa ed export.

Struttura

  • Tipo: Programma standalone (mmmask.cpy)
  • Righe: ~3.053
  • Program-ID: COGM106
  • Screen: cogm106-01.scr
  • Interfaccia: GUI AcuCOBOL con griglia paginata

Flusso principale

  1. apri - Inizializzazione, apertura file, configurazione tasti, creazione file di transito e export
  2. a4 - Inizializzazione maschera con periodo default (01/01 - 31/12 anno corrente), tipo lavorazioni "C", ricerca per data consegna
  3. a-tm-da-data .. a-tm-merce - Catena di accept: da data, a data, tipo lavorazioni, opzione ricerca data, merce, anagrafica
  4. a-fine-dati - Validazione e conferma, lancio elaborazione
  5. b-elabora - Scansione COGLAVOR e calcolo valori
  6. a-grid-ini - Apertura file transito e caricamento griglia
  7. a-grid - Navigazione griglia con selezione, ricerca merce, stampa, export
  8. check-file - Se esiste un file di elaborazione precedente, propone di riutilizzarlo

Tabelle/File utilizzati

Tabella Tipo Utilizzo
FEURTAB Input Archivio nomi file
Tabelle via cogm106.select Input COGMERCI, COGLAVOR, COGCONOR, COGMOVDB, COGDBAGG, COGGENER, COGSLMAG, COGTESOR, COGDBASE, etc.
COGTRANS Transito File temporaneo indicizzato principale (risultati per merce)
COGTRANS2 Transito File temporaneo indicizzato di appoggio (accumulo per merce/componente)
OUTFIL Output File export testuale val-prod.txt
FLSTA I/O File stampa

Struttura COGTRANS (record principale)

trs-chia1:
  trs-merce       x(09)   codice merce (gru/sot/cod)
trs-chia2 (alternata, duplicati):
  trs-des-merce    x(40)   descrizione merce
trs-comp           x(01)   "C" = componente, spazio = prodotto finito
trs-qta            s9(07)v999  quantita'
trs-prezzo         9(12)v9(06) prezzo unitario
trs-valore         s9(12)v9(06) valore
trs-valore-ord     s9(12)v9(06) valore ordine
trs-sel            x(01)   "S" = selezionato
trs-currency       x(02)   divisa

Struttura COGTRANS2 (appoggio)

trs2-chia1:
  trs2-fl-comp    x(01)   flag componente
  trs2-merce      x(09)   codice merce
trs2-qta          s9(07)v999
trs2-prezzo       9(12)v9(06)
trs2-valore       s9(12)v9(06)
trs2-currency     x(02)

Logica di elaborazione

Algoritmo principale (b-elabora / ela-cla-start)

Scansione sequenziale di COGLAVOR:

  1. Selezione prodotti finiti: solo record con cla-fas = 1 e cla-pos = 1 (primo livello)
  2. Filtri: tipo lavorazione (aperta/chiusa/tutte), merce specifica, date (produzione o consegna)
  3. Per ogni prodotto finito trovato: a. Scrive un record su COGTRANS2 per il PF stesso b. Legge COGMOVDB per i componenti della distinta base c. Per ogni componente: scrive/accumula su COGTRANS2 (le merci percentuali a fase/posizione != 1 vengono escluse) d. Legge le prime note di magazzino (COGGENER) per valorizzare i componenti e. Se non trova prime note, valorizza con il PUA (prezzo ultimo acquisto) f. Calcola le merci percentuali (calcola-merci-percentuali) g. Scarica i totali da COGTRANS2 su COGTRANS (scarica-trs2-su-trs) h. Pulisce COGTRANS2 e riparte per il prossimo PF

Contatori di avanzamento

Durante l'elaborazione mostra i contatori: - ctr-rd - record letti - ctr-wr - record scritti

Filtro date (controlli-merce-date)

In base a tm-opz-data: - "P" (Produzione): filtra su cla-data-ini - "C" (Consegna): filtra su cor-data leggendo COGCONOR

Selezione in griglia

L'utente puo' selezionare/deselezionare righe con INVIO. La selezione viene salvata su COGTRANS (trs-sel = "S").

Ricerca merce (F6)

Chiama COGX40 per cercare una merce; se trovata, posiziona la griglia sul record corrispondente.

Stampa (d-stampa)

Formato 136 colonne. Intestazione con data, azienda, periodo, livello. Righe con: merce, descrizione, quantita', prezzo, valore. Riga totale in fondo.

Export

Se configurate merci percentuali (tm-cfg-n-merci > 0), genera il file val-prod.txt con il dettaglio in formato testo leggibile.

Chiamate a sottoprogrammi

Programma Funzione
COGS52 Gestione campo anno/data con calendario
COGS54 Utility S54
COGS60 Gestione combo box
COGS65 Gestione campo anagrafica
COGS68W Gestione campo merce
COGU10 Utility U10 (formattazione importi con divisa)
COGX40 Ricerca merce per posizionamento
COGL61 Utility L61
WIN006 Utility W06
GRIDADMN Gestione griglia personalizzabile
DIALOGS Gestione finestre di dialogo

COPY utilizzate

File section

cogfiles.cpy, cogm106.fd, flsta.cpy

Working-storage

cogm106.wrk, k-u10.cpy, wrk-u10.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utils52.cpy, utils54.cpy, utils65.cpy, utils68.cpy, utilu10.cpy, utilw06.cpy, utilcogx40.cpy, wgrid.cpy, utilgdad.cpy, utildlg.cpy, tabmperc.cpy, utilcogl61.cpy, utilncnf.cpy

Linkage

wcont.cpy, wcont1.cpy

Screen / Procedure

cogm106-01.scr, cogm106.decla

Note

  • File di transito: #OGM106A.{operatore} (COGTRANS), #OGM106B.{operatore} (COGTRANS2).
  • Il file COGTRANS viene riutilizzabile: il programma propone di usare il file esistente (check-file) per evitare rielaborazioni.
  • La chiave alternata su COGTRANS (trs-chia2 = descrizione merce con duplicati) consente l'ordinamento per descrizione.
  • Le merci percentuali sono gestite tramite tabmperc.cpy e tab-cfg-merce-app (fino a 10 configurazioni).
  • L'importo puo' essere formattato in diverse divise tramite COGU10 e la configurazione k-currency-v/h.
  • Il campo tm-opz-data non va confuso: "C" = ricerca per data consegna (default), "P" = ricerca per data produzione.