Vai al contenuto

COGI25 - Colture: Inserimento Ore

Panoramica

Programma interattivo a carattere (maschera testuale su finestra) del sotto-modulo "Colture" per l'inserimento, la variazione e la cancellazione delle ore lavorate. Ogni registrazione (record CICGIORN, "archivio giornaliero") associa a una data e a un numero progressivo: una risorsa (manodopera), una lavorazione, una coltura, un'eventuale macchina, le ore uomo e le ore macchina, con i relativi codici tipo attivita'. Al salvataggio calcola le ore macchina effettive applicando un coefficiente di conversione letto dall'anagrafica della macchina.

Il programma puo' funzionare in modo autonomo (avvio da menu, con numerazione automatica) oppure essere richiamato da un chiamante per visualizzare/variare una registrazione specifica (parametro i025-called = "COGI25" con anno e numero).

Posizione nel menu

Menu Percorso
Magazzino Colture > Operativo > Inserimento Ore

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema (nomi file)
CICTABEL I-O Tabella parametri/numerazioni Colture (numeratore registrazioni, tipo 11)
CICLAVOR Input Anagrafica tipi attivita' (ore): descrizione dei codici ore uomo/macchina
CICBASTE Input Anagrafica di base Colture (testate): risorse, lavorazioni, colture, macchine con coefficiente
CICBASRI Input Anagrafica di base Colture (righe): attivita' collegate alla lavorazione
CICGIORN I-O Archivio giornaliero ore lavorate (record inserito/variato/cancellato)

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
cicbaste.fd / cicbaste.cpy SELECT/FD e record CICBASTE
cicbasri.fd / cicbasri.cpy SELECT/FD e record CICBASRI
cicgiorn.fd / cicgiorn.cpy SELECT/FD e record CICGIORN (archivio giornaliero)
wstato.cpy / wgrave.cpy / wopenf.cpy / wnscr.cpy Working storage stato I/O, errori, apertura file, video
cogazien.cpy Dati azienda
utils52.cpy Interfaccia verso COGS52 (immissione/validazione data)
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 (sendw36)
cictabel.k01 / cicbaste.k01 / cicbasri.k01 / ciclavor.k01 / cicgiorn.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
mmmask.cpy Gestione maschera a caratteri
dtab.cpy Gestione tabella video
tstfun1.cpy Test tasti funzione
sendi08.cpy / sendw36.cpy Routine di chiamata ai servizi I08 e W36

Nota: la linkage section ridefinisce wo-resto-area (di wcont.cpy) nella struttura i025-area per ricevere i025-called, i025-anno, i025-numero dal chiamante.

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGI06 Acquisizione/help del codice o descrizione di una voce di anagrafica di base (risorsa, lavorazione, coltura, macchina), per tipo w-tipo
COGS52 Immissione e validazione della data della registrazione

Logica di elaborazione

1. Inizializzazione (apri)

Apre i file (open-files, open-files-ci), legge i dati azienda, azzera w-tipo e sw-inserimento, carica e visualizza la maschera testuale mm-1 (12 righe x 58 colonne).

2. Apertura e testa numerazione (a4)

Visualizza la maschera con titolo "Inserimento Ore Lavorate" e le label tasti (ESC, F2=Indietro, F4=Cancella). Se e' stato richiamato da un chiamante (i025-called = "COGI25"), imposta anno/numero passati e va direttamente in visualizzazione (visualizza), poi salta ad a7. Altrimenti propone data corrente.

3. Selezione anno/numero e data (a6 / a7 / a8)

