Vai al contenuto

CRM120 - Creazione Calendario Agenda per Operatore

Campo Valore
Sorgente cbl/crm120.cbl
Tipo Utility interattiva (con modalita' batch)
Posizione menu CRM > Archivi > Agenda > Creazione calendario

Scopo

Genera o rigenera il calendario delle fasce orarie disponibili per uno o tutti gli operatori CRM, in un intervallo di date scelto. Ogni giornata viene scomposta in 96 slot da 15 minuti (4*24) e marcata disponibile/non disponibile sulla base di:

  • Orario operatore (CRMAGORA tipo O)
  • Orario aziendale di default (CRMAGORA tipo A)
  • Festivita' (CRMAGFES)

Opzionalmente ricalcola gli impegni laboratorio (LODIMPMX) se configurato.

File e tabelle

  • CRMAGCAL: calendario (scrittura/rilettura/cancellazione)
  • CRMAGORA: orari operatore (tipo O) o aziendali (tipo A)
  • CRMAGFES: festivita' aziende
  • CRMUSERS: utenti CRM (filtro cru-liv numerico > 0)
  • PRNTOPER: operatori (k03 per reparto/sottoreparto)
  • LODIMPMX: impegni massimi laboratorio (k02 per data, k03 per ope/data)

Programmi chiamati

Programma Scopo
festa.cob Calcolo giorno della settimana e flag festivo
DTPRG / PRGDT Conversione data ↔ progressivo
RNEWCONF Lettura configurazione
WP04 Helper aiuto via sendwp04.cpy

Configurazioni RNEWCONF

Gruppo Chiave Scopo
abilita labod-impegni Se A o M: abilita ciclo impegni laboratorio (tm-cfg-labod-impegni)
labimp assegnazione-operatori M = per operatore, altrimenti per reparto/sottoreparto (tm-cfg-assegnazione-ope)

Logica di elaborazione

  1. Input operatore (0 = tutti), data inizio, data fine.
  2. Conferma esplicita.
  3. Cancella il calendario precedente nell'intervallo, preservando record con cca-fl-occ = "S" (occupato) o cca-fl-forzato = "S" (forzato).
  4. Per ogni giornata:
  5. Determina se festiva (festa.cob + CRMAGFES)
  6. Se non festiva, per ogni quarto d'ora verifica se rientra in un intervallo CRMAGORA (per operatore o aziendale di default)
  7. Scrive CRMAGCAL con flag disponibile
  8. Se tm-cfg-labod-impegni attivo: rigenera LODIMPMX.

Modalita' batch

  • Sentinella: crm120-called = k-program-id
  • Quando w-dc-batch-mode = "S": salta UI maschera, esegue con parametri util-crm120 (crm120-ope, crm120-data-min, crm120-data-max).
  • Richiamato da altri programmi per ricalcolo automatico.

Personalizzazioni

  • ferrari-waterdes: festivita' ricorrenti CRMAGFES con anno 0 valgono solo se la giornata e' gia' festa aziendale.

Note implementative

  • Pattern legacy con GO TO etichettati a1- / a12- per cicli annidati giorno/ora/minuti.