COGEA2 - Orari Standard di Apertura¶
Sorgente: cbl/cogea2.cbl | Program-ID: COGEA2 | Tipo: gestione tabella a griglia
Menu: Contabilita' > Archivi & Tabelle > Varie > Orari standard di apertura
Scopo¶
COGEA2 gestisce gli orari di apertura settimanali associati a un cliente/destinazione. Per ogni combinazione cliente+destinazione (o solo cliente, o standard di azienda senza cliente), si definiscono fino a tre fasce orarie (INI1/FIN1, INI2/FIN2, INI3/FIN3) per ciascuno dei 7 giorni della settimana (Lunedi'...Domenica). Gli orari sono memorizzati su COGORARI. Il programma supporta la modalita' richiamata da altri moduli (cogea2-called = "COGEA2-CALLED") con cliente e destinazione passati in linkage. Al salvataggio, notifica la sincronizzazione con KPN tramite SWN122.
File e tabelle¶
| File/Tabella | Copybook | Modalita' | Uso |
|---|---|---|---|
| FEURTAB | feurtab.fd, cogfiles.cpy |
input | Tabella file environment |
| COGORARI | cogea2.select, cogea2.fd (via Screens) |
i-o | Orari di apertura per cliente/destinazione/giorno |
| COGGEANA | (via x-controlla-tm-cli-cod) |
input | Anagrafica cliente (verifica esistenza, nome) |
| COGDESTI | (via x-controlla-tm-dst-idx) |
input | Destinazioni cliente (descrizione) |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestore griglia (prepare, add-record, modify-record, svuota-tutto) |
| COGS65W | Ricerca/accettazione cliente (campo tm-cli-cod, con F8/F9 helper) |
| SWN122 | Sincronizzazione dati con KPN (operazione ESPORTA-KEY) |
Copybook principali¶
Screen Designer / gestione griglia:
- cogea2.select, cogea2.fd, cogea2.wrk, cogea2.prc, cogea2.decla, cogea2-01.scr (generati da Screens)
- wgrid.cpy, utilgdad.cpy, utilgrid.cpy
Linkage:
- wcont.cpy, wcont1.cpy, utilcogea2.cpy (parametri: cogea2-called, cogea2-caller, cogea2-ana, cogea2-dst)
Utility:
- utils93.cpy (input orario hh:mm via z-s93-tm-ini1 etc.)
- utils65.cpy (ricerca cliente via COGS65W)
- utilw92.cpy, sendw92.cpy (ricerca destinazione tramite F8, helper send-w92)
- utilncnf.cpy (RNEWCONF, presente in working storage)
- utilagprg.cpy (area util-agprg per chiamata SWN122)
Gestionale standard:
- wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy
- stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy
- cogorari.k01 (chiave primaria COGORARI -- inclusa da cogea2.prc)
Logica di elaborazione¶
Avvio: z-99-init-program, apertura file, lettura azienda. Se richiamato, carica cliente e destinazione da linkage (w-dc-called = "S", w-dc-ana, w-dc-dst) e salta direttamente alla conferma (a-fine-conferma).
Selezione cliente/destinazione (a-tm-cli-cod / a-tm-dst-idx): in modalita' autonoma, l'operatore digita il codice cliente (accept via COGS65W con helper F8/F9). Il campo destinazione accetta un indice numerico; F8 apre il helper send-w92 (popup ricerca destinazioni per cliente). Entrambi i campi vengono convalidati (x-controlla-tm-cli-cod su COGGEANA, x-controlla-tm-dst-idx su COGDESTI). F3 richiede conferma (acc-conf) prima di procedere.
Caricamento orari (a-rd-tab): ricerca a cascata su COGORARI:
1. primo tentativo con cliente+destinazione;
2. secondo tentativo con solo cliente (destinazione azzerata);
3. terzo tentativo con cliente e destinazione azzerati (orari standard azienda).
Il primo insieme di orari trovato viene caricato in tm-ini1/fin1/ini2/fin2/ini3/fin3 (per i=1..7, corrispondenti a LU/MA/ME/GI/VE/SA/DO).
Griglia (a-grid / a-accept-grid): 7 righe fisse (una per giorno della settimana), sola modifica (non inserimento/cancellazione singola riga). Invio apre il dettaglio della riga selezionata.
Dettaglio riga (a-riga-dettaglio): accept sequenziale di fino a 6 orari (INI1, FIN1, INI2, FIN2, INI3, FIN3) tramite z-s93-tm-* (COGS93). La convalida (x-controlla-tm-ini*/fin*) verifica che le ore siano <= 24 e i minuti siano multipli di 15 (0, 15, 30, 45). F3 conferma il dettaglio e aggiorna la riga in griglia (senza ancora scrivere su file).
Aggiornamento (F3 da griglia -- c-aggiorna): previo acc-conf generale, cancella tutti i record esistenti su COGORARI per il cliente/destinazione (c1-cancella), poi riscrive tutti e 7 i giorni con 3 progressivi ciascuno (per tot. 21 record wr-cogorari). Infine chiama x-sincronizza-kpn che invoca SWN122 con operazione ESPORTA-KEY passando la chiave orario.
Cancellazione (F4 da griglia -- c1-cancella standalone): cancella tutti i record COGORARI per il cliente/destinazione corrente, senza reinserire.
Configurazioni RNEWCONF¶
Il copybook utilncnf.cpy e' incluso nel working storage, ma nel sorgente letto non risultano chiamate esplicite a util-ncnf o letture di chiavi RNEWCONF. La sua presenza potrebbe essere residua o usata indirettamente da copybook inclusi.
Note¶
- La griglia e' sempre a 7 righe fisse (k-max-ele-tab = 7), una per giorno; non e' possibile aggiungere o rimuovere righe.
- I minuti accettati sono solo multipli di 15: il controllo e' esplicito in
x-controlla-tm-ini1e simili. - Il programma non distingue fra orari di tipo "apertura" e "chiusura": INI e FIN sono tre fasce per giorno, interpretate liberamente.
- COGORARI usa la chiave primaria
cogorari.k01(inclusa tramitecogea2.prc); la chiave secondariacogorari.k02e' presente incpy/ma non inclusa esplicitamente nel sorgente. - SWN122 viene chiamato con
on overflow continue(protezione se il modulo non e' presente) e concanceldopo la chiamata.
Documentazione tecnica generata -- 2026-07-15