Vai al contenuto

COGA02 - Reparti Cassa (gestione)

Panoramica

Programma interattivo GUI per la gestione della tabella Reparti Cassa (COGTABEL con euta-tipo = 50). Presenta i reparti in una griglia con possibilita' di inserimento, modifica e cancellazione. Supporta la modalita' di selezione quando richiamato da altri programmi tramite linkage (util-a02).

Posizione nel menu

Menu Percorso
Magazzino Archivi & Tabelle > Tabelle > Reparti Cassa

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema
COGTABEL I-O Tabella generica — usa tipo 50 (reparti cassa) e tipo 67 (per validazione codice IVA)

Chiave COGTABEL utilizzata

La chiave primaria di COGTABEL e' composta da euta-tipo + euta-cod. Per i reparti cassa:

  • euta-tipo = 50 (costante k-euta-tipo)
  • euta-codr = codice numerico del reparto (redefines di euta-cod)

Campi del record (redefines euta-rep-dati)

Campo Tipo Descrizione
euta-rep-des x(30) Descrizione del reparto cassa
euta-rep-cod-iva x(02) Codice IVA associato al reparto

Copybook principali

Copybook Descrizione
coga02.select SELECT dei file
coga02.fd File Description
coga02.wrk Working storage generata
coga02.decla Declaratives
coga02.prc Procedure generate (open/close/read/write/rewrite/delete su COGTABEL)
coga02-01.scr Screen section
feurtab.fd SELECT tabella di sistema
cogfiles.cpy FD record FEURTAB
cogazien.cpy Dati azienda
wgrid.cpy Gestione griglia
utilgdad.cpy Interfaccia GRIDADMN
utile22.cpy Interfaccia COGE22
utile67.cpy Interfaccia COGE67 (ricerca codice IVA)
utila02.cpy Linkage per modalita' selezione (a02-called, a02-caller, a02-out-cod, a02-out-des)
wcont.cpy / wcont1.cpy Linkage standard (stringhe)

Chiamate a sottoprogrammi (CALL)

Programma Scopo
GRIDADMN Gestione griglia avanzata (preparazione, personalizzazione, aggiunta/modifica record, svuota)
COGE67 Ricerca codice IVA (attivata con F8 sul campo codice IVA)

Variabili chiave

Variabile Tipo Descrizione
tab-maschera 01 Tabella interna con tutti i reparti caricati (occurs k-max-ele-tab = 900)
tm-ele (i) gruppo Singola riga: tm-cod (9(03)), tm-des (x(30)), tm-cod-iva (x(02))
tm-pnt 9(04) Numero di righe caricate
a-operazione x(01) "I" = inserimento, "M" = modifica
a-modalita x(01) "S" = selezione, "A" = aggiornamento
w-dc-called x(01) "S" se il programma e' stato richiamato in modalita' selezione
grid-record 01 Record di scambio con la griglia (grd-cod, grd-des, grd-cod-iva)

Flusso operativo

1. Inizializzazione (apri)

  • Inizializza il programma, controlla abilitazioni operatore
  • Legge dati azienda (rd-azi), apre i file
  • Verifica se e' stato richiamato in modalita' selezione tramite util-a02: se a02-called = k-program-id e a02-caller non vuoto, imposta w-dc-called = "S"
  • Configura i tasti funzione disponibili; se in modalita' selezione attiva anche F3 per il toggle selezione/aggiornamento
  • Prepara la griglia (z-prepara-tm-grid) e la configurazione colonne tramite GRIDADMN

2. Caricamento dati (a10 -> a30)

  • Posiziona su COGTABEL con euta-tipo = 50, legge sequenzialmente tutti i record con tipo 50
  • Carica i dati in tab-maschera fino a un massimo di 900 righe
  • Se la tabella e' piena, avvisa e tronca
  • Costruisce la griglia (z-costruisci-grid) tramite GRIDADMN

3. Griglia (a-grid -> a-accept-grid)

  • In modalita' aggiornamento (a-modalita = "A"):
    • Invio/Doppio clic: apre la riga in modifica
    • Ctrl+A: aggiunge una nuova riga
    • Ctrl+E: elimina la riga selezionata (con conferma)
    • Shift+F4: personalizzazione colonne griglia
  • In modalita' selezione (a-modalita = "S"):
    • Invio/Doppio clic: restituisce codice e descrizione del reparto selezionato (a02-out-cod, a02-out-des) e chiude
    • F3: passa a modalita' aggiornamento

4. Dettaglio riga (a-riga-dettaglio)

  • In modifica: blocca il record con rd-cogtabel-lk
  • In inserimento: abilita il campo codice (normalmente disabilitato in modifica)
  • Accept sequenziale dei campi: codice reparto, descrizione, codice IVA
  • Navigazione con F2 (indietro), ESC (annulla modifiche riga)
  • Sul campo codice IVA: F8 richiama COGE67 per la ricerca

5. Validazione e salvataggio (a-riga-dettaglio-fine)

  • Esegue x-imposta-conferma: verifica che codice sia valorizzato, descrizione non vuota, codice IVA valido (se presente, verifica esistenza su COGTABEL tipo 67)
  • Chiede conferma all'operatore
  • Gestisce i casi limite: se in inserimento ma il codice esiste gia', esegue rewrite; se in modifica ma il codice non esiste piu', esegue write
  • Scrive/riscrive il record su COGTABEL e aggiorna la griglia

6. Cancellazione (c-cancella)

  • Legge il record con lock (rd-cogtabel-lk)
  • Se non esiste piu', avvisa e interrompe
  • Esegue del-cogtabel, poi ricompatta la tabella interna e ricostruisce la griglia

7. Chiusura (fine -> z-chiudi)

  • Chiude COGTABEL e la finestra, esce dal programma

Note tecniche

  • Il programma usa PERFORM ... THRU in due punti (c1-ctrl-canc thru ex-c1 e c-cancella thru ex-c) per gestire l'uscita anticipata dai paragrafi di cancellazione.
  • La validazione del codice IVA avviene leggendo COGTABEL con euta-tipo = 67.
  • Il resize della finestra viene gestito in z-99-event-form per ricalcolare la dimensione della griglia.
  • La griglia supporta mass-update per il caricamento efficiente dei dati.