COGL09 - Valorizzazione Pre-Distinte
Panoramica
Programma interattivo che calcola il valore economico di una pre-distinta, determinando il prezzo di ogni componente attraverso diverse fonti (ordini attivi, PUA, imputazione manuale) e producendo una visualizzazione a video con possibilita' di stampa. Supporta l'esplosione ricorsiva delle sotto-distinte e il calcolo di merci percentuali. La maschera e' in formato testo (non Screens). Circa 1.736 righe.
| Menu |
Percorso |
| Magazzino |
Produzione > Distinte-Preventivo > Valorizzazione Pre-Distinte |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
| FEURTAB |
Input |
Tabella di sistema |
| COGTABEL |
Input |
Tabelle di configurazione |
| COGMERCI |
Input |
Anagrafica merci ufficiale |
| COGMERTP |
I-O |
Anagrafica merci temporanee |
| COGDBPRE |
Input |
Pre-distinta base |
| COGTESOR |
Input |
Testata ordini (per ricerca prezzo su ordini attivi) |
| COGRIGOR |
Input |
Righe ordini (per ricerca prezzo su ordini attivi) |
| TRAN-S16 |
I-O |
File di transito per esplosione distinta (generato da COGS30) |
| COGDBAGG |
Input |
Distinta base aggregata |
| COGTRANS |
I-O |
File di transito temporaneo per stampa |
| FLSTA |
I-O |
File di stampa |
Copybook principali
| Copybook |
Descrizione |
| cogmerci.cpy |
Record anagrafica merci |
| cogmertp.cpy |
Record merci temporanee |
| cogdbpre.cpy |
Record pre-distinta |
| cogtesor.cpy |
Record testata ordini |
| cogrigor.cpy |
Record righe ordini |
| tran-s16.cpy |
Record file transito distinta |
| cogdbagg.cpy |
Record distinta base aggregata |
| cogtabel.cpy |
Record tabelle |
| utils21.cpy |
Utility gestione tabelle |
| utils22.cpy |
Accept merce con ricerca (COGS22) |
| utils28.cpy |
Utility varie |
| utils54.cpy |
Utility stampa |
| utils64.cpy |
Utility COGS64 |
| utilncnf.cpy |
Configurazioni RNEWCONF |
| utilcogl61.cpy |
Interfaccia COGL61 (ricerca prezzo) |
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
| COGS22 |
Accept merce con ricerca e validazione |
| COGS12 |
Ricerca merce temporanea (F4) |
| COGU10 |
Gestione divise: conversione valuta, arrotondamento, accept/display prezzo |
| COGS30 |
Esplosione distinta base (genera TRAN-S16 con i componenti esplosi) |
| COGS64 |
Gestione configurazione merci percentuali (apertura/chiusura file) |
| RNEWCONF |
Lettura configurazioni (merci percentuali, ordinamento) |
| COGL61 |
Ricerca prezzo (PUA, ordini attivi) |
Logica di elaborazione
Flusso principale
- Inizializzazione (
inizio): apre file (7 file), crea file di transito temporanei (#$COGS30.{oper} e #$COGL09.{oper}). Legge configurazione merci percentuali da RNEWCONF (fino a 10 merci con relative percentuali).
- Input padre (
a7): accept del codice merce temporanea padre (COGS22). Verifica che esista in COGMERTP e che abbia flag mtp-padre = 'P'.
- Esplosione e valorizzazione (
a9):
- Chiama
calc-val con la merce padre e livello 0: questo chiama COGS30 per esplodere la distinta e ottenere i componenti nel file TRAN-S16
- Per ogni componente: se e' padre (sotto-distinta), chiama ricorsivamente
calc-val con livello 1
- Il valore calcolato viene salvato in
tm-valore
- Caricamento griglia (
a10-a15): legge TRAN-S16 e carica la tabella con i componenti. Per ogni componente:
- Filtra le merci percentuali: se trovata nella tabella merci percentuali, la riga viene gestita separatamente (quantita' e prezzo calcolati come percentuale del valore base)
- Se la merce e' temporanea: usa il prezzo da COGMERTP, con conversione valuta se necessario
- Se la merce e' ufficiale con sotto-distinta: chiama
calc-val per calcolarne il valore
- Se la merce e' ufficiale senza sotto-distinta: chiama
cerca-prmed (COGL61) per trovare il prezzo (PUA o ordini)
- Calcola l'importo riga = prezzo x quantita', arrotondato secondo la divisa di conto
- Accumula nel valore totale
- Gestione righe (
a31): griglia paginata con navigazione. L'operatore puo' modificare il prezzo di ogni riga. Dopo la modifica, il valore riga e il totale vengono ricalcolati.
- Stampa (
x1-stampa THRU ex-x1-stampa): alla conferma (F3), produce una stampa con testata (prodotto, descrizione, quantita') e righe (merce, descrizione, flag distinta, quantita', prezzo, quantita' calcolata, prezzo calcolato).
Merci percentuali
Le merci percentuali sono configurate in RNEWCONF (gruppo "progdist", chiavi "merce" e "percentuale", fino a 10). Rappresentano voci di costo calcolate come percentuale del valore base della pre-distinta (es. spese generali, margine). Le merci percentuali che sono anche semilavorati presenti nella distinta vengono trattate in modo speciale: la quantita' viene forzata a 1 e il valore corrisponde all'importo calcolato.
Configurazioni RNEWCONF
| Gruppo |
Chiave |
Descrizione |
| progdist |
euta-c029-ord |
Ordinamento |
| progdist |
merce (idx 1-10) |
Codice merce percentuale |
| progdist |
percentuale (idx 1-10) |
Percentuale da applicare al valore base |
Ricerca prezzo (cerca-prmed)
Per le merci ufficiali non padre, il prezzo viene determinato tramite COGL61 con la seguente priorita':
1. Ricerca su ordini attivi con calcolo variazione valuta
2. Prezzo Ultimo Acquisto (P.U.A.)
3. Imputazione manuale da parte dell'operatore
Struttura della stampa
- Testata: codice prodotto, descrizione, quantita'
- Colonne righe: codice merce, descrizione, flag distinta, quantita' da pre-distinta, prezzo, quantita' calcolata, prezzo calcolato
- Totale valore: in fondo al report
Note tecniche
- L'esplosione delle sotto-distinte avviene tramite COGS30, che genera il file TRAN-S16 con tutti i componenti al primo livello. Il livello passato come parametro controlla se COGS30 deve anche calcolare le merci percentuali (livello 0 = calcola, livello 1 = salta).
- Il file COGS64 gestisce l'apertura/chiusura dei file di configurazione merci percentuali (
tm-cfg-files: "O" = open, "C" = close).
- La griglia supporta fino a 400 componenti con spaginamento (14 righe visibili).
- I prezzi sono in formato 9(12)v9(6), gli importi pure.
- Il file di transito COGTRANS viene usato solo per la stampa finale.
- Il programma usa
PERFORM ... THRU per varie sezioni (stampa, navigazione, elaborazione).