COGY03 - Vendite per Informazione Cliente Potenziale¶
Sorgente: cbl/cogy03.cbl | Program-ID: COGY03 | Tipo: Programma interattivo (estrazione con griglia + export Excel + stampa)
Menu: Statistiche > Vendite per Inf. Cli. Pot.
Scopo¶
Estrae una statistica di vendita raggruppata per il valore di un'informazione anagrafica del cliente potenziale, scelta dall'utente tramite il codice tm-inf-cod. Per ciascun cliente nelle statistiche, il programma legge l'anagrafica CRM (crmananf) e usa il valore di quell'informazione come chiave di raggruppamento. I dati provengono direttamente da cogstati (alimentato da COGY12). Visualizza la griglia su file di transito cogtrans con tre chiavi di ordinamento alternative (codice, nome, importo).
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) |
| CRMANAGR | ISAM | Input | Anagrafica gruppi/clienti potenziali CRM |
| CRMANANF | ISAM | Input | Valori delle informazioni anagrafiche CRM per cliente |
| COGGEANA | ISAM | Input | Anagrafica clienti (decodifica nome) |
| TRAN-COGS96 | ISAM (temp.) | I-O | Buffer agenti dell'operatore |
| FEURTAB | ISAM | Input | Tabella features/abilitazioni utente |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogy03.select, cogy03.fd, cogy03.wrk |
SELECT, FD, working storage (Screens) |
cogy03-01.scr, cogy03.tm, cogy03.prc, cogy03.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) |
utilw133.cpy |
Utility WIN133 (dettaglio cliente) |
utilcrm013.cpy |
Utility CRM013 (selezione codice informazione) |
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, F9 ricerca avanzata, Shift+F4 griglia, Shift+F5 esporta Excel. Carica divisa di conto via COGU10W. Compone il nome di cogtrans come <tmp-dir>/#$COGY03.<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) — solo se tip-mov = "M" (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-inf-cod — codice informazione CRM (F8 = CRM013); decodificato in tm-inf-des/tm-inf-tip/tm-inf-tip-des leggendo tabella iptcli (ipt-des, ipt-tip)
- 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 (se fl-ok-age = "S"), cliente, tipo movimento (T/N/M), gruppo/sottogruppo/codice merce, magazzino.
- carica-gruppo: legge crmanagr per il cliente potenziale, poi crmananf per nnf-specie = "I", nnf-inf = tm-inf-cod, nnf-cod = cra-cod. Il valore nnf-dato diventa a1-gruppo. Se non trovato: "Gruppo non definito".
- 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: codice/nome gruppo, quantita', importo, val. FIFO, differenza, percentuale sul totale, totale fatturato. F8 (con tasto-premuto = k-f7) apre WIN133 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 |
CRM013 |
Selezione codice informazione anagrafica CRM (F8 su tm-inf-cod) |
WIN036 |
Selezione magazzino (F8 su tm-mag) |
WIN133 |
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 massimatm-tabcome buffer in memoria; la griglia vera e' sucogtranspaginato.- Il file
cogtranse' per-operatore (wo-opernel nome) per evitare conflitti. - Il commento iniziale nel sorgente ("Statistiche fatturato x gruppo/sottogruppo") e' residuo della clonazione da COGY06: il programma e' invece dedicato al raggruppamento per informazione CRM.
- A differenza di COGY15, questo programma non passa da
tran-cogs96per le righe statistiche: legge direttamentecogstati. COGS96 e' usato solo come filtro agenti. - Configurazioni rilevanti (gruppo
STATSTPARA):euta-c018-ela,euta-c018-mag,euta-c018-imp,euta-c018-stat-ext. - Il programma supporta una modalita' di richiamo da altro programma tramite parametri
y03-called,y03-ana-tip,y03-ana-cod(precarica il cliente).