Acquisisce l'anno (tm-anno), il numero registrazione (tm-numero): se il numero e' diverso da zero, richiama visualizza per rileggere una registrazione esistente. Con COGS52 (a8) acquisisce la data e verifica la coerenza (l'anno della data deve coincidere con l'anno del numero, altrimenti messaggio d'errore). F4 avvia la cancellazione in qualsiasi punto.

4. Acquisizione dati registrazione (a10-a30)

In sequenza, tramite COGI06 (a1-acqui-tmbase) su tipi diversi di anagrafica di base: - Risorsa (a10, w-tipo = 3): codice e descrizione risorsa; - Lavorazione (a11, w-tipo = 1): codice e descrizione; dopo la scelta esegue find-lav per determinare i codici tipo attivita' collegati (ore uomo/macchina) da CICBASRI e le relative descrizioni da CICLAVOR; - Ore uomo (a15/a16): accept di tm-ore (parte intera e decimali); se il tipo ore uomo e' 2, il valore viene replicato anche sulle ore macchina; - Coltura (a18, w-tipo = 4): codice e descrizione coltura; - Macchina (a20, w-tipo = 2): codice e descrizione; legge il coefficiente cic-bas-coeff dalla macchina in CICBASTE. Se il tipo ore macchina non e' 3 il coefficiente viene forzato a 1 (nessuna influenza); - Ore macchina (a25/a30): accept di tm-ore-mac.

des-ore visualizza le descrizioni dei tipi ore uomo/macchina (da CICLAVOR).

5. Conferma e aggiornamento (a35 / a-90 / aggio-cicgior)

Con acc-conf chiede conferma (F3). In b-aggiorna: se non e' una variazione (sw-inserimento diverso da "V") assegna un nuovo numero tramite find-num (numeratore CICTABEL tipo 11, codr 1, incrementato e riscritto). Quindi aggio-cicgior valorizza e scrive/riscrive il record CICGIORN con anno, numero, data, risorsa, lavorazione, coltura, macchina, ore uomo (con codice) e ore macchina (con codice). Il calcolo delle ore macchina applica il coefficiente: - se il codice tipo ore macchina e' 3: cic-gior-ore-macc = tm-ore-mac * w-coeff; - altrimenti: valore ore macchina inalterato.

Dopo l'inserimento mostra il messaggio "Effettuato inserimento. N.: ...", azzera il numero e torna ad a11 per una nuova registrazione. In variazione mostra "Effettuato variazione. N.: ...".

6. Visualizzazione registrazione esistente (visualizza)

Rilegge CICGIORN per anno/numero. Se non esiste imposta sw-inserimento = "V" e torna. Se esiste, imposta sw-inserimento = "V" (modalita' variazione), carica i campi in tab-maschera e ne recupera le descrizioni leggendo CICBASTE per lavorazione (tipo 1), risorsa (tipo 3), macchina (tipo 2, con coefficiente) e coltura (tipo 4). Per la macchina ricalcola le ore macchina a video dividendo per il coefficiente (tm-ore-mac = tm-ore-mac / w-coeff), operazione inversa rispetto al salvataggio. Visualizza infine tutti i campi.

7. Cancellazione (cancella)

Se la registrazione e' in modalita' variazione (sw-inserimento = "V"), su conferma cancella il record CICGIORN (del-cicgiorn) e mostra l'esito; altrimenti segnala "Cancellazione non Avvenuta".

8. Chiusura (fine / z-chiudi)

Chiude i file (CICTABEL, CICLAVOR, CICBASTE, CICBASRI, CICGIORN), chiude la finestra ed esce.

Note tecniche

  • Coefficiente macchina (andata/ritorno): al salvataggio le ore macchina, se di tipo 3, vengono moltiplicate per il coefficiente della macchina (cic-bas-coeff); in visualizzazione vengono divise per lo stesso coefficiente per riproporre il valore digitato. Il coefficiente e' influente solo per il tipo ore macchina 3; per gli altri tipi e' forzato a 1.
  • Numerazione automatica: il numero registrazione e' ottenuto dal numeratore in CICTABEL (cit-tipo = 11, cit-codr = 1), letto, usato e riscritto incrementato di 1 (find-num). L'anno del numero deve corrispondere all'anno della data.
  • Codici tipo ore da CICBASRI/CICLAVOR: find-lav scandisce CICBASRI (tipo "1", codice lavorazione) per ricavare i codici tipo attivita' (cic-bri-att) delle ore uomo e macchina, la cui descrizione e' letta da CICLAVOR (cic-lav-des).
  • Richiamo da chiamante: la linkage i025-area (redefine di wo-resto-area) consente di aprire il programma direttamente su una registrazione (i025-called="COGI25", i025-anno, i025-numero), portandola in visualizzazione/variazione.
  • Archivi condivisi: CICGIORN, CICBASTE, CICBASRI, CICLAVOR, CICTABEL sono condivisi con COGI23 (anagrafiche di base) e COGI50 (calcolo voci di costo). CICGIORN e' l'archivio dei movimenti giornalieri su cui COGI50 conteggia le ore.
  • Stile a caratteri (non GUI): maschera testuale via mmmask.cpy con box semigrafici, accept/display posizionali e tasti funzione via tstfun1.cpy; nessuna griglia GRIDADMN. Il sorgente e' codice legacy con largo uso di GO TO e PERFORM ... THRU.