COGI23 - Anagrafica di Base Colture¶
Panoramica¶
Programma interattivo a carattere (maschera testuale su finestra) per la gestione dell'anagrafica di base del modulo "Colture" (gestione centri di costo / commesse agricole). Consente di inserire, modificare e cancellare una voce di anagrafica di base e le attivita' collegate ad essa. Lavora su archivi condivisi con gli altri programmi del sotto-modulo Colture (CICBASTE testate, CICBASRI righe/collegamenti, CICLAVOR tipi attivita').
Il tipo di anagrafica gestita e' determinato internamente da w-tipo: il sorgente lo forza a "4" in apri, quindi la funzione effettiva del programma e' la gestione delle Colture (cic-bas-tipo = 4, "Anagr.Commesse" nel copybook). La maschera e' predisposta per gestire anche gli altri tipi (1=Lavorazioni, 2=Macchine, 3=Risorse), come mostra l'EVALUATE sul titolo, ma nel flusso attuale opera solo sulle Colture. Per ciascuna coltura sono gestiti codice, descrizione, magazzino associato e l'elenco delle attivita' (tipi ore) collegate.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Colture > Archivi di Base > Colture |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file) |
| CICTABEL | I-O | Tabella parametri/numerazioni del modulo Colture |
| CICLAVOR | Input | Anagrafica tipi attivita' (ore/lavorazioni), descrizione per codice |
| CICBASTE | I-O | Anagrafica di base Colture - TESTATA (codice, descrizione, magazzino) |
| CICBASRI | I-O | Anagrafica di base Colture - RIGHE (attivita' collegate alla testata) |
| COGMAGAZ | Input | Anagrafica magazzini (descrizione magazzino associato), letta via COGMAGA2 |
| COGCCOPR | Input | File dichiarato in SELECT/FD (aperto tramite search-file) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| cictabel.fd / cictabel.cpy | SELECT/FD e record CICTABEL |
| ciclavor.fd / ciclavor.cpy | SELECT/FD e record CICLAVOR (tipi attivita') |
| cicbaste.fd / cicbaste.cpy | SELECT/FD e record CICBASTE (testata anagrafica base) |
| cicbasri.fd / cicbasri.cpy | SELECT/FD e record CICBASRI (righe/attivita' collegate) |
| cogmaga2.fd / cogmaga2.cpy | SELECT/FD e record magazzini (COGMAGAZ) |
| cogccopr.fd / cogccopr.cpy | SELECT/FD e record COGCCOPR |
| wstato.cpy / wgrave.cpy / wopenf.cpy / wnscr.cpy | Working storage stato I/O, errori gravi, apertura file, video |
| cogazien.cpy | Dati azienda |
| utili06.cpy | Interfaccia verso COGI06 (help/acquisizione anagrafica di base) |
| utili08.cpy | Interfaccia verso il servizio I08 (sendi08) |
| utilw36.cpy | Interfaccia verso il servizio W36 (help magazzino, sendw36) |
| cogmaga2.k01 / cicbaste.k01 / cicbasri.k01 / ciclavor.k01 | Routine I/O sulle chiavi primarie dei file indicizzati |
| stato.cpy / stato1.cpy / winmsg.cpy / grave.cpy | Gestione stato verbi, messaggi video, errori gravi |
| open1.cpy / openc.cpy | Routine di apertura file (open-files / open-files-ci) |
| mmmask.cpy | Gestione maschera a caratteri (rd-msk-pop, disp-msk, ecc.) |
| dtab.cpy | Gestione tabella video (disp-tab, disp-riga) |
| tstfun1.cpy | Test tasti funzione (wesc, f2, f3, f4, f8, funzio) |
| sendi08.cpy | Routine di chiamata a COGI08 |
| sendw36.cpy | Routine di chiamata al help magazzino (send-w36) |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| COGI06 | Acquisizione/help del codice o descrizione di una voce di anagrafica di base (per tipo w-tipo); ritorna codice, descrizione ed eventuale eccezione tasto |
Il programma include inoltre sendi08.cpy (servizio I08) e sendw36.cpy (help magazzino via send-w36), che incapsulano ulteriori chiamate di servizio.
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Imposta il nome programma per help ed errori, apre i file "normali" (open-files) e i file del modulo Colture (open-files-ci), legge i dati azienda (rd-azi) e forza w-tipo = "4" (Colture). Carica la maschera testuale mm-1 (finestra 8 righe x 58 colonne) e la visualizza con rd-msk-pop.
2. Visualizzazione maschera e acquisizione codice (a4 / a6)¶
Visualizza la maschera e il titolo dinamico in base a w-tipo (per w-tipo=4 mostra "Colture"), le label dei tasti (ESC=Esci). Inizializza tab-maschera e, tramite a1-acqui-tmbase, richiama COGI06 per acquisire il codice della coltura (tm-stm). L'esito di COGI06 (i06-o-esito, i06-cod) determina se procedere (a10), riproporre l'accept o uscire.
3. Lettura testata e attivita' collegate (a10)¶
Con codice e tipo (cic-bas-tipo = w-tipo, cic-bas-cod = tm-stm) legge CICBASTE. Se il record non esiste si va in inserimento (sw-inserimento = "I"). Se esiste, carica descrizione (cic-bas-des), magazzino (cic-bas-mag) e ne recupera la descrizione da COGMAGAZ (tipo "M"). Quindi scandisce CICBASRI (y1-start-cicbasri / a1-car) per raccogliere in tm-tab (max 50 elementi) le attivita' collegate (cic-bri-lav), risolvendone la descrizione da CICBASTE tipo "1" nel loop a-30.
4. Accept dei campi (a-45 / a-48-a)¶
Consente di modificare la descrizione (tm-stm-des) e il codice magazzino (tm-mag), con:
- F2 per tornare indietro nel campo precedente,
- F4 per attivare la cancellazione (b-cancella),
- F8 per l'help magazzino (send-w36), che valorizza magz-cod e ne mostra la descrizione da COGMAGAZ; il codice magazzino viene validato (messaggio "Codice magazzino non Valido").
5. Conferma e aggiornamento (a-50 / a-90)¶
Con acc-conf chiede conferma (F3). In caso affermativo esegue b-aggiorna:
- aggio-cicbaste scrive/riscrive la testata CICBASTE (tipo, codice, descrizione, magazzino) con logica write/rewrite (wr-cicbaste, e se gia' esiste rwr-cicbaste);
- y1-start-cicbasri + b1-del cancellano le righe CICBASRI precedenti della voce (le attivita' collegate vengono rigenerate/ripulite in base al ciclo).
6. Cancellazione (b-cancella)¶
Su conferma (F3) cancella la testata CICBASTE (del-cicbaste) e, con scansione per chiave (st-cicbaste-notmin-chia1 / rdnxt), le eventuali righe residue; quindi elimina anche le righe collegate in CICBASRI (del-cicbasri) per la coppia tipo/codice.
7. Chiusura (fine / z-chiudi)¶
Chiude i file del modulo Colture (CICTABEL, CICLAVOR, CICBASTE, CICBASRI), chiude la finestra ed esce con exit program.
Note tecniche¶
- Tipo anagrafica forzato a Colture: in
apriw-tipoe' impostato a"4". La maschera e l'EVALUATE sul titolo (1=Lavorazioni,2=Macchine,3=Risorse,4=Colture) rivelano che lo stesso schermo e' predisposto per piu' tipi di anagrafica di base, ma nel flusso attuale COGI23 gestisce esclusivamente le Colture. La label di menu ("Colture") coincide quindi con la funzione effettiva. - Archivi condivisi del modulo Colture: CICBASTE (testata, tipo record 1-4 e 7), CICBASRI (righe/collegamenti), CICLAVOR (tipi attivita'), CICTABEL (parametri/numerazioni) e CICGIORN (movimenti giornalieri, usato dagli altri programmi del modulo) sono condivisi con COGI25 e COGI50. Modifiche alla struttura di questi copybook impattano l'intero sotto-modulo.
- Chiave attivita' (CICBASRI): il record CICBASRI usa
cic-bri-key1(concic-bri-att, codice tipo attivita') e la ridefinizionecic-bri-key2(cic-bri-lav); il programma raccoglie le attivita' collegate leggendocic-bri-lav. - Stile a caratteri (non GUI): usa
mmmask.cpyper la maschera testuale con box a caratteri semigrafici,accept/displayposizionali e i tasti funzione viatstfun1.cpy. Non usa la griglia GRIDADMN. - Uso di GO TO e PERFORM THRU: il sorgente originale fa largo uso di
GO TOePERFORM ... THRU(es.b-cancella thru ex-b-cancella); e' codice legacy preesistente e non riflette le convenzioni per il nuovo codice.