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¶
apri- Inizializzazione, apertura file, configurazione tasti, creazione file di transito e exporta4- Inizializzazione maschera con periodo default (01/01 - 31/12 anno corrente), tipo lavorazioni "C", ricerca per data consegnaa-tm-da-data..a-tm-merce- Catena di accept: da data, a data, tipo lavorazioni, opzione ricerca data, merce, anagraficaa-fine-dati- Validazione e conferma, lancio elaborazioneb-elabora- Scansione COGLAVOR e calcolo valoria-grid-ini- Apertura file transito e caricamento grigliaa-grid- Navigazione griglia con selezione, ricerca merce, stampa, exportcheck-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:
- Selezione prodotti finiti: solo record con
cla-fas = 1ecla-pos = 1(primo livello) - Filtri: tipo lavorazione (aperta/chiusa/tutte), merce specifica, date (produzione o consegna)
- 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.cpyetab-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-datanon va confuso: "C" = ricerca per data consegna (default), "P" = ricerca per data produzione.