Vai al contenuto

COGY02 - Raffronto mensile

Sorgente: cbl/cogy02.cbl | Program-ID: COGY02 | Tipo: Programma interattivo (estrazione con griglia + export Excel + stampa)

Menu: Statistiche > Raffronto mensile


Scopo

Genera un raffronto del fatturato mensile tra due anni: anno di elaborazione (tm-anno-ela) e anno di raffronto (tm-anno-raf). Per ogni mese (1..12, piu' un totale annuo "99") aggrega gli importi e calcola differenza assoluta e percentuale. I dati provengono direttamente da cogstati (archivio statistiche di vendita popolato da COGY12). Visualizza la griglia su file di transito cogtrans e supporta dettaglio cliente (WIN130), dettaglio merce (WIN131), export Excel e stampa.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
COGTRANS ISAM (temp.) Output / I-O File di transito; chiave trs-chia1 (tipo T/C/M + mese 1..12,99 + cliente/conto/merce)
COGSTATI ISAM Input Archivio statistiche di vendita (chiave principale: stt-tip + stt-mese-fat + ...)
TRAN-COGS96 ISAM (temp.) I-O Buffer agenti dell'operatore (per filtraggio movimenti)
FEURTAB ISAM Input Tabella features/abilitazioni utente

Copybook utilizzate

Copybook Descrizione
cogy02.select, cogy02.fd, cogy02.wrk SELECT, FD, working storage (Screens)
cogy02-01.scr, cogy02.tm, cogy02.prc, cogy02.decla Schermata, tab maschera, procedure I/O, declaratives
tran-cogs96.fd, tran-cogs96.cpy, tran-cogs96.k01 FD/record/chiave file agenti
cogtrans.k01 Chiave file di transito
flsta.fd, flsta.cpy File status
k-u10.cpy Costanti utility valuta
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, wgrid.cpy Working storage standard + griglia
cogazien.cpy Dati azienda
utilgdad.cpy Supporto griglia (GRIDADMN)
utilncnf.cpy, utilrcnf.cpy Lettura configurazioni RNEWCONF
utils52.cpy, utils54.cpy Utility calendario, stampa
utilu10.cpy Utility COGU10 (divisa, conversione)
utilcogs96.cpy Utility COGS96 (filtro agenti)
utilw130.cpy, utilw131.cpy Utility WIN130/WIN131 (dettagli)
dtab.cpy, fscrol2.cpy, utilpggr.cpy Tabelle/scrolling/paginazione
wcont.cpy, utily02.cpy, wcont1.cpy Linkage standard
stato, stato1, winmsg, grave, mmmask, opengen Infrastruttura standard

Logica di elaborazione

Inizializzazione (apri): Verifica ext-ambiente-gui in {S,M}. Apre i file. Abilita F3 conferma, F8 calendario, F9 stampa, Shift+F4 griglia, Shift+F5 esporta Excel. Carica divisa di conto via COGU10W (GetDivisaConto). Compone il nome di cogtrans come <tmp-dir>/#$COGY02.<operatore>. Carica pulsanti custom F7 (Dettaglio Cliente) e F8 (Dettaglio Merce). Legge configurazione STATSTPARA/euta-c018-imp e STATSTPARA/euta-c018-stat-ext via RNEWCONF.

Fase parametri (a4): Chiude e riapre cogtrans (se gia' aperto da altro operatore segnala "Funzione gia' in uso"). Tipo statistica iniziale: "E" se az-personal = "AL", altrimenti "V". Accept dei campi: - tm-tipo-stat — tipo statistica - tm-anno-ela — anno elaborazione (con calendario F8) - tm-anno-raf — anno raffronto (deve essere diverso e minore di tm-anno-ela)

Elaborazione (a F3): - Chiama carica-agenti che, se all'operatore sono associati agenti (ptop-age), chiama COGS96 per popolare tran-cogs96 con la lista degli agenti visibili. - riempi-cogtrans-ela: parte da stt-tip = tm-tipo-stat e stt-mese-fat = tm-data-inizio (gennaio anno ela), scorre cogstati con rdnxt fino al mese 12 incluso. Per ogni record: - se fl-ok-age = "S" verifica che stt-age-1 sia in tran-cogs96 (filtro agenti); - aggrega su cogtrans con tre tipologie di record: T=totale, C=per cliente (stt-cli), M=per merce (stt-fl-mc/stt-conto o stt-merce); - somma o sottrae l'importo a seconda di stt-fl-vr (V=vendita, R=reso); - per ogni mese aggrega su trs-mese = w-mese (mese del fatturato) e su trs-mese = 99 (totale annuo). - riempi-cogtrans-raf: stessa logica per l'anno di raffronto, alimentando trs-imp-raf invece di trs-imp-ela. - Conversione valuta tramite COGU10W se la divisa del movimento e' diversa dalla divisa di conto.

Griglia (vis-tabella): Spaginamento su cogtrans filtrato per trs-tipo = "T" (totali mensili). Per ogni mese carica tm-mese, tm-imp-ela, tm-imp-raf, calcola tm-diff = tm-imp-ela - tm-imp-raf e tm-diff-perc. Visualizza paginato. F7 apre WIN130 (dettaglio cliente del mese), F8 apre WIN131 (dettaglio merce del mese), Shift+F4 GRIDADMN, Shift+F5 export Excel, F9 stampa via COGS54.

Chiamate a sottoprogrammi

Programma Utilizzo
COGS96 Caricamento agenti dell'operatore in tran-cogs96
COGU10W Conversione valuta / arrotondamento / GetDivisaConto
COGS54 Selezione device/parametri di stampa (F9)
WIN130 Dettaglio per cliente del mese (F7)
WIN131 Dettaglio per merce del mese (F8)
GRIDADMN Gestione griglia, personalizzazione, export Excel
RNEWCONF Lettura configurazioni STATSTPARA

Note implementative

  • Autore: Claudio Chiossi.
  • k-max-ele-tab = 100: dimensione massima tm-tab come buffer in memoria; la griglia vera e' su cogtrans paginato.
  • Il file cogtrans e' per-operatore (wo-oper nel nome) per evitare conflitti.
  • Il mese "99" e' usato come slot di totale annuo aggiuntivo, scritto in parallelo per ogni record letto.
  • A differenza di COGY15, questo programma non passa da tran-cogs96 per le righe statistiche: legge direttamente cogstati. COGS96 e' usato solo come filtro agenti.
  • Configurazioni rilevanti (gruppo STATSTPARA): euta-c018-imp (importo netto/lordo), euta-c018-stat-ext (statistica estesa).
  • Vincolo di validazione: tm-anno-raf < tm-anno-ela (messaggi m-contr-anno-1 / m-contr-anno-2).