COGO58 -- Descrizioni Aggiuntive / Prezzi Particolari Ordini¶
Sorgente: cbl/cogo58.cbl | Program-ID: COGO58 | Tipo: Interattivo
Menu: Ordini > Clienti > Descr.Aggiuntive, Ordini > Fornitori > Descrizioni Aggiuntive
Scopo¶
Programma interattivo per la visualizzazione e gestione delle descrizioni aggiuntive e dei prezzi particolari sulle righe di un ordine (clienti o fornitori). Carica le righe dell'ordine in una griglia e consente di accedere alle descrizioni aggiuntive (F7, tramite COGS46W) e ai prezzi particolari (F5, tramite COGO15) per ciascuna riga.
Puo' essere richiamato come "called" da altri programmi (quando o58-called = 'COGO58-CALLED'), nel qual caso riceve l'ordine da elaborare tramite linkage section.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Tabella sistema | Input | Tabella di sistema |
| COGGEANA | Anagrafica | Input | Anagrafica clienti/fornitori |
| COGTESOR | Testata ordini | Input | Testata ordini per verifica esistenza |
| COGRIGOR | Righe ordini | Input | Righe dell'ordine, lettura con chiave 2 |
| COGTABEL | Tabella generica | Input | Tabelle di decodifica |
| COGMERCI | Anagrafica merci | Input | Per descrizione articoli |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| cogo58.select | SELECT dei file |
| cogo58.fd | File Description |
| cogo58.wrk | Working storage generata |
| cogo58.prc | Procedure generate da Screens |
| cogo58-01.scr | Screen section |
| cogo58.decla | Declaratives |
| k-u10.cpy | Costanti COGU10 (gestione divise) |
| wgrid.cpy | Variabili gestione griglia |
| utilgdad.cpy | Interfaccia GRIDADMN |
| utils46.cpy | Interfaccia COGS46 (descrizioni aggiuntive) |
| utils46w.cpy | Interfaccia COGS46W (descrizioni aggiuntive finestra) |
| utils52.cpy | Interfaccia COGS52 (accept campi) |
| utils68.cpy | Interfaccia COGS68W (ricerca merci) |
| utilu10.cpy | Interfaccia COGU10 (gestione divise/arrotondamenti) |
| utilu20.cpy | Interfaccia COGU20 |
| wcont.cpy / wcont1.cpy | Linkage section (area di comunicazione) |
| cogazien.cpy | Dati azienda |
| COGRIGOR.K02 | Chiave secondaria righe ordini |
Struttura del programma¶
Variabili principali¶
tab-maschera(tm-*): contiene i dati della maschera e la tabella delle righe ordine (fino a 200 elementik-max-ele-tab).grid-record(grd-*): record di interscambio con la griglia (merce, qta, prezzo, importo).w-tip: "C" per clienti, "F" per fornitori.fl-elab: "OK" quando richiamato come called.ri-currency: divisa dell'ordine.
Flusso principale¶
- Inizializzazione (
apri): determina il tipo (clienti/fornitori) dal parametrowo-parametrooppure dao58-called. Imposta titolo maschera e divisa. - Selezione ordine (
a4...a-tm-ord-pro): accept anno, numero e progressivo ordine. Se richiamato come called, salta direttamente alla conferma. - Conferma e caricamento (
a-richiesta-conferma): verifica esistenza ordine su COGTESOR, legge anagrafica cliente/fornitore, poi carica le righe. - Caricamento righe (
a2-10-loop): scorre COGRIGOR con start su chiave 2 (st-cogrigor-may-chia2), per ogni riga legge la descrizione merce, gestisce la conversione divisa tramite COGU10W, calcola l'importo. Riempietm-tab. - Griglia (
a-grid/a-accept-grid): visualizza la griglia, gestisce F5 (prezzi particolari), F7 (descrizioni aggiuntive), S-F4 (amministrazione griglia).
Chiamate esterne¶
| Programma | Modalita' | Scopo |
|---|---|---|
| GRIDADMN | CALL | Gestione griglia avanzata (preparazione, svuotamento, aggiunta record) |
| COGS46W | CALL | Gestione descrizioni aggiuntive sulla riga (F7) |
| COGO15 | CALL | Gestione prezzi particolari sulla riga (F5) |
| COGU10W | CALL | Conversione divise, editazione e arrotondamento importi |
| COGS52 | CALL (via copy) | Accept campi con validazione |
| COGS68W | CALL (via copy) | Ricerca merci |
Note¶
- La griglia supporta fino a 200 righe (
k-max-ele-tab = 200). Se l'ordine ha piu' righe, il programma avvisa "Tabella Piena" e scarta le righe eccedenti. - La conversione divise viene gestita tramite COGU10W: se la divisa della riga ordine differisce da
ri-currency, il prezzo viene convertito prima della visualizzazione. - Il programma gestisce anche il ridimensionamento della finestra (
ntf-resized), ricalcolando la griglia. - In modalita' "called", la chiusura (
fine) torna al programma chiamante senza reinizializzare la selezione.