COGP73 - Stampa Merci con Codice Merce Cliente
Scopo
Stampa per cliente l'elenco dei prodotti con il codice/descrizione "merce cliente" e i prezzi (ultimo acquisto e listino di vendita del cliente). Estrazione tramite file di transito cogtrans con due chiavi (codice merce o descrizione) per supportare entrambi gli ordinamenti.
- Magazzino > Archivi & Tabelle > Stampe > Merci > Merci Clienti
File e Tabelle
| File |
Copybook |
Utilizzo |
| FEURTAB |
cogfiles.cpy |
Tabella file di sistema |
| COGMERCL |
cogp73.fd |
Tabella merci-cliente (chiave 2 sul cliente) |
| COGGEANA |
cogp73.fd |
Anagrafica clienti (denominazione, riflistino) |
| COGMERCI |
cogp73.fd |
Anagrafica merci (descrizione standard) |
| COGTESLS |
cogp73.fd |
Testata listini (divisa di vendita) |
| COGTRANS |
dichiarato in-line |
File transito (key1=cli+merce, key2=cli+desc+merce) |
| FLSTA |
flsta.cpy |
File stampante |
Copybook
cogp73.select, cogp73.fd, cogp73.wrk, cogp73-01.scr, cogp73.decla, cogp73.prc
feurtab.fd, cogfiles.cpy, flsta.fd, flsta.cpy
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
utils54.cpy, utils65.cpy, utilu10.cpy, utilcogl61.cpy, k-u10.cpy
wcont.cpy, utils01.cpy, wcont1.cpy (linkage)
grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, getdcont.cpy
cogtrans.k01, cogtrans.k02, cogmercl.k02
CALL
| Programma |
Scopo |
| COGS54 |
Gestione parametri stampante |
| COGS65W |
Ricerca anagrafica cliente |
| COGS01 |
Calcolo prezzo netto listino di vendita per merce/cliente/data |
| COGL61 |
Calcolo prezzo ultimo acquisto |
| COGU10W |
Edit/conversione importi |
Logica di elaborazione
tm-cod-cli / tm-cod-cli-a: range clienti
tm-elab: C=ordinamento per codice merce, D=per descrizione
Flusso
apri: open file + composizione nome w-trs-name (ext-tmp-dir/$#cogp73.<oper>)
a4: open output di cogtrans poi reopen i-o; gestisce errore "Funzione gia' in uso"
- Accept maschera, conferma F3 -> COGS54 ->
stampa
carica-dati (preparazione transito):
- Lettura listino di riferimento (al momento
tls-rif=1) per la divisa
st-cogmercl-notmin-chia2 posizionato su mcl-cli
- Loop
carica-dati-loop:
rdnxt-cogmercl, break se ana-cod > tm-cod-cli-a
rd-coggeana per nome cliente e ana-riflistino -> trs-n-lis
- Spezza la descrizione merce cliente in due righe da max 30 caratteri (cerca uno spazio entro i primi 36)
rd-cogmerci per descrizione standard
- COGL61 per prezzo ultimo acquisto della merce
- COGS01 con
s01-listino = trs-n-lis per prezzo netto vendita
wr-cogtrans
stampa:
- Posizionamento
cogtrans con notmin (key 1) o notmin-chia2 in base a tm-elab
- Loop
stampa-loop: rottura per cliente -> testa con codice e ragione sociale
- Edit prezzi via COGU10W (operazione "Edita") rispettando divisa cliente
- Stampa codice/descrizione merce cliente, eventuale seconda riga se descrizione lunga
- Chiusura:
delete file cogtrans
Note tecniche
- Programma GUI con screen section
- File di transito temporaneo per cliente, eliminato a fine elaborazione
- Il listino di vendita usato e' quello specifico del cliente (
ana-riflistino)
- La divisa di vendita e' presa dal listino con
tls-rif = 1 (testata listino)
- Larghezza stampa: 136 caratteri (
k-chr-stampa value 136)
- Spezzatura descrizione merce cliente in due righe da 30 caratteri tramite ricerca dell'ultimo spazio entro i primi 36 caratteri