Vai al contenuto

ASN401 - Estrazione file interventi per Agenzia Entrate

Intestazione

Campo Valore
Programma ASN401
Titolo Estrazione file interventi su matricole per Agenzia Entrate
Modulo Assist 2.0 - Utility
Posizione menu Assist 2.0 > Operativo > Utility > Estrazione dati per Agenzia Entrate
Sorgente cbl/asn401.cbl (~2.872 righe)
Tipo Programma interattivo single-form + griglia + estrazione file fiscale

Scopo e logica generale

ASN401 produce il file telematico per la comunicazione trimestrale all'Agenzia delle Entrate degli interventi su matricole fiscali (registratori di cassa / strumenti di misura) con modello di certificazione MIS00 (codice 26).

Il flusso e':

  1. Acquisizione parametri di estrazione (anno, trimestre, range date, intermediario, modelli di certificazione, tipo matricola)
  2. Costruzione di un file di transito COGTRANS con un record per ogni intervento candidato
  3. Visualizzazione griglia di anteprima/correzione (campi Esito e Tipo intervento modificabili)
  4. Su F7: controllo qualita' dati con log errori; se OK, generazione file tabverpe_AAAA_T.txt con record T0 (testa), T2 (dettaglio), T9 (coda)

Flusso principale

  1. Apri: apertura file, lettura azienda, caricamento configurazione assist (3 chiavi info CRM tecnico)
  2. Validazione configurazione iniziale: verifica codici info CRM tecnico, esistenza cliente interno az-cli-int con dati obbligatori. Se manca qualcosa, blocco o richiesta modifica config
  3. Accept parametri (a-tm-anno -> ... -> a-tm-modello-3): sequenza accept con validazione
  4. Conferma -> crea-transito:
  5. Loop su ASNINTES per chiave chia7 (acit-int-data) nel range date
  6. Filtro acit-stato = "P" o "C" (chiuso o aggiornato da mobile)
  7. Per ogni intervento, verifica che sia il piu' vecchio della chiamata (loop su BSNINTES = ASNINTES con rename)
  8. Loop su ASNCHDET per matricole della chiamata che hanno achd-modello-cert = uno dei 3 modelli
  9. Filtro per tm-tipo-mat se valorizzato
  10. Lettura ASNMATRI, ASNCHTES, COGGEANA, COGRIFER, COGANATN, ASNMARCH, ASNMODEL, ASNMTRTP
  11. Lettura 3 info CRM del tecnico (CRMS06 "LEGGI" per codfisc, id-alfa, id-num)
  12. Scrittura record COGTRANS con tutti i dati necessari al file finale
  13. Visualizzazione griglia (a30 -> a-grid): caricamento tm-grid-dati-ele dal transito, editing inline su Esito e Tipo intervento
  14. F7 -> x7-estrazione-file:
  15. Ri-validazione configurazioni
  16. Apertura filelog, scan transito con x71-controlla-dati (log errori per ogni campo mancante)
  17. Se errori: apertura log con OPENFILE, fine
  18. Se OK: conferma utente, apertura mifisc, scrittura T0/T2/T9, dialogo finale con DIALOGS

File e tabelle acceduti

File Record Modalita' Uso
ASNINTES acit-rec Input Interventi: scan su chia7 (data intervento) per range periodo
ASNINTES (alias BSNINTES) bcit-rec Input Stesso file con copybook rinominato per ricerca "intervento piu' vecchio della chiamata"
ASNCHDET achd-rec Input Dettaglio chiamata: matricola e modello certificazione
ASNCHTES acht-rec Input Testata chiamata: cliente assistito/fatturazione
ASNMATRI amtr-rec Input Matricole: tipo, sn, marca, modello
ASNMODEL amod-rec Input Modelli matricola: descrizione
ASNMARCH amrc-rec Input Marche matricola: descrizione
ASNMTRTP amtp-rec Input Tipologie matricola: descrizione
ASNSKMOD askm-rec Input Modelli di certificazione (skill model): validazione modelli 1/2/3
COGGEANA ana-rec Input Anagrafica clienti: dati per record T2 + cliente interno per T0/T9
COGRIFER rif-rec Input Riferimenti tecnico (rif-tip = 'C')
COGANATN atn-rec Input Anagrafica tecnici: ricava atn-cod-nom per CRMS06
COGTRANS trs-rec I-O File di transito locale al programma per la griglia di anteprima
MIFISC mifisc-rec Output File telematico fiscale generato (tabverpe_AAAA_T.txt, record fissi PIC X(1800))
FILELOG log-record Output File log errori validazione (testo con CR/LF)

Chiavi secondarie utilizzate

Copybook Tabella Scopo
asnintes.k07 ASNINTES Ricerca interventi per data
asnintes.k02 ASNINTES (rename BSNINTES) Ricerca interventi per chiamata
asnchdet (chiave primaria) ASNCHDET Ricerca per id chiamata
cogtrans.k01, cogtrans.k02 COGTRANS Chiave primaria e ordinamento alternativo
asnmodel.k02 ASNMODEL Ricerca modelli matricola

Programmi chiamati (CALL)

