Vai al contenuto

COGP66 - Statistica Acquisti Merci

Scopo

Stampa una statistica acquisti/vendite per merci con i criteri della gestione "merci avanzata". Supporta filtri per anagrafica (cliente/fornitore), magazzino, periodo, divisa e fino a 5 livelli di rottura/totale. Genera righe di dettaglio per merce e totali multilivello.

Posizioni menu

  • Magazzino > Entrate > Stampe > Stampe con Merci Avanzate > Statistica Acquisti

File e Tabelle

File Copybook Utilizzo
FEURTAB cogfiles.cpy Tabella file di sistema
TRAN-M36 TRAN-M36.CPY File di transito generato dalla selezione merci avanzate (chiave primaria + chiave secondaria trs-m36-chia2)
COGMOMAG cogp66.fd Movimenti di magazzino (lettura su chiave 3: mag+gru+sot+cod+data+tipoB)
COGMERCI cogp66.fd Anagrafica merci
COGGEANA cogp66.fd Anagrafica generale (cliente/fornitore)
COGMAGAZ cogp66.fd Anagrafica magazzini
COGTABEL cogp66.fd Tabelle di codifica (tipo 62 - parametri di rottura merci avanzate)
COGTESBO cogp66.fd Testata bolle
COGMEMOR cogp66.fd Merci avanzate (memorizzazione)
FLSTA flsta.cpy File di stampa

Copybook

  • cogfiles.cpy, cogp66.select, cogp66.fd, cogp66.wrk, cogp66-01.scr, cogp66.decla, cogp66.prc
  • flsta.fd, flsta.cpy
  • tran-m36.fd, TRAN-M36.CPY
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • utils52.cpy, utils54.cpy, utils65.cpy, utilm35s.cpy, utils50.cpy, utilu10.cpy, utilw36.cpy
  • wcont.cpy, wcont1.cpy
  • grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, sendw36.cpy

CALL

Programma Scopo
COGS50 Composizione stringa descrittiva merce
COGS52 Input data con calendario
COGS54 Gestione parametri stampante e anteprima
COGS65W Ricerca anagrafica con zoom
COGM35S Selezione/configurazione criteri merci avanzate (genera/usa il TRAN-M36)
COGU10W Conversione divisa, arrotondamento e formattazione importi

Logica di elaborazione

Parametri input (tab-maschera)

  • tm-av: tipo estrazione (A=Acquisti / V=Vendite). Determina anche tm-tipo (A->F=Fornitore, V->C=Cliente)
  • tm-tipo: derivato da tm-av, F o C
  • tm-cod: codice anagrafica (0 = tutti)
  • tm-nome: ragione sociale (descrittivo)
  • tm-data-da / tm-data-a: range date
  • tm-mag: magazzino (spaces = tutti)
  • tm-det: M=Dettaglio merce, altrimenti solo totali
  • tm-liv: numero livelli di rottura (1-5)
  • tm-divisa: divisa di riferimento (default da GetDivisaConto su COGU10W)

Flusso

  1. Apri (apri): controlla az-mer-ava = "S", altrimenti esce. Apre i file, ottiene divisa conto via COGU10W.
  2. Maschera: accept dei campi (a-tm-av, a-tm-cod, a-tm-data-da, a-tm-data-a, a-tm-mag, a-tm-det, a-tm-livx).
  3. Conferma stampa (b-00-acc): chiamata COGS54 per parametri stampante, poi COGM35S per gestione selezione merci avanzate (che produce/aggiorna tran-m36).
  4. Inizio elaborazione (b-00-ok): inizializza titoli e struttura totali.
  5. Scansione (b1-sta-ava):
  6. Apre tran-m36, scorre con read next sequenziale
  7. Per ogni record letto, riconosce la merce (rd-mer) e gestisce salto pagina (x1-wr-testa)
  8. Confronta trs-m36-rot con w-rot per rottura principale: stampa totali livelli (b-tot-det) e totale rottura (b11-tot-rot)
  9. ctr-rot controlla rotture su trs-m36-ord-key (l) per ogni livello l = 1..tm-liv
  10. c-ela-mer elabora la singola merce
  11. Elaborazione merce (c-ela-mer):
  12. Posizionamento su COGMOMAG con chiave 3 (mag, gru, sot, cod, data, tipoB="C")
  13. Loop su movimenti del periodo per la merce
  14. Filtri: tipocf=tm-tipo, magazzino, gruppo/sotto/codice merce, anagrafica (mag-nonno=tm-cod), data
  15. Conversione divisa via COGU10W "Cambio" se mag-currency not = tm-divisa
  16. ctr-cau determina segno (tipo-comp): per cliente E=-/U=+, per fornitore E=+/U=-
  17. add-valore accumula su lt-qta(t)/lt-valore(t) per ogni livello
  18. Accumula totali generali (ttt-qta, ttt-valore), totali rottura (tst-qta, tst-valore) e per merce (me-qta, me-valore)
  19. Stampa riga merce (x2-wr-riga): solo se tm-det = "M", calcola prezzo medio = me-valore / me-qta, edita via COGU10W
  20. Totali livello (b-tot-det): per ogni livello t da tm-liv a 1 stampa totale con descrizione tabella tipo 62
  21. Totale generale (x4-wr-tot)

Gestione totali

  • lt-totali array di 5: per ogni livello mantiene quantita', valore, e codice rottura corrente (mem-rot)
  • Le rotture sono ricavate da trs-m36-ord-key (1..5) (campi di ordinamento del file di transito)
  • Le descrizioni delle rotture sono ricavate da COGTABEL tipo 62 con m35s-o-rot-ord(t) come tipo intermedio

Note tecniche

  • GUI screen section (cogp66-01.scr)
  • Larghezza stampa: 92 caratteri (w-siz-stampa)
  • File temporaneo tran-m36 viene cancellato in chiusura (delete file tran-m36)
  • Nome file di transito costruito come <ext-tmp-dir><slash>#$COGM36.<wo-oper>
  • Il sorgente nota: "per semplicita' l'eventuale conversione di divisa dei campi avviene su COGMOMAG: non effettuare aggiornamenti"
  • Il programma e' usato sia per acquisti (Statistica Acquisti) sia per vendite (titolo cambiato in x1-wr-testa in base a tm-av)