COGM57 — Gruppi Sconto x Cliente¶
Sorgente: cbl/cogm57.cbl | Tipo: Programma interattivo a griglia (gestione tabella) | Program-ID: COGM57
Menu: Contabilita' > Archivi & Tabelle > Varie > Gruppi Sconto x Cliente
Scopo¶
Gestisce in griglia l'assegnazione dei gruppi sconto ai clienti. Presenta l'elenco dei clienti (ordinabili per codice o nome) con fino a 30 codici di gruppo sconto per riga; l'operatore modifica direttamente in griglia i gruppi sconto associati a ciascun cliente e con F3 aggiorna in massa la tabella COGANAGS. Puo' inoltre limitare la lavorazione a un sottoinsieme di clienti selezionati tramite ricerca (COGE08R) e aprire la gestione del singolo gruppo sconto (COGM39) con F5.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGANAGS | coganags.cpy |
Collegamento anagrafica/gruppo sconto. Chiave ags-chia1 = tipo anagr. + codice + tipo gruppo sconto (ags-gs-tip) + codice (ags-gs-cod). Qui i record hanno ags-gs-tip = "G" (gruppo sconto su COGSCONT); ags-val = "C" = cancellato logicamente |
| COGANCAP | (in feurtab / cogm57.fd) |
Record di appoggio anagrafico per cliente (anc-rec), aggiornato in coda all'assegnazione gruppi |
| COGGEANA | (in feurtab) | Anagrafica clienti (ana-tipo = "C"), sorgente per il caricamento della griglia |
| COGTRANS | (FD inline) | File indicizzato di transito per la griglia: nome temporaneo univoco per operatore, con chiave trs-chia1 (id) e trs-chia2; contiene cliente, nome e i 30 codici gruppo (trs-gru1..trs-gru30) |
| TRAN-E08 | tran-e08.cpy / tran-e08.fd |
File di transito prodotto dalla ricerca clienti (COGE08R), letto in modalita' selezione "R" |
| feurtab | cogfiles.cpy |
Contenitore file indicizzati standard |
Flusso principale¶
apri(main): init, apertura file, composizione del nome del transito#$COGE08.<operatore>(per la ricerca) e del transito griglia#$trs_cogm57-...univoco.a4: reset griglia, impostazione ordinamento (tm-ord= "C" codice / nome) e modalita' selezione (tm-sel= "T" tutti / "R" ricerca).- Accept di ordinamento (
a-tm-ord), selezione (a-tm-sel) e cliente (a-tm-cli-da, aiuto viaCOGS65W). In modalita' "R" chiama COGE08R (e08r-i-tip = "C") per la ricerca clienti; se l'utente conferma con F5, i clienti selezionati vengono letti dal fileTRAN-E08. a-inizio-elab: crea/apre il file di transitoCOGTRANS(gestione errore 93 = funzione gia' in uso con stesso operatore) e carica i clienti (carica-fileda COGGEANA, oppurecarica-file-rda TRAN-E08).carica-tab: popola la griglia dal transito.a-grid: gestione interattiva; F5 apre COGM39 sul gruppo sconto della cella corrente; sF4 personalizza griglia (GRIDADMN); sF5 esporta in Excel; F3 conferma e lancia l'aggiornamento.
Caricamento gruppi sconto (rd1-gruppi)¶
Per ogni cliente caricato nel transito, rd1-gruppi legge da COGANAGS (st-coganags-notmin / rdnxt-coganags) i record con ags-ana-tip = "C", ags-ana-cod = cliente, ags-gs-tip = "G" e ne trasferisce fino a 30 codici (ags-gs-cod) nei campi trs-gru1..trs-gru30 del record di transito.
Aggiornamento (a1-aggiorna)¶
perform a1-aggiorna thru ex-a1 scorre il transito (st-cogtrans-notmin-chia2 / rdnxt-cogtrans) e per ogni cliente:
c1-delete: marca come cancellati logicamente (ags-val = "C",rwr-coganags) tutti i gruppi sconto tipo "G" preesistenti del cliente;- per ogni
trs-gruNnon vuoto reinserisce/aggiorna il record suCOGANAGS(rd-coganags, poiwr-coganagsorwr-coganags); - aggiorna il record di appoggio
COGANCAP(rd-cogancap→wr-cogancap/rwr-cogancap) quando ci sono state modifiche (w-fl-ins/w-fl-del).
I commenti nel sorgente (marcatore 150318) documentano che la gestione e' stata migrata dalla vecchia tabella COGCNDCF (record tipo "GC") all'attuale COGANAGS con ags-gs-tip = "G".
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGE08R | Ricerca clienti; produce il file TRAN-E08 con la selezione |
| COGM39 | Gestione del singolo gruppo sconto (F5), chiamato con m39-called = "COGM39-CALLED" e m39-gru |
| COGS65W | Aiuto/ricerca cliente |
| COGS60 | Gestione combo ordinamento/selezione |
| GRIDADMN | Configurazione/personalizzazione griglia |
| COGU10W | Divisa di conto |
Note¶
- Il file di transito
COGTRANSviene chiuso e cancellato (delete file cogtrans) alla chiusura del programma; ancheTRAN-E08viene chiuso se era in uso (modalita' "R"). - In chiusura vengono reimpostati i binding di tastiera per i tasti freccia sinistra/destra (
set environment "KEYSTROKE"), tipico dei programmi con griglia editabile. - L'area di linkage
util-m39e' ridefinita suuser-area(wcont.cpy) per passare i parametri a COGM39.