Vai al contenuto

ASN350 - Controllo interventi da fatturare (interventi chiusi)

Sorgente: cbl/asn350.cbl (2.991 righe) | Tipo: Programma interattivo con griglia paginata, file di transito, generazione documenti di magazzino e stampa di controllo

Menu: Assist 2.0 > Operativo > Gestione Interventi a Richiesta > Controllo Interventi da Fatturare


Scopo

Estrae gli interventi di assistenza (ASNINTES) chiusi in un periodo, con i relativi totali di prestazioni e materiali suddivisi tra da fatturare / non fatturare / gia' fatturato / garanzia, e li presenta in griglia. Dalla griglia l'operatore puo':

  • selezionare gli interventi e creare i documenti di magazzino (DDT) collegati, delegando la generazione a ASN351 intervento per intervento;
  • chiudere/gestire un intervento (ASN140) per le chiamate di classe C;
  • stampare un elenco di controllo con i totali per cliente e generali;
  • consultare la galleria immagini della chiamata.

Il programma lavora in due modalita' di estrazione (tm-tipo-elab): A = solo interventi ancora "da elaborare" (senza DDT), altrimenti "Completa" (tutti gli interventi chiusi del periodo).

L'intestazione del menu ("Controllo Interventi da Fatturare") coincide con la funzione reale letta nel sorgente ("Consultazione Interventi Chiusi: da Fatturare / Completa"): non ci sono discrepanze.

File acceduti

Input/lettura

File Copybook Uso
ASNINTES acit-rec Interventi: file guida (chiave k07 = data intervento). Filtra su data, stato chiuso, acit-fl-bol
ASNCHTES acht-rec Testata chiamata: cliente assistito/fatturazione, classe, tipo attivita', tipo fatturazione, id contratto
ASNINDET acid-rec Dettaglio intervento: righe prestazioni (P) e materiali (M), con flag fatturazione S/N/G/R/F, per il calcolo dei totali
ASNTPATT atpa-rec Tipo attivita' (descrizione, colore)
ASNTEAMS atea-rec Squadra dell'intervento (k02 per data decorrenza, PBUG-1086 read previous)
ASNCNTES acnt-rec Contratto (validazione filtro id contratto)
COGGEANA ana-rec Cliente assistito / fatturazione
COGRIFER rif-rec Tecnici (rif tip C)
COGMERAP (via COGS68W) Descrizione merce nella stampa

Output/scrittura

Non scrive direttamente su file gestionali: la creazione dei documenti di magazzino e' delegata a ASN351 (che aggiorna ASNINTES/ASNINDET e crea le testate/righe DDT). ASN350 aggiorna solo il transito.

Transito

