Vai al contenuto

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

  1. L'utente imposta il range di date
  2. Imposta il flag "Aggiorna" a "S" per la modifica effettiva (altrimenti e' solo una simulazione)
  3. Preme F3 per avviare l'elaborazione
  4. Il programma mostra i contatori aggiornati in tempo reale
  5. 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 Screens
  • asnintes.k07 — Chiave secondaria per scansione per data
  • cogracco.k02 — Chiave secondaria per ricerca raccordo
  • utilgesdebug.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:

  1. Se la chiamata ha gia' un acht-tipo-fat valorizzato → skip
  2. Se la chiamata non ha area tecnica assegnata:
  3. Se acht-data < tm-data-ini → skip silenzioso
  4. Altrimenti → log: "Chiamata senza Area Tecnica e Tipo Fattura"
  5. Se la chiamata ha area tecnica ma non tipo fattura → log: "Chiamata senza 'Tipo Fattura' con Area Tecnica"
  6. Se in modalita' aggiornamento (tm-aggio = "S"):
  7. Legge l'area tecnica da ASNAREAT
  8. Se arte-tipo-fat e' valorizzato → aggiorna acht-tipo-fat sulla chiamata (ASNCHTES)
  9. Log: "Modificata chiamata con 'Tipo Fattura'"
  10. Incrementa contatore aggiornamenti

Regole di business

  1. 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
  2. Filtro tipo documento: vengono considerati solo i documenti di tipo "D" (DDT) collegati agli interventi
  3. Protezione fatture: se il DDT e' gia' collegato a una fattura (verificato su COGRACCO), viene saltato senza tentare aggiornamenti
  4. Aggiornamento condizionato su DDT: il tipo fatturazione viene aggiornato solo se:
  5. Il campo tsa-tipo-fat in COGTESAP e' vuoto
  6. La chiamata ha un'area tecnica assegnata (acht-area-tecnica)
  7. L'area tecnica esiste in ASNAREAT e ha arte-tipo-fat valorizzato
  8. 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)
  9. 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