COGG15 - Gestione raccordo Cantieri/Commesse¶
Sorgente: cbl/cogg15.cbl | Tipo: Programma interattivo GUI con griglia e dettaglio riga | Program-ID: COGG15
Menu:
- Magazzino > Archivi & Tabelle > Cantieri > Collegamento Commesse
- Vendite > Commesse > Tabelle > Colleg. Cantieri/Commessa
Scopo¶
Gestisce il raccordo (collegamento molti-a-molti) tra commesse (COGTESCM) e cantieri / magazzini secondari (COGMAGPE) memorizzato nella tabella di raccordo COGCMMGP. L'operatore sceglie una modalita' di lavoro:
- C = per Commessa: fissata una commessa, elenca e modifica i cantieri ad essa collegati;
- (modalita' speculare) per Cantiere: fissato un cantiere, elenca e modifica le commesse ad esso collegate.
I collegamenti selezionati vengono caricati in una griglia editabile riga per riga (inserimento, modifica, cancellazione); alla conferma il programma riallinea COGCMMGP scrivendo i nuovi raccordi e cancellando quelli non piu' presenti in griglia.
Il programma puo' essere richiamato da un altro modulo (g15-called = "COGG15-CALLED"): in tal caso mostra i dati con cui e' stato invocato e, se g15-tipo-vis = "S", funziona in modalita' selezione (l'operatore sceglie una riga con Invio e il codice viene restituito al chiamante in g15-mgp-cod o g15-tsc-cod).
Il tipo magazzino secondario e' fissato a "C" (fl-mgp-tip = "C", cantieri).
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
apri): apertura file,z-99-init-program, lettura azienda, abilitazione tasti funzione, preparazione griglia (z-prepara-tm-grid), costruzione controlli, lettura configurazione RNEWCONF (x99-confi). - Reset / sezione parametri (
a4): inizializzatab-maschera, imposta tipo "C"; se richiamato conCOGG15-CALLEDporta subito i dati e salta aa-inizio-dati. - Accept filtri (
a-tm-tipo,a-tm-tsc-cod,a-tm-mgp-cod): tipo ricerca, commessa (via COGU35W), cantiere (via COGS66W). Navigazione F2 / F3 / mouse (x-test-mouse). - Conferma (
a-conferma-dati,x-imposta-conferma): validazione dei campi. - Caricamento (
a-inizio-dati): in base atm-tipoeseguecarica-cantieriocarica-commessescandendo COGCMMGP. - Griglia (
a-grid/a-accept-grid): visualizza e permette inserimento (Ctrl-A), modifica (Invio), cancellazione (Ctrl-E) delle righe; Shift-F4 personalizza colonne. - Aggiornamento (
aggiorna): alla conferma F3 scrive/riscrive i raccordi e rimuove i non piu' presenti.
Caricamento collegamenti¶
carica-cantieri: scandisce COGCMMGP per chiave primaria (cmm-tsc= commessa,cmm-mgp-tip= "C"); per ogni cantiere collegato risolve la descrizione da COGMAGPE.carica-commesse: scandisce COGCMMGP per chiave secondaria (.k02,cmm-mgp-tip+cmm-mgp-cod); per ogni commessa collegata risolve la descrizione da COGTESCM.
Entrambi i loop hanno un limite di k-max-ele-tab = 500 elementi (messaggio "Tabella piena" al superamento).
Aggiornamento (aggiorna-cant / aggiorna-comm)¶
- Scrittura: per ogni riga non vuota della griglia esegue
wr-cogcmmgpe, se il record esiste gia',rwr-cogcmmgp. - Cancellazione (
aggiorna-cant-del/aggiorna-comm-del): riscandisce COGCMMGP per la commessa/cantiere corrente; ogni raccordo non piu' presente in griglia viene eliminato condel-cogcmmgp.
Modalita' selezione (richiamo da altro programma)¶
In a-accept-grid, se g15-called = "COGG15-CALLED" e g15-tipo-vis = "S", l'Invio su una riga copia tm-cod (i) in g15-mgp-cod (tipo "C") o g15-tsc-cod (altri tipi) e torna al chiamante (fine).
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema |
| COGCMMGP | primaria cmm-tsc+cmm-mgp-tip+cmm-mgp-cod; secondaria .k02 |
Raccordo commesse - cantieri/magazzini secondari (tabella centrale del programma) |
| COGTESCM | tsc-cod |
Testata commesse (descrizione breve tsc-des-breve) |
| COGMAGPE | mgp-tip+mgp-cod |
Magazzini secondari / cantieri (descrizione mgp-nome) |
COPY incluse¶
Working-Storage¶
cogg15.wrk, wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilncnf.cpy, utilu35w.cpy, utils66.cpy, utilgdad.cpy, utilw52.cpy
Linkage¶
wcont.cpy, utilg15.cpy (parametri di chiamata: g15-called, g15-tipo-vis, g15-tsc-cod, g15-mgp-cod), wcont1.cpy
Procedure Division¶
cogg15.decla, cogg15-01.scr (screen), stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, cogcmmgp.k02, call-u35.cpy, utilgrid.cpy, cogg15.prc
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGU35W | Accept/lookup del codice commessa (call-u35-prepare-tutte, call-u35-accept, call-u35-cancel) |
| COGS66W | Accept/lookup del codice cantiere / magazzino secondario |
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record, personalizzazione colonne) |
| RNEWCONF | Lettura configurazioni |
Configurazioni RNEWCONF¶
Lette in x99-confi (pacchetto "C", file COMMESSE.CNF, 2 chiavi):
| Chiave | Variabile | Descrizione |
|---|---|---|
| TIPO-NUMERAZIONE-COMMESSE | tm-cfg-tip-num-tsc |
Tipo numerazione commesse |
| TIPO-NUMERAZIONE-SOTTOCOMMESSE | tm-cfg-tip-num-sot |
Tipo numerazione sottocommesse |
(Il vecchio ramo con READCONF e' commentato nel sorgente e sostituito da RNEWCONF.)
Note tecniche¶
- La griglia usa
GRIDADMNcongdad-forza-custom = "F"e personalizzazione per programma (w-prg-pers = k-program-id). - Il tipo magazzino secondario e' fisso su "C" (cantieri):
fl-mgp-tipnon viene mai cambiato nel flusso. - I controlli anti-duplicato (
x-controlla-tm-cod,x-controlla-tm-cod-5) impediscono di inserire due volte la stessa commessa o lo stesso cantiere nella griglia. - L'aggiornamento e' idempotente: prima scrive/riscrive tutte le righe presenti, poi elimina da COGCMMGP i raccordi non piu' in griglia (delta effettivo tra stato a video e archivio).