Vai al contenuto

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 apri w-tipo e' 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 (con cic-bri-att, codice tipo attivita') e la ridefinizione cic-bri-key2 (cic-bri-lav); il programma raccoglie le attivita' collegate leggendo cic-bri-lav.
  • Stile a caratteri (non GUI): usa mmmask.cpy per la maschera testuale con box a caratteri semigrafici, accept/display posizionali e i tasti funzione via tstfun1.cpy. Non usa la griglia GRIDADMN.
  • Uso di GO TO e PERFORM THRU: il sorgente originale fa largo uso di GO TO e PERFORM ... THRU (es. b-cancella thru ex-b-cancella); e' codice legacy preesistente e non riflette le convenzioni per il nuovo codice.