Vai al contenuto

COGM103 - Stampa Prenotazioni (Consegnato Clienti)

Panoramica

COGM103 e' una stampa batch grafica (emulazione HP GL-2 / HPLJ3) che estrae il consegnato ai clienti in un periodo e produce, per ogni cliente, un modulo di "prenotazione" con le quantita' acquistate per merce (dal consegnato vengono scalati i resi). L'utente compila una maschera di filtri (periodo, range cliente, ordinamento) e, opzionalmente, una griglia di merci da includere/escludere (fino a 50). L'elaborazione crea un file di transito (cogtrans) raggruppato per cliente e merce, poi lo stampa. E' un programma GUI con griglia di dettaglio, avviato da menu come sottoprogramma (procedure division using stringhe).

Posizione nel menu

Menu Percorso
Magazzino Stampe > Stampa Prenotazioni

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
feurtab Indexed File tabelle generali (cogfiles.cpy): raccordo fatture (cogracco), raccordo bolle (cogracbb), testate bolle (cogtesbo), movimenti (cogmomag), merci (cogmerci), anagrafiche (coggeana), tabelle (cogtabel)
cogtrans Indexed temporaneo File di transito creato dal programma; chiave trs-chia1 (nome+cliente+merce+fattura) e chiave alternata trs-merce; accumula il consegnato netto per cliente/merce
flsta - File di stato/lock standard

Il file cogtrans e' dichiarato manualmente (SELECT con chiave alternata trs-merce duplicates, FD e record trs-rec espliciti) in quanto tabella temporanea. Il nome fisico e' <ext-tmp-dir>#cogm103.<operatore>.

Copybook principali

Copybook Descrizione
cogm103.select / cogm103.fd / cogm103.wrk / cogm103.prc / cogm103-01.scr / cogm103.decla Elementi generati da Screens
cogtrans.k01, cogracbb.k02 Routine di I/O della tabella di transito e chiave secondaria del raccordo bolle (aggiunte manualmente)
utilw06.cpy, utils52/54/65/68.cpy, utilu10.cpy, k-u10.cpy, utillogo.cpy Utility: date COGS52, stampa COGS54, cliente COGS65, range merce COGS68, editing/cambio importi COGU10, logo di stampa
wgrid.cpy, utilgdad.cpy, utilgrid.cpy Gestione griglia GUI (GRIDADMN) per la tabella merci includi/escludi
cogazien.cpy, wstato/wopenf/wgrave/wnscr.cpy, GetDCont.cpy Dati azienda, stato file, divisa conto

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGS54 Gestore di stampa (emulazione HPLJ3, 132 caratteri)
COGS65W Ricerca/selezione cliente (campi Da/A Cliente)
COGU10W Editing e conversione cambio degli importi (prezzo movimento in divisa conto)
GRIDADMN Gestore della griglia GUI della tabella merci includi/escludi
PUTLOGO Copia su stampante di un file di stampa esterno (logo/intestazione)

Chiamate a gestori tabella generati

Le routine rd-coggeana, rd-cogtesbo, rd-cogmerci, rd-cogtrans, st-cogracco-*, st-cogracbb-*, st-cogmomag-*, wr-/rwr-/del-cogtrans sono routine di accesso standard sui file indicizzati.

Logica di elaborazione

  1. apri / main: init, azienda, apertura file; costruzione del nome e apertura in i-o del file di transito cogtrans; abilitazione tasti funzione; preparazione griglia e controlli (z-prepara-tm-grid, z-costruisci-controlli).
  2. a4: reset maschera con periodo di default (dal 01/01 dell'anno di sistema alla data odierna), tipo "T" (tutti), ordinamento "C".
  3. Sezione di accept (a-tm-ord, a-tm-cli-da, a-tm-cli-a, a-tm-data-da, a-tm-data-a, a-tm-tip): parametri di filtro con controlli per campo. Se tm-tip = "I" (includi) o "E" (escludi) si apre la griglia merci (x1-tab-merci / a-grid) per inserire fino a 50 merci (Ctrl+A aggiungi, Ctrl+E elimina, a-tm-merce con COGS68).
  4. a-richiesta-conferma / a222: validazione (x-imposta-conferma) e selezione stampante (COGS54, emulazione HPLJ3).
  5. ela-00 / ela-00-loop: prima fase - scansione del raccordo fatture (cogracco) per il periodo, considerando solo i tipi batch/immediato e le bolle di uscita ("I"/"D"/"B"). Per ogni bolla valida legge la testata (cogtesbo), filtra per range cliente e (per EuroFrutta4) esclude gli omaggi (causale 5).
  6. ela-10-loop: scorre le righe movimento (cogmomag) della bolla, applica la selezione merci includi/escludi (tm-tip), converte il prezzo in divisa conto (COGU10W) e accumula nel transito (ela-09): scrive o aggiorna il record cogtrans sommando le quantita' e mediando il prezzo.
  7. cerca-e-scala-resi / carica-reso / scala-reso: per ogni bolla, cerca i resi collegati (cogracbb tipo "RV"), ne legge le righe (cogmomag) e scala dal transito la quantita' resa (fino a cancellare il record se la quantita' netta va a zero).
  8. st-00: seconda fase - stampa. Scansione di cogtrans (per cliente, poi per merce) sommando le quantita' (w-calc-qta); ad ogni cambio cliente si apre una nuova pagina (x41-format-page), ad ogni cambio merce si stampa la riga (stampa-riga). La pagina e' disegnata con comandi HP GL-2 (rettangoli, linee, etichette) in x41-init-page / x41-format-page / x41-close-page, con logo via x42-logo/PUTLOGO.
  9. fine / z-chiudi: chiusura di tutti i file (compreso cogtrans) e uscita.

Note tecniche

  • Programma con decimal-point is comma; stampa in modalita' grafica HP GL-2 (emulazione HPLJ3 impostata su COGS54), non a righe di testo.
  • Nato su richiesta specifica del cliente Eurofrutta4: la personalizzazione az-personal = "E4" esclude le bolle con causale 5 (omaggi).
  • L'inclusione/esclusione merci supporta la selezione a livello di gruppo (codice merce a zero con solo gruppo/sottogruppo valorizzati), oltre che per merce puntuale.
  • Il prezzo accumulato per merce e' la media dei prezzi dei movimenti; l'importo di riga e' quantita' per prezzo (in divisa conto).
  • La stampa non riporta prezzi/importi ma solo descrizione, U.M. e quantita' acquistata per anno, con colonna previsione anno successivo: il modulo e' una "prenotazione" del consegnato. La voce di menu "Stampa Prenotazioni" e' coerente con la funzione reale (il titolo maschera e' "Stampa Consegnato Clienti").