Vai al contenuto

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

  1. 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).
  2. a4 — reset maschera; propone magazzino principale (az-main-mag) e tipo bolla C.
  3. a-tm-bol-mag / a-tm-bol-ann / a-tm-bol-num — accept dei campi del riferimento bolla (magazzino con aiuto F8 via send-w36, anno, numero).
  4. a-richiesta-conferma — con F3 valida i dati (x-imposta-conferma), legge la testata bolla (rd-tes, che chiama rd-cogtesbo); se assente segnala "BOLLA NON ESISTENTE"; espone la data documento.
  5. a-inizio-caricamento / a-10-loop — scandisce COGMOMAG per la chiave bolla (st-cogmomag-notmin + rdnxt-cogmomag) fino a rottura chiave o riempimento tabella (k-max-ele-tab = 200); per ogni riga merce:
  6. legge descrizione da COGMERCI;
  7. cerca-prmed → chiama COGL61 per il prezzo di acquisto attuale (tm-tault);
  8. legge COGLISFO per il penultimo prezzo acquisto, convertendolo con COGU10W (tm-tapen);
  9. chiama COGS01 per il prezzo di vendita corrente (tm-tapre e tm-tanuovo).
  10. a-90 — carica la griglia (z-costruisci-grid) e attiva i tasti funzione griglia.
  11. a-grid / a-accept-grid — gestione griglia: Invio apre il dettaglio riga per modificare "Vend. att." (a-riga-dettaglioa-tm-tanuovoa-riga-dettaglio-fine); SF4 apre l'amministrazione griglia (GRIDADMN); F3 chiede conferma ed esegue x3-aggiorna.
  12. x3-aggiorna (a90-a..a101-proseg) — per ogni riga in cui tm-tanuovo differisce da tm-tapre: aggiorna o inserisce il record COGLISNW (tipo listino L, rif 1, fascia 1, data = data bolla) con il nuovo prezzo, quindi x1-agg-mer aggiorna mer-data-agg su COGMERCI.

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-tapre diverso da tm-tanuovo), evitando riscritture inutili.
  • L'aggiornamento su COGLISNW e' idempotente rispetto alla chiave (merce + tipo L + 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 SENTENCE e GO TO interni allo scan movimenti: sono pattern legacy del sorgente, coerenti con il resto del codebase.