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).
| 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
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).
a4: reset maschera con periodo di default (dal 01/01 dell'anno di sistema
alla data odierna), tipo "T" (tutti), ordinamento "C".
- 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).
a-richiesta-conferma / a222: validazione (x-imposta-conferma) e selezione
stampante (COGS54, emulazione HPLJ3).
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).
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.
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).
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.
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").