Vai al contenuto

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

  1. Scansione clienti: in base a tm-ord:
  2. "A" (b1-st-alf): scandisce COGGEANA per chiave alternata 1 (ana-tipo1 = "C", range su ana-nome)
  3. "C" (b2-st-cod): scandisce COGGEANA per chiave primaria (ana-tipo = "C", range su ana-cod)

  4. 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).

  5. 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).

  6. Stampa (c-stampa): scandisce COGTRANS (ordinato per chiave 1 o 2 in base a tm-ord). Per ogni cliente:

  7. Verifica se ha sconti attivi (c2-src-sco su COGSCONT)
  8. Stampa testata (x1-testa) con dati aziendali, data, numero pagina
  9. 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 tramite x99-confi / RNEWCONF.
  • Il flag fl-sco sulla stampa viene calcolato per ogni cliente scandendo COGSCONT: se almeno uno sconto ha scc-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.