COGP29 - Stampa Listino x Cliente da Movimenti¶
Sorgente: cbl/cogp29.cbl | Program-ID: COGP29 | Tipo: Interattivo + stampa (maschera grafica Windows)
Menu: Magazzino > Archivi & Tabelle > Stampe > Listini > Listino x Cliente da Movimenti
Scopo¶
Produce una stampa con il listino prezzi personalizzato per cliente, considerando solo le merci effettivamente movimentate (bolle) e, opzionalmente, ordinate. Per ogni cliente stampa la lista delle merci con prezzo di listino e prezzo scontato (se presente).
Tabelle/File utilizzati¶
| Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Tabella | Input | Tabella generale Eurosystem |
| COGGEANA | Tabella | Input | Anagrafica generale. Scandita per chiave primaria (ana-tipo + ana-cod) o chiave alternata 1 (ana-tipo1 + ana-nome) in base all'ordine stampa |
| COGMOMAG | Tabella | Input | Movimenti magazzino. Scanditi per chiave 6 (mag-tipocf6 + mag-nonno6 + merce) per trovare le merci movimentate del cliente |
| COGTESOR | Tabella | Input | Testata ordini. Scandita per chiave 1 (tor-tipo1 + tor-clifor) per trovare gli ordini del cliente |
| COGRIGOR | Tabella | Input | Righe ordini. Scandite per chiave primaria per trovare le merci ordinate |
| COGSCONT | Tabella | Input | Sconti cliente. Scanditi per chiave primaria (scc-tip = "A", scc-ana-tip = "C") per verificare se il cliente ha sconti attivi |
| COGTESLS | Tabella | Input | Testata listini (per validazione) |
| COGTRANS | File temp | I-O | File di transito indicizzato. Chiave primaria: trs-cli + trs-merce; chiave alternata: trs-cli-des + chiave1. Path: ext-tmp-dir/#$cogp29.<operatore> |
| FLSTA | File | Output | File di stampa |
Logica di elaborazione¶
Parametri di input (tab-maschera)¶
| Campo | Variabile | Descrizione |
|---|---|---|
| Ordine stampa | tm-ord |
"A" = alfabetico (per nome), "C" = per codice |
| Da cliente | tm-da-cli / tm-da-des |
Cliente iniziale (codice o nome, in base all'ordine) |
| A cliente | tm-a-cli / tm-a-des |
Cliente finale |
Configurazione (tab-cfg)¶
| Campo | Variabile | Descrizione |
|---|---|---|
| Includi ordini | tm-cfg-ord |
"S" = include anche merci da ordini |
Flusso di elaborazione¶
- Scansione clienti: in base a
tm-ord: - "A" (
b1-st-alf): scandisce COGGEANA per chiave alternata 1 (ana-tipo1= "C", range suana-nome) -
"C" (
b2-st-cod): scandisce COGGEANA per chiave primaria (ana-tipo= "C", range suana-cod) -
Raccolta merci da movimenti (
b3-movimenti): per ogni cliente, scandisce COGMOMAG per chiave 6 (mag-tipocf6= "C",mag-nonno6= cliente). Per ogni merce diversa trovata, scrive/aggiorna un record su COGTRANS (b31-wr-trs). -
Raccolta merci da ordini (
b4-ordini, se configurato): scandisce COGTESOR per il cliente, poi per ogni testata ordine scandisce COGRIGOR e scrive su COGTRANS (b42-wr-trs). -
Stampa (
c-stampa): scandisce COGTRANS (ordinato per chiave 1 o 2 in base atm-ord). Per ogni cliente: - Verifica se ha sconti attivi (
c2-src-scosu COGSCONT) - Stampa testata (
x1-testa) con dati aziendali, data, numero pagina - Per ogni merce (
c1-riga):- Chiama COGS50 per formattare la descrizione merce
- Chiama COGS01 per ottenere prezzo e prezzo scontato dal listino del cliente (
ana-riflistino) - Gestione personalizzazione FF (Ferranti): se prezzo netto > prezzo lordo, allinea al netto
- Stampa riga con descrizione, prezzo lordo, prezzo scontato (se diverso dal lordo)
Formato stampa¶
- Larghezza: 80 caratteri (
k-chr-stampa) - Testata 1: ragione sociale + " Listino Prezzi " + data
- Testata 2: codice e nome cliente + numero pagina
- Testata 3: separatore
- Testata 4: intestazioni colonne (Prodotto, Descrizione, Prezzo, [Scontato])
- Riga dettaglio: descrizione merce (51 car.) + divisa + prezzo + [divisa scontata + prezzo scontato]
Chiamate a sottoprogrammi¶
| Programma | Funzione |
|---|---|
| COGS01 | Ricerca prezzo da listino (listino cliente, data, merce, fascia, sconti) |
| COGS50 | Formattazione descrizione merce |
| COGS54 | Gestione stampa (finestra di conferma/anteprima, chiusura) |
COGS60 (via z-s60-*) |
Accept combo box (ordine stampa) |
COGS65 (via z-s65-*) |
Accept anagrafica (clienti) |
COGU10 (via z-u10-*) |
Formattazione prezzi ("Edita") |
COPY utilizzate¶
Working-storage¶
| Copybook | Descrizione |
|---|---|
cogp29.wrk |
Working storage generata da Screens |
k-u10.cpy |
Costanti divisa/arrotondamento |
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy |
Working storage comuni |
cogazien.cpy |
Dati azienda |
utilncnf.cpy |
Interfaccia configurazione RNEWCONF |
utils50.cpy |
Interfaccia COGS50 |
utils54.cpy |
Interfaccia COGS54 |
utils65.cpy |
Interfaccia COGS65 |
utilu10.cpy |
Interfaccia COGU10 |
Linkage¶
| Copybook | Descrizione |
|---|---|
wcont.cpy |
Area di comunicazione principale |
utils01.cpy |
Interfaccia COGS01 |
wcont1.cpy |
Area di comunicazione estesa |
Note¶
- Il file COGTRANS e' creato per-operatore nella directory temporanea e cancellato (DELETE FILE) alla chiusura.
- La configurazione "Includi ordini" (
tm-cfg-ord) e' gestita tramitex99-confi/ RNEWCONF. - Il flag
fl-scosulla stampa viene calcolato per ogni cliente scandendo COGSCONT: se almeno uno sconto hascc-sco-1<> 0, la colonna prezzo scontato viene abilitata. - Personalizzazione FF (Ferranti): se
az-personal= "FF" e il prezzo netto e' maggiore del lordo (sconto negativo), il prezzo lordo viene allineato al netto.