COGQ30 - Calendario Ditta¶
Scopo¶
Gestione del calendario annuale di lavoro per ciascun reparto produttivo (magazzino). Per ogni giorno dell'anno mantiene il tipo (Normale, Prefestivo, Domenicale, Festivo) e le ore lavorative previste. E' la base per la pianificazione dei cicli di lavorazione e per il calcolo dei carichi macchina. Il programma propaga automaticamente le modifiche sui calendari di dettaglio delle singole macchine.
Menu¶
Magazzino > Produzione > Cicli di Lavorazione > Archivi > Calendario Ditta
File e tabelle¶
| File | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Parametri | File parametri ambiente |
| CLCCALEN | Indicizzato I/O | Calendario reparto (chiave: magazzino + aaaammgg) |
| CLCTABEL | Indicizzato Input | Orari standard reparto (chiave: tipo + cod), letto con tipo = 01 |
| COGMAGAZ | Indicizzato Input | Anagrafica magazzini/reparti (filtrato su tipo = "M") |
| CLCCALMA | Indicizzato I/O | Calendario specifico delle singole macchine (per propagare festivita' / orario) |
Le copybook delle chiavi includono clccalma.k01 come chiave secondaria.
Copybook¶
File e select¶
feurtab.fd,clccalen.fd,clctabel.fd,cogmagaz.fd,clccalma.fdcogfiles.cpy,clccalen.cpy,clctabel.cpy,cogmagaz.cpy,clccalma.cpy
Working-storage standard¶
wstato.cpy,wgrave.cpy,wopenf.cpy,wnscr.cpy,cogazien.cpy
Utility¶
utilw36.cpy— Lookup magazzino tramite COGW36utils52.cpy— Gestione anno tramite COGS52
Linkage¶
wcont.cpy,wcont1.cpy
Procedure¶
clccalma.k01,stato.cpy,stato1.cpy,winmsg.cpy,grave.cpy,open1.cpy,openq.cpy,mmmask.cpy,sendw36.cpy
CALL¶
| Programma | Descrizione |
|---|---|
| COGS52 | Accept anno |
| COGW36 | Aiuto magazzino (via sendw36.cpy) |
| DTPRG | Conversione data > progressivo giorni |
| PRGDT | Conversione progressivo giorni > data |
| FESTA | Identifica festivita' fisse e Pasqua/Pasquetta (!) |
Logica di elaborazione¶
- Selezione (
apri,a00-1,a-00): - Accept del codice magazzino (
tm-cod) e lettura dicogmagazconmagz-tipo = "M". - Accept dell'anno (
tm-anno) tramite COGS52. - Verifica orario standard reparto (
find-ore): - Lettura di
clctabelconcta-tipo = 1, cta-cod = tm-cod. - Se non esiste o tutte le ore della settimana sono zero, il programma blocca l'operazione e rimanda alla manutenzione Tabelle > Reparti di produzione.
- Controllo esistenza anno (
a-00-loop,a-00-end): - Start su
clccalenconcal-mag = tm-cod, cal-aa = tm-anno, scorrimento finche' chiave matcha. - Se nessun record trovato, chiede conferma e crea l'anno con
b1-ins-anno. - Inserimento anno (
b1-ins-anno,b1-ins-loop,b11-ins-rec): - Calcola progressivo del 1 gennaio con
DTPRG, poi cicla giorno per giorno (PRGDTper ricostruire la data,FESTAper identificare festivita' civili/Pasqua). - Tipi assegnati:
Ffesta,Ddomenica,Pprefestivo (sabato),Nnormale. - Le ore vengono prese da
cta-week (wdp-day)per i giorni P/N, zero per D/F. b2-pasquasegna come festa il giorno di Pasquetta (lunedi successivo alwdp-fes = '!').- Visualizzazione mese (
c-car-mese,disp-tab): - Carica il mese corrente da
clccalenintab-giorni(matrice 6 x 7). - Ogni cella memorizza giorno, tipo, simbolo, colore e ore.
- Navigazione (
a-25,a-25f): - Frecce per spostamento giornaliero.
- Pag su / Pag giu per cambio mese: salva il mese corrente con
x1-agg-meseprima del cambio. - F3: ciclo di rotazione del tipo del giorno (F -> P/D/N a seconda della posizione settimana -> F). Innesca
agg-cal-mac-fest. - F5: accept di un orario specifico per il giorno. Innesca
agg-cal-mac-ore. - Salvataggio (
x1-agg-mese): - Per ciascun giorno del mese in memoria con
tg-gg <> 0, riposiziona suclccalen(rd-cal-lk) e farewriteaggiornando tipo e ore. - Propagazione su macchine (
agg-cal-mac-fest,agg-cal-mac-ore): - Scansiona
clccalmacon startnotmin-chia1, filtrando per anno/mese/giorno corrente del calendario master e aggiornacml-tipocml-ore. La propagazione dell'orario richiede conferma esplicita F3.
Struttura dati in memoria¶
tab-giorni:
tg-sett occurs 6 (settimane del mese)
tg-gio occurs 7 (giorni della settimana)
tg-gg PIC 9(02) numero giorno
tg-old PIC X(01) tipo originario (per controllo F = irreversibile)
tg-tip PIC X(01) tipo corrente N/P/D/F
tg-col PIC 9(04) colore
tg-chr PIC X(01) simbolo
tg-ore PIC 9(02)V99 ore lavorative
Note tecniche¶
- Codice legacy basato su carattere a 80 colonne, con
GO TOstrutturati ePERFORM ... THRU(precedente alle convenzioni attuali, non rifattorizzare in occasione di fix puntuali). - I colori (normale/prefestivo/domenicale/festivo) sono calcolati a runtime in base ai colori del tema (CW/CS).
- Il record
clccalenmantiene siacal-tip(tipo corrente) siacal-tip-rea(tipo originario): un giorno marcato festa "di fabbrica" resta tale anche se l'utente lo riporta a normale, tramitetg-old. - La modifica della festivita' su un giorno con
tg-old = 'F'(festa permanente di fabbrica/Pasqua/festivita' civile) e' disabilitata. - La modifica del calendario su un giorno propaga sui calendari macchina solo per quel reparto, anno, mese e giorno (non sovrascrive informazioni di altri giorni delle macchine).