RIGHI001 — Controllo Tipo Fatturazione Interventi¶
Sorgente: cbl/righi001.cbl | Tipo: Programma interattivo (utility) | Program-ID: RIGHI001
Menu: Programma non a menu — utility di servizio
Scopo¶
Controlla gli interventi di assistenza collegati a DDT (documenti di trasporto) non ancora fatturati, e aggiorna il Tipo Fatturazione prelevandolo dall'area tecnica della chiamata. E' una utility di manutenzione dati che permette di correggere in massa il tipo fatturazione su interventi che ne sono privi.
Interfaccia utente¶
Il programma presenta una maschera con titolo "DDT interventi senza Tipo Fatturazione":
| Campo | Variabile | Descrizione |
|---|---|---|
| Da data | tm-data-ini |
Data iniziale per il filtro sulle date dei DDT e delle chiamate (con supporto F8 calendario) |
| A data | tm-data-fin |
Data finale per la selezione degli interventi |
| Aggiorna | tm-aggio |
"S" per eseguire l'aggiornamento effettivo, "N" per sola simulazione |
| Record letti | tm-rec-letti |
Contatore record analizzati (aggiornato in tempo reale) |
| Record da elaborare | tm-rec-da-canc |
Contatore record che necessitano aggiornamento |
| Record aggiornati | tm-rec-upd |
Contatore record effettivamente aggiornati |
| Log procedura | tm-log-procedura |
Messaggio di stato corrente |
Flusso operativo¶
- L'utente imposta il range di date
- Imposta il flag "Aggiorna" a
"S"per la modifica effettiva (altrimenti e' solo una simulazione) - Preme F3 per avviare l'elaborazione
- Il programma mostra i contatori aggiornati in tempo reale
- Al termine viene visualizzato il log di procedura tramite GESLPRC
File e Tabelle¶
| File/Tabella | Chiave | Uso |
|---|---|---|
| ASNINTES | acit-id (k07 per data) |
Testata interventi — entita' principale scansionata |
| ASNINDMG | acim-id-intervento |
Legame intervento-documento magazzino |
| COGTESBO | tes-chia3 |
Testata bolle (DDT) |
| COGTESAP | tsa-chia1 |
Dati aggiuntivi DDT — contiene tsa-tipo-fat (tipo fatturazione) |
| COGRACCO | rac-key-bolla (k02) |
Raccordo bolla-fattura — verifica se DDT e' fatturato |
| ASNCHTES | acht-id |
Testata chiamate — contiene acht-area-tecnica |
| ASNAREAT | arte-cod |
Tabella aree tecniche — contiene arte-tipo-fat (tipo fatturazione di default) |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| GESLPRC | Visualizzazione log di procedura al termine dell'elaborazione |
Copybook principali¶
righi001.wrk,righi001.select,righi001.fd— Definizioni generate da Screensasnintes.k07— Chiave secondaria per scansione per datacogracco.k02— Chiave secondaria per ricerca raccordoutilgesdebug.cpy— Utility debug/logging
Logica di Elaborazione¶
Flusso dettagliato¶
Da data → A data → Modalita' aggiornamento?
↓
Scansione ASNINTES da data zero (legge tutti gli interventi)
↓
Per ogni intervento:
→ Cerca documenti collegati in ASNINDMG (solo tipo "D" = DDT)
→ SE nessun DDT trovato → controlla-inter (vedi sotto)
→ Per ogni DDT:
→ Filtra per data: se acit-int-data < tm-data-ini → skip
→ Legge testata DDT da COGTESBO
→ Verifica raccordo fattura su COGRACCO
→ Se DDT NON fatturato: legge COGTESAP
↓
SE tsa-tipo-fat e' vuoto:
→ Log: segnala DDT senza tipo fatturazione
↓
SE modalita' aggiornamento E area tecnica assegnata:
→ Legge area tecnica da ASNAREAT
→ SE arte-tipo-fat valorizzato:
→ Aggiorna acht-tipo-fat su ASNCHTES
→ Aggiorna tsa-tipo-fat su COGTESAP
→ Log: aggiornamento eseguito
→ Incrementa contatore
Controllo interventi senza DDT (controlla-inter)¶
Per ogni intervento che non ha DDT collegati (o i cui DDT sono tutti fuori filtro), il programma esegue un controllo aggiuntivo sulla chiamata associata:
- Se la chiamata ha gia' un
acht-tipo-fatvalorizzato → skip - Se la chiamata non ha area tecnica assegnata:
- Se
acht-data < tm-data-ini→ skip silenzioso - Altrimenti → log: "Chiamata senza Area Tecnica e Tipo Fattura"
- Se la chiamata ha area tecnica ma non tipo fattura → log: "Chiamata senza 'Tipo Fattura' con Area Tecnica"
- Se in modalita' aggiornamento (
tm-aggio = "S"): - Legge l'area tecnica da ASNAREAT
- Se
arte-tipo-fate' valorizzato → aggiornaacht-tipo-fatsulla chiamata (ASNCHTES) - Log: "Modificata chiamata con 'Tipo Fattura'"
- Incrementa contatore aggiornamenti
Regole di business¶
- Scansione completa: gli interventi vengono letti dall'inizio (data zero) per intercettare anche quelli senza DDT; il filtro date si applica a livello di singolo DDT e di data chiamata
- Filtro tipo documento: vengono considerati solo i documenti di tipo
"D"(DDT) collegati agli interventi - Protezione fatture: se il DDT e' gia' collegato a una fattura (verificato su COGRACCO), viene saltato senza tentare aggiornamenti
- Aggiornamento condizionato su DDT: il tipo fatturazione viene aggiornato solo se:
- Il campo
tsa-tipo-fatin COGTESAP e' vuoto - La chiamata ha un'area tecnica assegnata (
acht-area-tecnica) - L'area tecnica esiste in ASNAREAT e ha
arte-tipo-fatvalorizzato - Aggiornamento su chiamate senza DDT: se un intervento non ha DDT collegati, il tipo fatturazione viene assegnato direttamente sulla chiamata (solo
acht-tipo-fat, senza COGTESAP) - Doppio aggiornamento: per i DDT, il tipo fatturazione viene scritto sia sulla testata chiamata (
acht-tipo-fat) che sui dati aggiuntivi del DDT (tsa-tipo-fat)
Modalita' simulazione¶
Se tm-aggio vale "N", il programma esegue solo la ricerca e mostra i contatori e il log, senza effettuare aggiornamenti. Utile per verificare quanti DDT necessitano correzione prima di procedere.
Storico Modifiche¶
| Build | Descrizione |
|---|---|
| 2026/0074 | Scansione da data zero per intercettare interventi senza DDT; aggiunto paragrafo controlla-inter per assegnare tipo fatturazione da area tecnica anche a chiamate senza DDT collegati; filtro date spostato a livello DDT |
| 2026/0076 | Aggiunto flag w-fl-ddt-trovato per tracciare se almeno un DDT e' stato trovato per un intervento; aggiunto pre-check su ASNCHTES (area tecnica non vuota) e ASNAREAT (tipo fatturazione presente) prima di elaborare; controlla-inter invocato in tre punti: nessun DDT collegato, fine-file nella scansione DDT, cambio intervento; usa REWRITE diretto su ASNCHTES/COGTESAP; aggiunto logging di debug per ogni modifica effettuata |
Documentazione tecnica aggiornata -- 2026-03-27