COGV03 - Causali Bolle¶
Sorgente: cbl/cogv03.cbl | Program-ID: COGV03 | Tipo: Programma interattivo (standalone, gestione tabella con maschera Screens)
Menu: Magazzino > Archivi & Tabelle > Tabelle > Causali Bolle
Scopo¶
Manutenzione della tabella delle causali di bolla/movimento. Consente inserimento, variazione e cancellazione di una causale identificata da un codice numerico a due cifre. Ogni causale definisce il comportamento del movimento di magazzino: tipo (interno/esterno/utile), magazzino associato, natura anagrafica (cliente/fornitore), incidenza su fatturazione, giacenza, valorizzazione e prezzi medi, gestione conto visione, conto lavorazione, riparazione, sostituzione, movimentazione di commessa (segno, giacenza, costo, ricavo), magazzino secondario, tipo fatturazione attiva, benestare, causale collegata, codice host e abilitazione allo shop. I dati sono memorizzati come record della tabella generica COGTABEL (tipo causale bolla), tramite l'area euta-rec.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indexed | Input | Tabella dei nomi fisici dei file (risoluzione path) |
| COGTABEL | Indexed | I-O | Tabella generica; qui usata per le causali di bolla (tipo k-euta-tipo-causale-bolla = 15) e i tipi fatturazione (tipo k-euta-tipo-fat = "FL") |
| COGMAGAZ | Indexed | Input | Anagrafica magazzini (verifica codice magazzino e descrizione) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd | SELECT tabella nomi file |
| cogv03.select | SELECT dei file gestiti (include cogtabel.fd, cogmagaz.fd) |
| cogfiles.cpy | FD tabella nomi file FEURTAB |
| cogv03.fd | FD dei file gestiti (generato Screens) |
| cogv03.wrk | Working-storage generato Screens (variabili maschera, x-enabled/x-visible, s-msg) |
| k-personal.cpy | Costanti/flag di personalizzazione |
| k-tipi-cogtabel.cpy | Costanti tipi record COGTABEL (k-euta-tipo-causale-bolla, k-euta-tipo-fat) |
| wgrave.cpy | Gestione errori gravi |
| wnscr.cpy | Dati schermo |
| wopenf.cpy | Apertura file |
| wstato.cpy | Stato I/O |
| cogazien.cpy | Dati azienda (az-tessile, az-personal) |
| utilw36.cpy | Linkage WIN036 (ricerca magazzini) |
| utilw01.cpy | Linkage WIN001 (ricerca causali) |
| utily68.cpy | Linkage COGY68 (aiuto tipi fatturazione) |
| utilncnf.cpy | Linkage RNEWCONF (lettura configurazioni) |
| wcont.cpy | Linkage stringhe comuni |
| wcont1.cpy | Linkage area utente 2 |
| cogv03-01.scr | Screen section (maschera Screens) |
| cogv03.decla | Declaratives (gestione errori I/O) |
| grave.cpy | Paragrafi errori gravi |
| mmmask.cpy | Paragrafi init/exit programma (z-99-init-program/z-99-exit-program) |
| opengen.cpy | Apertura file e lettura FEURTAB |
| stato.cpy / stato1.cpy | Controllo stato I/O |
| winmsg.cpy | Messaggi a video |
| cogv03.prc | Procedure generate Screens (accesso dati, helper s60/s95, READLNG); include cogtabel.k01 e cogmagaz.k01 |
| sendw36.cpy | Chiamata WIN036 |
| sendw01.cpy | Chiamata WIN001 |
| cogtabel.k01 | Accesso COGTABEL per chiave primaria (rd/wr/rwr/del) |
| cogmagaz.k01 | Accesso COGMAGAZ per chiave primaria |
Logica di elaborazione¶
- Inizializzazione (
apri): imposta program-id, eseguez-99-init-program, controlla abilitazioni (ctr-abil), legge le configurazioni tramitex99-confi(RNEWCONF), legge i dati azienda (rd-azi) e apre i file. Definisce i tasti funzione disponibili (F1 configura, F3 conferma/aggiorna, F4 cancella, F8 aiuto, Shift-F1 copia-da). In base ad azienda (az-tessile = "S"oaz-personal = "OM") abilita il campo "Conto lavorazione" (fl-cau-lav-enabled). Carica lingua e costruisce i controlli s60. La configurazioneGRUPPO-AZIENDEviene letta intm-cfg-gruppo-aziende. - Nuova iterazione (
a4): reset della maschera, inizializzazionetab-maschera, disattivazione tasti di aggiornamento, attivazione F3-conferma. - Input codice (
a-tm-codice): accept del codice causale. F8 apre la ricerca causali (WIN001 viasend-w01), F1 riapre la configurazione, F3 conferma la chiave. Il codice non puo' essere zero. - Determinazione modalita' (
a-fine-chiave): legge COGTABEL con tipo causale bolla e codice inserito (rd-cogtabel-lk). Se il record esiste imposta variazione (fl-vario = "V") e carica i dati (carica-dati) abilitando la cancellazione; altrimenti inserimento (fl-vario = "I") con valori di default (carica-default). - Input dati: sequenza di accept sui singoli campi (descrizione, tipo, magazzino, tipo fatturazione, cliente/fornitore, considera in fattura/giacenza/valorizzazione/solo-valorizzazione/prezzi medi, conto visione, riparazione, shop, sostituzione, magazzino secondario, conto lavorazione, segno/giacenza/costo/ricavo commessa, causale collegata, codice host, benestare). Ogni campo ha un paragrafo di controllo
x-controlla-*che colora il controllo e impostax-f3-ok-parziale. La navigazione avanti/indietro usa F2/F3 ed e' guidata dai flagx-enabled-*/x-visible-*; lo spostamento col mouse e' gestito dax-test-mouse. - Abilitazioni dinamiche: in
a-tm-con-giail flag sostituzione (flag-ok-cau-sost) segue "Considero in giacenza"; se la giacenza e' "N" il campo sostituzione viene azzerato.z-cambia-tm-con-val/z-cambia-tm-solo-valabilitano valorizzazione e solo-valorizzazione solo con giacenza attiva;z-cambia-tm-cau-clavmostra/nasconde il conto lavorazione secondofl-cau-lav-enabled. - Controlli incrociati (
x-controlla-dati): validazioni di coerenza, tra cui: cliente/fornitore vs prezzi medi (tm-con-pm), magazzino esistente in COGMAGAZ, tipo fatturazione esistente in COGTABEL (tipo "FL"), causale collegata esistente e di segno opposto, modifica costo commessa in {N,F,V}, coerenza magazzino secondario / segno commessa / giacenza commessa. - Conferma e salvataggio (
a-fine-dati): richiede conferma; travasa i campi maschera nel recordeuta-rec(mappatura dei flag S/N in "SI"/"NO", conversionetm-con-pmin "NO"/V/A/AM/U, ecc.), verifica le abilitazioni operatore (w-abi-ins/w-abi-agg) e scrive il record:wr-cogtabelin inserimento,rwr-cogtabelin variazione. Al termine eseguea-sincronizza-aziende-gruppo(effettuaunlock allse la gestione gruppo aziende e' attiva) e torna aa4. - Cancellazione (
cancella): verifica abilitazione (w-abi-del), richiede conferma, rilegge il record in lock (rd-cogtabel-lk) ed eseguedel-cogtabel. - Chiusura (
fine/z-chiudi): chiude i file, la finestra e il programma (z-99-exit-program).
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazioni (contabil/tipi-doc-per-causale, ABILITA/GRUPPO-AZIENDE) |
| COGY68 | Aiuto/selezione codice tipi fatturazione attiva |
| WIN001 | Popup ricerca causali di bolla (via send-w01) |
| WIN036 | Popup ricerca magazzini (via send-w36) |
| COGS60W | Gestione controlli a scelta (helper s60, da cogv03.prc) |
| COGS95 | Gestione controlli SI/NO (helper s95, da cogv03.prc) |
| READLNG | Caricamento etichette/lingua della maschera (da cogv03.prc) |