Programma Scopo
ASN010 Lookup tipo matricola (F8 su tm-tipo-mat)
ASN029 Lookup modello di certificazione (F8 su tm-modello-1/2/3)
CRMS06 Lettura informazione CRM del prospect/nominativo (codfisc/id-alfa/id-num tecnico)
COGE05 Validazione formale codice fiscale / partita IVA (tm-cfisc-int)
RNEWCONF Caricamento configurazioni (paragrafo x99-confi)
GRIDADMN Personalizzazione griglia (S-F4)
DIALOGS Dialogo finale con opzione "Apri file"
OPENFILE Apertura del log errori o del file generato

Parametri di configurazione (RNEWCONF)

Gruppo Parametro Variabile interna Tipo Effetto
assist tecnico-info-crm-codfisc tm-cfg-tecnico-info-crm-codfisc 9(04) Codice info CRM da cui leggere il codice fiscale del tecnico
assist tecnico-info-crm-id-alfa tm-cfg-tecnico-info-crm-id-alfa 9(04) Codice info CRM identificativo alfabetico tecnico
assist tecnico-info-crm-id-num tm-cfg-tecnico-info-crm-id-num 9(04) Codice info CRM identificativo numerico tecnico

Dati di azienda: az-cli-int (cliente interno) deve essere configurato e l'anagrafica corrispondente deve avere ana-cofi, ana-piva, ana-nome, ana-loca, ana-prov compilati.


Tracciati record di output

T0 - Record di testa (PIC X(1800) + CR + LF)

Campo Origine
t0-tipo = 0, t0-cod-id = "MIS00", t0-cod-nr = 26 Costanti
t0-cod-fisc, t0-piva Cliente interno (ana-cofi, ana-piva)
t0-tipo-abil tm-tipo-abil (1/2)
t0-id-alf-sigillo tm-id-alf-sigillo
t0-rag-soc, t0-comune, t0-prov Cliente interno
t0-anno, t0-trimestre Da maschera
t0-cfisc-int, t0-nr-iscr, t0-imp-trx, t0-data-imp Dati intermediario

T2 - Record di dettaglio (uno per intervento)

Campo Origine
t2-tipo = 2 Costante
t2-cod-fisc-tecn, t2-id-alf-tecn, t2-id-num-tecn Da CRMS06 sul tecnico
t2-data-ini, t2-data-fin trs-data-int (= data intervento)
t2-esito trs-esito (0/1) - modificabile in griglia
t2-piva, t2-rag-soc, t2-comune, t2-prov, t2-indi, t2-cap Cliente della chiamata
t2-tipo-int 1/2/3 in base al modello certificazione - modificabile in griglia
t2-marchio, t2-modello, t2-logotipo, t2-matricolare Da ASNMARCH, ASNMODEL, primi 2 char di amtr-sn (logotipo), char 3-20 di amtr-sn (matricolare)

T9 - Record di coda (identico a T0 ma con tipo 9)


Validazioni in x71-controlla-dati

Per ogni record di transito, scrive log se mancano:

Campo controllato Messaggio log
trs-cfisc-tecn "Manca Codice Fiscale tecnico: N"
trs-id-alf-tecn "Manca Ident. Alfabetico tecnico: N"
trs-id-nr-tecn "Manca Ident. Numerico tecnico: N"
ana-piva "Manca P.Iva Cliente: N"
ana-nome "Manca ragione sociale Cliente: N"
ana-loca "Manca Localita' Cliente: N"
ana-prov "Manca provincia Cliente: N"
ana-ind "Manca Indirizzo Cliente: N"
ana-cap "Manca CAP Cliente: N"
trs-des-marca "Manca Marca su Matricola: N"
trs-des-modello "Manca Modello su Matricola: N"
trs-tipo-fisc "Manca Logotipo su Matricola: N"
trs-matricolare "Manca Cod.Matricolare su Matricola: N"

Se almeno un errore -> w-ok-dati = "N" -> log mostrato all'utente, estrazione abortita.


Logica di calcolo trimestre

In x-controlla-tm-trimestre, se tm-data-da = 0, le date vengono calcolate dal trimestre:

Trimestre Da A
1 01/01 anno 31/03 anno
2 01/04 anno 30/06 anno
3 01/07 anno 30/09 anno
4 01/10 anno 31/12 anno

Logica "intervento piu' vecchio della chiamata"

In crea-transito, per ogni intervento del periodo viene verificato che non esista un altro intervento della stessa chiamata con data precedente e stato P o C. Solo l'intervento piu' vecchio viene considerato (loop su BSNINTES = ASNINTES rinominato).

Razionale: il file fiscale richiede l'intervento "iniziale" della pratica, non quelli di follow-up.


Limiti tecnici

Elemento Limite Costante
Numero massimo righe griglia 2.000 k-max-ele-tab
Lunghezza record file fiscale 1.800 byte (PIC X(1800))

Note tecniche

  • Il file di transito cogtrans viene aperto con nome temporaneo #$trs_asn401.<operatore> nella ext-tmp-dir
  • Il file fiscale e' un file binario sequenziale con nome tabverpe_<ANNO>_<TRIMESTRE>.txt nella ext-tmp-dir
  • Il file di log errori e' #$asn401_<operatore>.txt
  • Le accentate nei commenti sono in ISO-8859-1
  • Il programma e' completamente standalone; il commento asn401-called/asn401-caller esiste ma il blocco e' commentato (***********)
  • Marker 061017 nel sorgente: il campo id-num-tecn e' stato modificato da PIC 9(04) a PIC X(04) per supportare identificativi alfanumerici
  • Lettura tecnico via CRMS06 usa atn-cod-nom di COGANATN come chiave del nominativo CRM