Vai al contenuto

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.

Posizioni menu

  • 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

Parametri input (tab-maschera)

  • tm-cod-cli / tm-cod-cli-a: range clienti
  • tm-elab: C=ordinamento per codice merce, D=per descrizione

Flusso

  1. apri: open file + composizione nome w-trs-name (ext-tmp-dir/$#cogp73.<oper>)
  2. a4: open output di cogtrans poi reopen i-o; gestisce errore "Funzione gia' in uso"
  3. Accept maschera, conferma F3 -> COGS54 -> stampa
  4. carica-dati (preparazione transito):
  5. Lettura listino di riferimento (al momento tls-rif=1) per la divisa
  6. st-cogmercl-notmin-chia2 posizionato su mcl-cli
  7. 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
  8. stampa:
  9. Posizionamento cogtrans con notmin (key 1) o notmin-chia2 in base a tm-elab
  10. Loop stampa-loop: rottura per cliente -> testa con codice e ragione sociale
  11. Edit prezzi via COGU10W (operazione "Edita") rispettando divisa cliente
  12. Stampa codice/descrizione merce cliente, eventuale seconda riga se descrizione lunga
  13. 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