COGA60 — Aggiornamento listini da bolla di entrata¶
Sorgente: cbl/coga60.cbl | Tipo: Programma di menu (GUI, con griglia) | Program-ID: COGA60
Menu: Magazzino > Entrate > Inserimento [Agg.Listino da B.E.] ; Magazzino > Entrate > Varie [Agg.Listino da Entrate] ; Contanti > Entrate > Manuali [Agg. Listini da B.E.] (fuori perimetro)
Scopo¶
COGA60 aggiorna i listini di vendita delle merci a partire dai prezzi contenuti in una bolla di entrata. L'operatore indica il riferimento di una bolla di entrata (magazzino, anno, tipo, numero); il programma carica in una griglia tutte le righe merce della bolla mostrando per ciascuna:
- il prezzo di acquisto attuale della merce (prezzo medio, da COGL61) — colonna "Acq. att.";
- il penultimo prezzo di acquisto (dal listino fornitore COGLISFO) — colonna "Acq. pre.";
- il prezzo di vendita corrente di listino (da COGS01) proposto sia come "Vend. pre." sia come "Vend. att." modificabile.
L'operatore puo' modificare il prezzo di vendita proposto riga per riga; con F3 (conferma) il programma scrive/aggiorna il listino di vendita COGLISNW per le merci il cui prezzo e' cambiato e aggiorna la data di ultimo aggiornamento sull'anagrafica merce.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGTESBO | cogfiles.cpy (tes-rec) |
Testata bolla di entrata: lettura per validare il riferimento e leggerne la data |
| COGMOMAG | cogfiles.cpy (mag-recz/mag-rec) |
Righe di movimento della bolla: scansione per estrarre le merci contenute |
| COGMERCI | cogfiles.cpy (mer-rec) |
Anagrafica merce: descrizione e aggiornamento data ultimo aggiornamento |
| COGLISFO | cogfiles.cpy (lfo-rec) |
Listino fornitore: penultimo prezzo di acquisto |
| COGLISNW | cogfiles.cpy (lnw-rec) |
Listino di vendita (nuovo formato): destinazione dell'aggiornamento prezzi |
| COGTABEL | cogfiles.cpy (euta-rec) |
Tabelle di configurazione (lettura via rd-tab) |
Flusso principale¶
main / apri— controllo abilitazione (ctr-abil), init programma, apertura file, definizione tasti funzione (F3 aggiorna, F8 aiuto/calendario, SF4 griglia, Invio seleziona), preparazione maschera e griglia (z-prepara-tm-grid,z-costruisci-controlli).a4— reset maschera; propone magazzino principale (az-main-mag) e tipo bollaC.a-tm-bol-mag/a-tm-bol-ann/a-tm-bol-num— accept dei campi del riferimento bolla (magazzino con aiuto F8 viasend-w36, anno, numero).a-richiesta-conferma— con F3 valida i dati (x-imposta-conferma), legge la testata bolla (rd-tes, che chiamard-cogtesbo); se assente segnala "BOLLA NON ESISTENTE"; espone la data documento.a-inizio-caricamento/a-10-loop— scandisceCOGMOMAGper la chiave bolla (st-cogmomag-notmin+rdnxt-cogmomag) fino a rottura chiave o riempimento tabella (k-max-ele-tab= 200); per ogni riga merce:- legge descrizione da
COGMERCI; cerca-prmed→ chiama COGL61 per il prezzo di acquisto attuale (tm-tault);- legge
COGLISFOper il penultimo prezzo acquisto, convertendolo con COGU10W (tm-tapen); - chiama COGS01 per il prezzo di vendita corrente (
tm-tapreetm-tanuovo). a-90— carica la griglia (z-costruisci-grid) e attiva i tasti funzione griglia.a-grid/a-accept-grid— gestione griglia: Invio apre il dettaglio riga per modificare "Vend. att." (a-riga-dettaglio→a-tm-tanuovo→a-riga-dettaglio-fine); SF4 apre l'amministrazione griglia (GRIDADMN); F3 chiede conferma ed eseguex3-aggiorna.x3-aggiorna(a90-a..a101-proseg) — per ogni riga in cuitm-tanuovodifferisce datm-tapre: aggiorna o inserisce il recordCOGLISNW(tipo listinoL, rif 1, fascia 1, data = data bolla) con il nuovo prezzo, quindix1-agg-meraggiornamer-data-aggsuCOGMERCI.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGL61 | Estrazione prezzo di acquisto (medio/ultimo) della merce a una data e sede |
| COGS01 | Calcolo prezzo netto di vendita da listino (prezzo intero, sconti) |
| COGU10W | Editing/cambio/arrotondamento importi in divisa |
| GRIDADMN | Amministrazione griglia (add/modify record, personalizzazione colonne) |
COGS68W (z-s68-*) |
Aiuto/selezione merce (Y* — gestore ausiliario) |
COGS52 / COGS60 / COGS93 / COGS95 (z-carica-*) |
Gestione controlli maschera (Y*) |
Note¶
- Griglia limitata a 200 righe (
k-max-ele-tab): oltre tale soglia le righe eccedenti della bolla vengono scartate con avviso. - La scrittura del listino avviene solo per le righe con prezzo di vendita modificato (
tm-taprediverso datm-tanuovo), evitando riscritture inutili. - L'aggiornamento su
COGLISNWe' idempotente rispetto alla chiave (merce + tipoL+ rif 1 + fascia 1 + data bolla): se il record esiste con la stessa data viene riscritto, altrimenti creato. - I prezzi caricati dalle diverse fonti (COGL61, COGLISFO, COGS01) vengono riportati nella divisa di conto tramite COGU10W prima della visualizzazione.
- Il programma usa
NEXT SENTENCEeGO TOinterni allo scan movimenti: sono pattern legacy del sorgente, coerenti con il resto del codebase.