Vai al contenuto

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 elementi k-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

  1. Inizializzazione (apri): determina il tipo (clienti/fornitori) dal parametro wo-parametro oppure da o58-called. Imposta titolo maschera e divisa.
  2. Selezione ordine (a4 ... a-tm-ord-pro): accept anno, numero e progressivo ordine. Se richiamato come called, salta direttamente alla conferma.
  3. Conferma e caricamento (a-richiesta-conferma): verifica esistenza ordine su COGTESOR, legge anagrafica cliente/fornitore, poi carica le righe.
  4. 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. Riempie tm-tab.
  5. 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.