ASN261 - Produzione sintetica¶
Sorgente: cbl/asn261.cbl (2.642 righe) | Tipo: Programma interattivo a due pagine (tab filtri + tab risultati) con griglia su file di transito e file di appoggio interni
Menu: Assist 2.0 > Operativo > Visualizzazioni > Produzione sintetica
Scopo¶
Visualizza in forma sintetica (aggregata) la produzione dei tecnici di assistenza. A differenza di ASN260 (analitica, una riga per movimento), ASN261 somma i movimenti di ASNPRODT per tecnico e per periodo di sintesi, producendo una riga di totale per ciascun tecnico. Oltre alla produzione consuntivata puo' calcolare la produzione prevista (interventi assegnati) e la produzione persa (interventi eseguiti con esito negativo), con un eventuale coefficiente di ponderazione.
E' il punto di ingresso "riepilogativo": dalla griglia sintetica, con F8 su una riga, si esplode il dettaglio analitico richiamando ASN260 con il tecnico/periodo selezionato.
Puo' essere invocato in modalita' called (asn261-called = "ASN261") ricevendo tecnico e intervallo date come pre-filtri.
Interfaccia chiamato (linkage util-asn261)¶
| Campo | Tipo | Uso |
|---|---|---|
asn261-called / asn261-caller |
x(08) | Identificativi chiamato/chiamante |
asn261-in-tecnico |
9(10) | Pre-filtro tecnico |
asn261-in-data-da / asn261-in-data-a |
9(08) | Pre-filtro periodo |
Livello di sintesi (tm-tipo-sintesi)¶
| Valore | Aggregazione | Periodo memorizzato |
|---|---|---|
P |
Totale generale per tecnico (Periodo) | zero |
M |
Totale per Mese per tecnico | anno/mese (giorno = 0) |
G |
Totale per Giorno per tecnico | anno/mese/giorno |
File acceduti¶
| File | Copybook | Uso |
|---|---|---|
| FEURTAB | cogfiles.cpy |
Features/abilitazioni utente |
| ASNPRODT | aptn-rec |
Produzione per tecnico (sorgente della sintesi consuntiva). Scansione k05 (tecnico+data) o k04 (data) |
| ASNINTES | acit-rec |
Interventi: k06 (stato, per produzione prevista) e k07 (data intervento, per produzione persa). Array acit-tecnico (1:5) per interventi in squadra |
| ASNINTE2 | acit2-rec |
Dati aggiuntivi intervento: acit2-tipo-esito (per la produzione persa) |
| ASNCHTES | acht-rec |
Chiamata: tipo attivita', responsabile, gruppo azienda esecutrice |
| ASNTPATT | atpa-rec |
Tipo attivita': atpa-valore (valore usato per la quota prevista/persa) |
| ASNRESPO | ares-rec |
Responsabili: descrizione (per il responsabile prevalente) |
| COGAZGRP | azg-rec |
Associazione fornitore/tecnico -> gruppo azienda (k03, filtro azienda tecnico) |
| COGRIFER | rif-rec |
Riferimenti tipo "C" (tecnico): nome |
| GRPAZIEN | ao-azi-rec |
Descrizione gruppo/azienda |
| cogtrans (interno) | trs-rec locale | File di appoggio per determinare il responsabile prevalente per tecnico (conteggio per trs-tecn + trs-resp) |
| t-grid-det | cogtrans.k03 rimappata t-gor-r- |
File di transito indicizzato che alimenta la griglia sintetica |
Copybook e sottoprogrammi di supporto¶
| Copybook | Descrizione |
|---|---|
asn261.select/.fd/.wrk/.tm/-01.scr/.decla/.prc |
Artefatti Screens |
asn261.imppredf-wrk / asn261.imppredf |
Filtri predefiniti (Ctrl+S / Ctrl+F) |
wgrid.cpy, utilgdad.cpy |
Supporto griglia (GRIDADMN) |
k-personal.cpy |
Costanti di personalizzazione cliente (es. k-personal-consorzio-progresso) |
utils52 (date), utilu10/utilu20 (numeri) |
Gestori campi Screens |
utilncnf.cpy |
Linkage RNEWCONF |
utilasn260.cpy |
Linkage ASN260 (esplosione analitica, F8) |
utilgrp002.cpy |
Linkage GRP002 (lookup gruppo aziende, F8) |
utilasns21.cpy |
Linkage ASNS21 (validita'/fornitore listino del tecnico alla data) |
utilcogs0b.cpy |
Linkage COGS0B (abilitazione operatore per gruppo aziende) |
utilg32.cpy |
Linkage COGG32 (campo tecnico) |
chiavi: asnprodt.k04/.k05, asnintes.k06/.k07, cogazgrp.k03, cogtrans.k01/.k02 |
Chiavi secondarie |
Chiamate a sottoprogrammi¶
| Programma | Utilizzo |
|---|---|
| COGG32 | Campo tecnico (a-tm-tecnico) con lookup |
| GRP002 | F8 su azienda esecutrice / azienda tecnico |
| ASN260 | F8 su riga risultati: esplosione dettaglio analitico per il tecnico/periodo della riga |
| ASNS21 | Verifica che il tecnico sia attivo alla data (esclude cessati, fornitore interno, affiancati); fornisce asns21-for-listino |
| COGS0B | Abilitazione operatore al gruppo azienda (se gestione gruppo aziende attiva) |
| GRIDADMN | Preparazione/personalizzazione griglia |
| RNEWCONF | Lettura configurazione (x99-confi); F1 apre la configurazione |
Configurazione RNEWCONF (x99-confi)¶
Identica ad ASN260:
| Idx | Gruppo | Chiave | Variabile |
|---|---|---|---|
| 01 | assist |
gestione-gruppo-aziende |
tm-cfg-gestione-gruppo-aziende |
| 02 | azienda |
gestione-brand-marchio |
tm-cfg-gestione-brand |
| 03 | assist |
gestione-produzione-tecnico |
tm-cfg-gestione-produzione-tecnico |
Filtri disponibili (pagina 1)¶
Tecnico (COGG32), azienda esecutrice (GRP002), azienda tecnico (GRP002), data inizio/fine, tipo sintesi (P/M/G), produzione prevista (tm-fl-produzione S/N) e coefficiente (tm-coeff, per ponderare prevista/persa). Per la personalizzazione consorzio-progresso, con produzione prevista attiva e coefficiente 0, viene proposto d'ufficio 0,625.
Logica di elaborazione¶
1. Sintesi consuntiva (z-grid-ricerca-dati)¶
Scorre ASNPRODT per tecnico+data (k05) o per data (k04), applica i filtri (tecnico, azienda esecutrice, azienda tecnico, periodo) e — se gestione gruppo aziende attiva — il controllo COGS0B sull'azienda esecutrice o tecnico. Per ogni movimento valido calcola il periodo di sintesi in base a tm-tipo-sintesi e aggiorna la riga di transito del tecnico sommando/sottraendo (in base ad aptn-segno A/D) aptn-prd-importo in t-gor-r-importo e aptn-prd-coeff in t-gor-r-coeff.
2. Produzione prevista (a-produzione-prevista, solo se tm-fl-produzione = "S")¶
Scorre gli interventi assegnati (acit-stato = "A", k06). Per ciascun tecnico dell'intervento (array acit-tecnico, fino a 5) verifica validita' alla data (ASNS21), filtra per azienda (COGAZGRP) e somma in t-gor-r-valore la quota atpa-valore / numero-tecnici (calcolata da a11-quanti-tecnici). Aggiorna anche il file di appoggio cogtrans per determinare il responsabile prevalente.
3. Produzione persa (a-produzione-persa)¶
Scorre gli interventi eseguiti nel periodo (acit-stato = "P" o "C", k07) con acit2-tipo-esito = "N" (esito negativo). Con la stessa logica di ripartizione per tecnico somma la quota in t-gor-r-pro-persa.
4. Coefficiente (a-prevista-persa-coeff, se tm-coeff <> 0)¶
Ricalcola t-gor-r-valore-coef = valore * tm-coeff e t-gor-r-ppersa-coef = pro-persa * tm-coeff per ogni riga del transito.
5. Responsabile prevalente¶
Al termine delle fasi previste/perse, per ogni riga della griglia scorre il file di appoggio cogtrans (k02, per tecnico) e assegna il responsabile con piu' occorrenze (t-gor-r-respo + descrizione da ASNRESPO).
Griglia risultati (pagina 2)¶
Griglia read-only ordinata per tecnico+periodo. Funzioni: F8 esplode l'analitico (ASN260), F9 stampa report, SF4 personalizzazione colonne, SF5 export Excel, Ctrl+S/Ctrl+F filtri predefiniti, menu contestuale (151-199). L'etichetta del periodo viene formattata in chiaro da x-riempi-t-gor-r-periodo-ed (es. "Gennaio 2026" per la sintesi mensile).
Note implementative¶
- Il file di appoggio
cogtransinterno (chiavetrs-tecn + trs-resp, alternativatrs-tecn + trs-nr) e' creato in tmp, usato solo per il calcolo del responsabile prevalente e cancellato in chiusura. - Il transito
t-grid-detderiva dacogtrans.k03rimappata; entrambi i file vengono chiusi e cancellati a fine programma. - L'array
acit-tecnico (1:5)gestisce gli interventi in squadra: il valore previsto/perso viene ripartito per il numero di tecnici validi (w-nr-tec), escludendo cessati, fornitore interno e affiancati. - Se la data fine e' 0 viene forzata a 20301231 durante l'estrazione.