Vai al contenuto

COGY06 - Vendite per Gruppo / Sottogruppo

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

Menu: Statistiche > Vendite per Gruppo/Sottogr.


Scopo

Estrae una statistica di vendita raggruppata per gruppo/sottogruppo merceologico (stt-gru + "/" + stt-sot). I dati provengono direttamente da cogstati (archivio statistiche di vendita popolato da COGY12). Per ciascun gruppo/sottogruppo il programma calcola quantita', importo, valorizzazione FIFO e percentuale sul totale. Visualizza la griglia su file di transito cogtrans con tre chiavi di ordinamento alternative (codice, nome, importo). Per i movimenti senza articolo (contabili puri) usa il pseudo-gruppo "No merci".


File e tabelle

File/Tabella Tipo Modalita' Descrizione
COGTRANS ISAM (temp.) Output / I-O File di transito; chiave primaria trs-chia1 (tipo + gruppo + cliente), alternate keys trs-chia2 per nome, trs-chia3 per importo
COGSTATI ISAM Input Archivio statistiche di vendita (chiave per data chia3: stt-tip + stt-data)
COGTABEL ISAM Input Decodifica gruppo/sottogruppo articoli (tipo AB)
TRAN-COGS96 ISAM (temp.) I-O Buffer agenti dell'operatore
FEURTAB ISAM Input Tabella features/abilitazioni utente

Copybook utilizzate

Copybook Descrizione
cogy06.select, cogy06.fd, cogy06.wrk SELECT, FD, working storage (Screens)
cogy06-01.scr, cogy06.tm, cogy06.prc, cogy06.decla Schermata, tab maschera, procedure I/O, declaratives
tran-cogs96.fd, tran-cogs96.cpy, tran-cogs96.k01 FD/record/chiave file agenti
cogtrans.k01, cogtrans.k02, cogtrans.k03 Chiavi file di transito (3 alternate keys)
cogstati.k03 Chiave secondaria cogstati per tip + data
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, utilncnf.cpy, utilrcnf.cpy Supporto griglia + configurazioni RNEWCONF
utils52.cpy, utils54.cpy, utils60.cpy, utils65.cpy, utils68.cpy Utility calendario, stampa, scelte codificate, ricerca cliente, ricerca merce
utilu10.cpy Utility COGU10 (divisa, conversione)
utilcogs96.cpy Utility COGS96 (filtro agenti)
utilw137.cpy Utility WIN137 (dettaglio cliente del gruppo)
getdcont.cpy, dtab.cpy, fscrol2.cpy, utilpggr.cpy Lettura contatori, tabelle, scrolling, paginazione
wcont.cpy, wcont1.cpy Linkage standard
stato, stato1, winmsg, grave, mmmask, opengen Infrastruttura standard

Logica di elaborazione

Inizializzazione (apri): Apre i file, abilita F3 conferma, F7 filtra, F8 aiuto/calendario, F9 stampa/ricerca avanzata, Shift+F4 griglia, Shift+F5 esporta Excel. Carica divisa di conto via COGU10W. Compone il nome di cogtrans come <tmp-dir>/#$COGY06.<operatore>. Crea pulsante custom F8 "Dettaglio Cliente". Legge configurazione STATSTPARA via RNEWCONF (chiavi c018-ela, c018-mag, c018-imp, c018-stat-ext).

Fase parametri (a4): Carica agenti dell'operatore via carica-agenti (COGS96 popola tran-cogs96). Tipo statistica iniziale: "E" se az-personal = "AL", altrimenti "V". Default: tm-tip-mov = "T", tm-mov = "R", tm-ord = "C". Pagina 1 con accept dei campi: - tm-tipo-stat — tipo statistica - tm-mag — magazzino (F8 = WIN036) - tm-tip-mov — tipo movimento (T/N/M) - tm-merce (gru/sot/cod, cma, cmf, cmc, bc) — filtro merce (selezione via COGS68W) - tm-cli-cod — cliente di partenza (selezione via COGS65W) - tm-data-da, tm-data-a — periodo (F8 = COGS52) - tm-mov — livello dettaglio - tm-ord — ordinamento (C/N/I)

Elaborazione (inizio-ela, a F3): - Apre cogtrans in output e poi i-o. - Parte da stt-tip = tm-tipo-stat e stt-data = tm-data-da, scorre cogstati con rdnxt (chiave k03). - Esce quando stt-tip not = tm-tipo-stat oppure stt-data > tm-data-a. - Per ogni record applica i filtri: agente, cliente, tipo movimento, gruppo/sottogruppo/codice merce, magazzino. - Calcola a1-gruppo: - se stt-fl-mc = "C" (movimento non-merce / contabile): a1-gruppo = "No merci"; - altrimenti: a1-gruppo = stt-gru + "/" + stt-sot. - a1-scrivi-transito: aggrega su cogtrans un record con trs-tipo = spaces, trs-cli, trs-gruppo = a1-gruppo sommando trs-qta, trs-imp, trs-val-fifo (gestione segno per importi negativi). Scrive anche un record trs-gruppo = "Totale" per il totale generale. - Conversione valuta tramite COGU10W (x1-calcola-imp) se necessario.

Griglia (vis-tabella): Spaginamento su cogtrans ordinato secondo tm-ord: - "C" -> chiave primaria (cliente+gruppo) - "N" -> alternate key 2 (nome+gruppo) - "I" -> alternate key 3 (importo+cliente)

Le righe della griglia mostrano: gruppo, descrizione (letta da cogtabel tipo AB), quantita', importo, val. FIFO, differenza, percentuale sul totale, totale fatturato. F8 (con tasto-premuto = k-f7) apre WIN137 per il dettaglio per cliente del gruppo. Shift+F4 GRIDADMN, Shift+F5 export Excel, F9 stampa.

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)
COGS52 Calendario (F8 sui campi data)
COGS65W Ricerca/selezione cliente di partenza
COGS68W Ricerca/selezione codice merce
WIN036 Selezione magazzino (F8 su tm-mag)
WIN137 Dettaglio per cliente del gruppo selezionato
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.
  • k-euta-tipo-sot = "AB": tipo cogtabel usato per decodificare le descrizioni gruppo/sottogruppo.
  • 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-ela, euta-c018-mag, euta-c018-imp, euta-c018-stat-ext.
  • COGY06 e COGY03 condividono la struttura cogtrans e larga parte della procedura: COGY03 raggruppa per attributo CRM, COGY06 per gruppo/sottogruppo merceologico.