COGK38 - Inserimento Ricevute Centro Revisioni¶
Descrizione¶
Programma per l'inserimento di ricevute fiscali e fatture immediate nell'ambito della procedura Centro Revisioni. Gestisce testata documento (intestatario officina o proprietario, targa, tipo documento, omaggio) e righe prestazioni (codice, descrizione, importo, IVA). Al salvataggio crea il documento su COGREVIS, genera il movimento su COGMOMAG e la testata su COGTESBO. Supporta importazione dati da file esterno MCTC (motorizzazione civile).
Tabelle utilizzate¶
| Tabella | Accesso | Descrizione |
|---|---|---|
| COGGEANA | Lettura | Anagrafica clienti/fornitori (intestatario e proprietario) |
| COGMERCI | Lettura | Anagrafica merci/prestazioni |
| COGTESBO | Lettura/Scrittura | Testate documenti di vendita |
| COGMOMAG | Lettura/Scrittura | Movimenti di magazzino/contabili |
| COGREVIS | Lettura/Scrittura | Archivio ricevute revisioni |
| COGAPPOG | Lettura/Scrittura | Dati di appoggio clienti (revisioni omaggio, tipo stato) |
| COGDESAG | Lettura | Descrizioni aggiuntive merci |
| COGTABEL | Lettura | Tabelle di configurazione (aliquote IVA, tipo 67) |
| FEURTAB | Lettura | Tabella file euro/percorsi |
| IMPORT | Lettura (opt) | File importazione dati intestatario (line-sequential, 100 car.) |
| MCTC-FILE | Lettura (opt) | File dati MCTC motorizzazione civile (line-sequential, 300 car.) |
Struttura dati maschera (tab-maschera)¶
La struttura tab-maschera raccoglie tutti i dati della testata:
- tm-tipobolla: tipo bolla (fisso 'D' = documento revisioni)
- tm-tipo-ana: tipo anagrafica cliente ('C' = cliente)
- tm-cau: causale documento (1)
- tm-intestatario: dati dell'intestatario (codice, nome, indirizzo, PIVA, CF, flag inserimento)
- tm-proprietario: dati del proprietario del mezzo
- tm-data: data documento (AAAAMMGG)
- tm-tipo-doc: tipo documento ('S' = ricevuta+fattura, 'F' = fattura immediata, 'R' = ricevuta fiscale)
- tm-targa: targa veicolo (15 car., forzata uppercase)
- tm-omaggio: flag omaggio ('D' = da fatturare, 'O' = omaggio)
- tm-app-nr-rev: numero revisioni omaggio dal COGAPPOG
- tm-nr-rev-fatte: revisioni gia' effettuate
Le righe prestazioni sono in tm-righe (array 100 elementi):
- tm-prest: codice prestazione (gru+sot, 4 car.)
- tm-cod: codice articolo (da cogmerci)
- tm-um: unita' di misura
- tm-des1, tm-des2: descrizione riga 1 e 2
- tm-impo: importo (9(12)v999999)
- tm-iva: codice IVA
- tm-ali: aliquota IVA (da COGTABEL tipo 67)
- tm-art: articolo esenzione
- tm-con: codice contratto
Flusso di elaborazione¶
Inizializzazione (a000)¶
- Verifica abilitazione operatore (
ctr-abil). - Apertura file tramite
feurtab. - Lettura dati azienda (
rd-azi). - Caricamento maschera in memoria (
rd-msk-all). - Lettura divisa di conto via UTILU10 (operazione
GetDivisaConto).
Acquisizione testata (a4 → a10 → a25 → a30 → a60)¶
a4 - Reset: inizializzazione tab-maschera e tm-righe, data proposta da sistema, tipo-ana = 'C', tipo-bolla = 'D', causale = 1.
a10 - Intestatario:
- Input: codice cliente (accept su tm-cli-i) oppure nome per ricerca.
- F5: inserimento nuova anagrafica (x1-ins-intest).
- F7: ricerca per targa (x7-ric-targa).
- Se codice > 0: lettura rd-coggeana, compilazione campi anagrafica.
- Determinazione tipo intestatario: codice < 1000 o = 1180 o app-tip-stt = "OF" → Officina; altrimenti Proprietario.
- Lettura COGAPPOG per revisioni omaggio (app-n-rev-omaggio); se > 0, conteggio revisioni gia' fatte (x6-conta-rev).
a25 - Proprietario: stessa logica di a10, validazione codice >= 1000.
a30 - Data documento: input via COGS52 (calendario).
a40 - Tipo documento: selezione via COGS60 (lista opzioni). Per officina: Ricevuta Fiscale / Fattura Immediata. Per proprietario: Ricevuta+Fattura / Fattura Immediata. Avviso se fattura e PIVA assente.
a50 - Targa: input libero, forzato uppercase, obbligatorio.
a60 - Omaggio: visibile solo se w-fl-oma = "O"; selezione Da Fatturare / Omaggio via COGS60.
Acquisizione righe prestazioni (b-00 → b-10 → b-50)¶
Loop su i (1..100), j (posizione display 1..t-length):
- b-10: input codice prestazione (
tm-prest(i), gru+sot 4 car.); F8 = ricerca via UTILWK32; F3 = salva; F5 = cancella riga. - Lettura COGMERCI per il codice gru+sot+cod=0 (cerca la prima merce del gruppo/sottogruppo).
- Lettura COGDESAG (tipo "M", prog 1 e 2) per descrizioni.
- Lettura COGTABEL tipo 67 per aliquota IVA.
- b-20: input
tm-des1(i)(descrizione prima riga, obbligatoria). - b-30: input
tm-des2(i)(descrizione seconda riga). - b-40: input importo via UTILU10.
- b-50: input codice IVA; F8 = ricerca via UTILW11; verifica esistenza in COGTABEL tipo 67.
- Se
tm-art(i) != 0: IVA forzata a "ES", aliquota a zero.
Controlli pre-salvataggio (b-90)¶
- Scansione tutte le righe: verifica almeno un importo significativo (
w-fl-impo) e almeno una descrizione (w-fl-des). - Richiesta conferma finale (
acc-conf, F3).
Salvataggio (c-aggiorna)¶
- Se
tm-fl-ins-i = "I": inserimento nuova anagrafica intestatario in COGGEANA e COGAPPOG. - Se
tm-fl-ins-p = "I": inserimento nuova anagrafica proprietario. - Generazione numero progressivo ricevuta (
w-nr-rev). - Scrittura record su COGREVIS.
- Scrittura testata documento su COGTESBO.
- Scrittura movimenti su COGMOMAG (una riga per ogni prestazione valorizzata).
- Aggiornamento contatore revisioni su COGAPPOG.
Importazione MCTC¶
Il programma supporta l'importazione automatica dei dati dell'intestatario da file MCTC (motorizzazione civile). Il file e' line-sequential, record 300 caratteri. La funzionalita' e' attivabile tramite parametro al richiamo.
Importazione da file esterno (IMPORT)¶
File line-sequential 100 caratteri, con CAP in posizione 1-5 (ridefinizione w-import-rec-r1) o PIVA in posizione 1-11 (ridefinizione w-import-rec-r2). Utilizzato per precompilare i dati dell'intestatario.
Subroutine chiamate¶
| Subroutine | Scopo |
|---|---|
| COGS52 | Input data con calendario |
| COGS60 | Selezione da lista opzioni |
| COGS22 (indiretto) | Ricerca merci/anagrafiche |
| UTILWK32 | Ricerca codice prestazione |
| UTILW06 | Ricerca anagrafica per nome |
| UTILW11 | Ricerca codice IVA |
| UTILU10 | Input/display valori in divisa |
| UTILP41 | Gestione stampa |
| UTILS04, UTILS25, UTILS43, UTILS44, UTILS52, UTILS60, UTILS65 | Utility varie |
| UTILV53 | Utility verifica codice fiscale (utils util-e05) |
Note implementative¶
- Il programma e' richiamato con linkage
utils01,utilv52,wcont1(contienestringhe). w-fl-omaviene impostato a "O" da logica esterna (es. configurazione azienda o parametro) per abilitare la gestione omaggio.- La maschera e' definita inline come array di 25 righe x 80 colonne (
mm-1/mm-1-r) — interfaccia testuale, non GUI. - Il contatore
w-nr-rev(tm-app-nr-rev,tm-nr-rev-fatte) gestisce il ciclo delle revisioni omaggio: viene incrementato su COGAPPOG ad ogni salvataggio. - La dimensione massima della griglia prestazioni e' 100 righe (
t-size = 100);t-start = 15(riga schermo di inizio griglia);t-length = 4(righe visibili). - Codici speciali officina: anagrafica con codice < 1000, o codice = 1180, o
app-tip-stt = "OF"vengono trattati come officina (tipo 'O'); gli altri come proprietario (tipo 'P').