Vai al contenuto

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

  1. apri (main): init, apertura file, composizione del nome del transito #$COGE08.<operatore> (per la ricerca) e del transito griglia #$trs_cogm57-... univoco.
  2. a4: reset griglia, impostazione ordinamento (tm-ord = "C" codice / nome) e modalita' selezione (tm-sel = "T" tutti / "R" ricerca).
  3. Accept di ordinamento (a-tm-ord), selezione (a-tm-sel) e cliente (a-tm-cli-da, aiuto via COGS65W). 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 file TRAN-E08.
  4. a-inizio-elab: crea/apre il file di transito COGTRANS (gestione errore 93 = funzione gia' in uso con stesso operatore) e carica i clienti (carica-file da COGGEANA, oppure carica-file-r da TRAN-E08).
  5. carica-tab: popola la griglia dal transito.
  6. 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:

  1. c1-delete: marca come cancellati logicamente (ags-val = "C", rwr-coganags) tutti i gruppi sconto tipo "G" preesistenti del cliente;
  2. per ogni trs-gruN non vuoto reinserisce/aggiorna il record su COGANAGS (rd-coganags, poi wr-coganags o rwr-coganags);
  3. aggiorna il record di appoggio COGANCAP (rd-cogancapwr-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 COGTRANS viene chiuso e cancellato (delete file cogtrans) alla chiusura del programma; anche TRAN-E08 viene 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-m39 e' ridefinita su user-area (wcont.cpy) per passare i parametri a COGM39.