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-lavscandisce 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 diwo-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.cpycon box semigrafici,accept/displayposizionali e tasti funzione viatstfun1.cpy; nessuna griglia GRIDADMN. Il sorgente e' codice legacy con largo uso diGO TOePERFORM ... THRU.