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