COGK34 - Gestione Contratti Revisioni¶
Scopo¶
Gestione contratti di revisione: associa a ogni cliente del Centro Revisioni un numero di revisioni in omaggio (app-n-rev-omaggio). I dati sono memorizzati nella tabella COGAPPOG (record di appoggio) con app-tipo = "C" e codice cliente nel range 1-999.
Il programma supporta anche la modalita' "selezione" se richiamato da un altro programma (vedi w-dc-called), ma il blocco di valorizzazione in apri lascia w-dc-called non popolato — di fatto si comporta sempre come standalone in aggiornamento.
Menu¶
Vendite > Centro Revisioni > Tabelle > Contratti
File e tabelle¶
| File | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Parametri | File parametri di ambiente |
| COGGEANA | Indicizzato | Anagrafica generale; usata per ana-tipo = "C", lettura nomi clienti e scan iniziale |
| COGAPPOG | Indicizzato | Record di appoggio; chiave app-tipo+app-cod, campo gestito app-n-rev-omaggio |
Copybook¶
File e select¶
feurtab.fd,cogfiles.cpycogk34.select,cogk34.fd,cogk34.wrkcogk34-01.scr,cogk34.decla,cogk34.prc
Working-storage standard¶
wstato.cpy,wgrave.cpy,wgrid.cpy,wopenf.cpy,wnscr.cpy,cogazien.cpy
Utility¶
utilgdad.cpy,utils65.cpy,utilu10.cpy,utilu20.cpy,utilgrid.cpyk-u10.cpy
Linkage¶
wcont.cpy,wcont1.cpy
Procedure finali¶
stato.cpy,stato1.cpy,winmsg.cpy,grave.cpy,opengen.cpy,mmmask.cpy,GetDCont.cpy
CALL¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia (Prepara, Add-Record, Modify-Record, Svuota-Tutto) |
| COGS65W | Ricerca/validazione anagrafica cliente (call-s65 per tm-r-cli) |
| COGU10W | Editing numerici (chiamato in z-u10) |
Logica di elaborazione¶
- Inizializzazione (
apri): apre file, legge azienda, impostaa-modalita = "A". - Caricamento iniziale (
a10/a10-loop): scan COGGEANA tipo "C" concod <= 999; per ogni cliente legge COGAPPOG conapp-tipo="C"; seapp-n-rev-omaggio> 0, aggiunge la riga atab-maschera(max 999). - Visualizzazione griglia (
a30): se ci sono righe, costruisce la griglia; altrimenti entra direttamente ina-riga-dettaglioper inserimento. - Loop principale (
a-accept-grid): - F3 in modalita' "A" → richiede conferma e chiama
aggiorna - Invio → modifica riga (
a-riga-dettagliocona-operazione="M") - CTRL+A → inserimento (
a-riga-dettagliocona-operazione="I") - CTRL+E → cancellazione riga locale
- Riga dettaglio (
a-riga-dettaglio,a-tm-r-cli,a-tm-rev): accept di codice cliente (validato con COGS65W erd-coggeana) e numero revisioni; cliente > 999 rifiutato; duplicati rifiutati. - Aggiornamento (
aggiorna): cancella-appog: scan COGAPPOG tipo "C" cod <= 999 → azzeraapp-n-rev-omaggiosu tutti (rwr-cogappog)scrivi-appog: per ogni riga della tabella in memoria, legge/scrive COGAPPOG e impostaapp-n-rev-omaggio = tm-rev
Struttura dati in memoria¶
tab-maschera:
tm-pnt PIC 9(04)
tm-tab (occurs 999):
tm-r-cli PIC 9(05)
tm-r-nome PIC X(40)
tm-rev PIC 9(02)
Note tecniche¶
- Programma legacy: usa
GO TOePERFORM ... THRUnon conformi alle convenzioni attuali. - Logica di update "distruttiva": azzera prima tutti i contratti, poi riscrive quelli presenti in griglia — semplifica la gestione delle cancellazioni ma comporta scrittura di tutti i record cliente.
- Limite hardcoded 999 sul codice cliente (
if ana-cod > 999,if app-cod > 999, controllo inx-controlla-tm-r-cli). - La modalita' "selezione" prevista da
w-dc-callednon viene attivata: il blocco di valorizzazione inizialeif f01-called = k-program-id...e' commentato.