File Scopo
cogtrans (#$trsasn350.<oper>) Buffer degli interventi estratti (record trs): trs-id-int, trs-id-chiam, trs-sel (selezione), trs-cli, trs-int-data, trs-fl-bol. Chiave 2 ordinamento numerico/cliente, chiave 3 ordinamento per stampa
cogtrans2 (#$asn350_ddt.<oper>) File dei DDT creati per il riepilogo (attualmente la scrittura e' commentata; il file viene comunque creato/aperto/chiuso e passato ad ASN143)

Chiavi secondarie

  • cogtrans.k01, .k02, .k03; cogtran2.k01
  • asnintes.k07 (data intervento); asnteams.k02

Programmi chiamati

Programma Operazione Scopo
RNEWCONF Lettura configurazioni iniziali e modifica con F1
COGS65W (z-s65-*) Lookup cliente di fatturazione
COGS52 (utils52) Gestione campi data periodo intervento
COGS68W String Descrizione merce nella stampa
COGS54 (COGS54) Setup stampante per l'elenco di controllo (F9)
COGU10W (z-u10) Edita Formattazione importi
ASN016 (lookup) F8 su tipo attivita'
ASN220 ASN220-CALLED F9 ricerca avanzata contratto
ASN351 ASN351-CALLED Creazione documento di magazzino per il singolo intervento selezionato (F3)
ASN140 ASN140-CALLED F6 chiusura/gestione intervento (classe C)
ASN143 Riepilogo DDT creati (dal dialog post creazione)
ASN073 F1 galleria immagini della chiamata
DIALOGS Dialog di fine creazione documenti
GRIDADMN Personalizzazione griglia

Configurazioni RNEWCONF (x99-confi, 9 chiavi)

Idx Gruppo Chiave Variabile Effetto
01 assist magaz-vendita tm-cfg-mag-ven Magazzino vendita per i DDT
02 assist cau-vendita tm-cfg-cau-ven Causale vendita
03 assist cau-garanzia tm-cfg-cau-gar Causale garanzia
04 assist magaz-pnota tm-cfg-mag-pnota Magazzino prima nota
05 assist magaz-garanzia tm-cfg-mag-garan Magazzino garanzia
06 assist cau-pnota tm-cfg-cau-pn Causale prima nota
07 assist tipo-documento-scarico-materiali tm-cfg-tipo-docum Tipo documento scarico materiali (default D)
08 assist creazione-documento-scarico-prestazioni tm-cfg-creo-doc-prestaz Crea documento anche per le prestazioni (default S)
09 contabil tipi-doc-per-causale tm-cfg-doc-per-causale S → i documenti sono determinati per causale; blocca la selezione se sulla chiamata manca il tipo fatturazione (acht-tipo-fat)

Le configurazioni di magazzino/causale sono lette da ASN350 ma applicate concretamente in ASN351 durante la generazione dei DDT.

Logica di estrazione (carica-filetratta-chia7)

  1. st-asnintes-notmin-chia7 posizionato su tm-data-int-da (chiave data intervento).
  2. Scorre ASNINTES finche' acit-int-data <= tm-data-int-a.
  3. Per ogni intervento legge la testata chiamata e invoca scrivi-cogtrans.

Filtri di scrivi-cogtrans

Scarta l'intervento se: - filtro id contratto valorizzato e diverso da acht-id-contratto; - data intervento fuori dal periodo; - tm-tipo-elab = "A" e l'intervento ha gia' bolla (acit-fl-bol = "E" o "S"); - chiamata di classe L (laboratorio, PCASE-3418: fatturate diversamente); - tipo attivita' filtrato e diverso; - stato intervento A (aperto), Z, P (pre-chiuso) → si considerano solo gli interventi effettivamente chiusi; - cliente di fatturazione (o assistito, se il primo e' 0) diverso dal filtro cliente.

Se valido, scrivi-cogtrans-ok scrive il record di transito. La chiave 2 dipende dall'ordinamento (tm-ordinamento = N numerico per id, C per nome cliente + data + id); la chiave 3 e' usata per l'ordinamento della stampa. Il cliente di rotture (trs-cli) e' il cliente di fatturazione se presente, altrimenti l'assistito.

Calcolo totali

  • x1-calc-tot (per riga griglia) e x2-calc-gen (totali generali della maschera) scorrono ASNINDET per l'intervento sommando gli importi (acid-importo) suddivisi per tipo riga (P/M) e flag fatturazione (S da fatturare, N no, G gia' fatturato, R garanzia). I totali sono formattati via COGU10W.
  • x-ctr-fatturare determina se un intervento e' completamente "da fatturare" (tutte le righe fl-fat = "S") per etichettare la situazione in griglia (Da fatturare / Da scaricare).

Funzioni sulla griglia (paragrafo a-grid)

Tasto Azione
INVIO Seleziona/deseleziona l'intervento per la creazione DDT (verifica trs-fl-bol = "N" e, se doc-per-causale=S, presenza tipo fatturazione)
F5 Seleziona/deseleziona tutti gli interventi (x5-sel-tutto)
F3 Crea i documenti di magazzino per gli interventi selezionati (x3-crea-doc → loop ASN351), poi dialog di riepilogo (ASN143)
F6 Chiusura/gestione intervento (ASN140, solo classe C)
F9 Stampa elenco di controllo (x9-stampa) con totali per cliente e generali
F1 Galleria immagini (ASN073, se arc. ottica)
S-F4 Personalizza griglia
S-F5 Esporta Excel

Stampa di controllo (x9-stampa)

Scorre cogtrans (chiave 3, ordine di stampa) e per ogni intervento il dettaglio ASNINDET, stampando riga per riga merce/prestazione, quantita', prezzo, importo e stato fatturazione, con rotture e totali per cliente (x97-totcli) e totali generali finali. Il report e' pilotato da COGS54.

Messaggi principali

ID Contesto
m-asn350-2-1 Titolo maschera
m-asn350-3-1 Conferma estrazione
m-asn350-4-1 Errore apertura transito (stato 93)
m-asn350-5-1 Nessun intervento estratto
m-asn350-6-1/7-1 Fine/inizio paginazione
m-asn350-8-1 Intervento gia' a documento (non selezionabile)
m-asn350-9-1 Conferma creazione documenti
m-asn350-10-1 Chiusura consentita solo su classe C
m-asn350-11-1/13-1 Errore apertura cogtrans2
m-asn350-12-1 Tipo fatturazione mancante sulla chiamata (con doc-per-causale=S)
m-asn350-30-1/31-1 Dialog fine creazione documenti / riepilogo

Storico modifiche significative (dal sorgente)

  • 311013: introdotte le config tipo-documento-scarico-materiali e creazione-documento-scarico-prestazioni; gestione prima nota (pnota)
  • 130115: cogtrans2 per il riepilogo DDT quando le causali generano piu' documenti; delega totale della creazione ad ASN351
  • 130215: escluso lo stato intervento P (pre-chiuso) dall'estrazione
  • 150316: config tipi-doc-per-causale: blocco selezione se manca il tipo fatturazione sulla chiamata
  • 070921: PBUG-1086, ricerca squadra su ASNTEAMS sempre con read previous per decorrenza
  • 020823: PCASE-3418, esclusione delle chiamate di laboratorio (classe L)

Note implementative

  • La griglia e' paginata su cogtrans via dtab/fscrol2/utilpggr.
  • I totali generali (x2-calc-gen) vengono ricalcolati dopo ogni chiusura intervento (F6) per aggiornare la maschera.
  • Il file cogtrans2 viene creato/aperto/chiuso ma le scritture del dettaglio DDT sono attualmente commentate: il riepilogo ASN143 riceve comunque il nome del file.