Vai al contenuto

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 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 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-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.
  • Il programma supporta una modalita' di richiamo da altro programma tramite parametri y03-called, y03-ana-tip, y03-ana-cod (precarica il cliente).