cbb608d183
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 1.5 fino alla patch 811 git-svn-id: svn://10.65.10.50/trunk@8985 c028cbd2-c16b-5b4b-a496-9718f37d4682
829 lines
38 KiB
Plaintext
Executable File
829 lines
38 KiB
Plaintext
Executable File
IVA.TXT
|
|
=======
|
|
|
|
|
|
AZIONE DATA CHI COMMENTO
|
|
=======================================================================================================
|
|
creato 1996/07/19 angelo descrizione dei file usati nei programmi di liquidazione
|
|
aggiornato 1996/10/22 angelo descrizione generica del funzionamento del programma di liquidazione
|
|
aggiornato 1996/11/13 angelo modifiche per trasferimento ad IVA 11'96
|
|
aggiornato 1996/11/20 angelo modifiche per aggiungere codice A36 in stampa riepilogo progressivi
|
|
aggiornato 1996/12/01 angelo modifiche per trasferimento IVA11. Corretto il trasferimento di piu' attivita'
|
|
aggiornato 1997/10/20 angelo modifiche per implementazione progressivi (PIM) sulla 13a liquidazione
|
|
aggiornato 1997/10/31 angelo modifiche per nuovo prospetto agricolo
|
|
aggiornato 1997/12/01 angelo modifiche per IVA11'97
|
|
aggiornato 1997/12/05 angelo modifiche per PRORATA dal 1998
|
|
aggiornato 1999/02/10 angelo modifiche per Sospensione IVA, PLAFOND & PRORATA dal 1998
|
|
|
|
|
|
PROPOSITO
|
|
=========
|
|
|
|
Il seguente file non e' niente di ufficiale e pertanto da ritenersi valido cosi com'e'.
|
|
La documentazione che segue sono varie note sul funzionamento dei programmi IVA, descrizione
|
|
delle tabelle utilizzate ecc. di modo che' chicchessia possa subentrare senza troppi
|
|
problemi in questo sconfinato mondo di imposte sul valore aggiunto.
|
|
Sarebbe cosa buona e giusta che eventuali importanti modifiche ai programmi siano qui
|
|
dettagliatamente spiegate, onde evitare avere sempre un documento a portata di mano che
|
|
tutti possano consultare, senza dover scorrere disperatamente 10000 linee di C++
|
|
|
|
|
|
19 Luglio 1996
|
|
|
|
TABELLE PROGRESSIVI
|
|
-------------------
|
|
|
|
Ecco qui, tanto per cominciare un elenco riassuntivo delle tabelle utilizzate dai programmi
|
|
di calcolo liquidazione, visualizzazione e stampe varie.
|
|
|
|
%DEL: tabella comune per memorizzare i versamenti effettuati (deleghe IVA)
|
|
CODTAB = CODDITTA(Z)[0-4]+ANNO[5-8]+MESE(Z)[9-10]+TIPO[11,11]
|
|
S6 = Codice tributo
|
|
S7 = Codice ABI banca
|
|
S8 = Codice CAB banca
|
|
S9 = Codice concessione
|
|
D0 = Data delega
|
|
R0 = Importo versamento (esclusi interessi)
|
|
R1 = Interessi da pagare
|
|
R2 = Importo del versamento inclusi interessi
|
|
B0 = Stampato
|
|
|
|
Nota: l'ultimo carattere di CODTAB (TIPO) si riferisce al tipo di versamento:
|
|
1 = normale
|
|
2 = annuale
|
|
3 = art.74
|
|
4 = cessazione attivita'
|
|
5 = integrativa
|
|
7 = acconti IVA
|
|
Il campo R2 in realta' non e' la somma di R0 + R1, poiche' R0 = ROUND(R2 - R1).
|
|
Pertanto e' utile tenere l'importo lordo non arrotondato in un campo separato
|
|
visto che in alcuni casi la liquidazione richiede di stampare proprio questo valore.
|
|
|
|
%LIA: tabella comune per memorizzare i risultati della Liquidazione IVA Annuale
|
|
CODTAB = DITTA[0-4](Z)+ANNO[5-8]
|
|
S1 = Credito precedente e acquisti intracomunitari separati da !
|
|
S7 = Frequenza versamenti per anno liquidazione (M,T)
|
|
S8 = Tipo acconto ("S"aldo oppure "A"cconto)
|
|
R0 = Credito anno precedente
|
|
R1 = Volume di affari lordo
|
|
R2 = Volume di affari attivita' 1
|
|
R3 = Volume di affari attivita' 2
|
|
R4 = Acconto dicembre
|
|
R5 = Credito di costo agenzie di viaggio
|
|
R6 = Credito utilizzato
|
|
R7 = Iva sulle vendite annotate fino al 20/12
|
|
R8 = Iva sugli acquisti annotati fino al 20/12
|
|
R9 = Rettifica
|
|
R10 = Iva chiesta a rimborso
|
|
R11 = Ulteriori detrazioni
|
|
R12 = Pro-rata indetraibile
|
|
R13 = Iva su operaz. fino al 20 dic., ma non fatturate
|
|
R14 = Iva su operaz. fino al 20 dic., ma non annotate
|
|
B1 = Liquidazione differita
|
|
B2 = Regime agricoltore minimo
|
|
|
|
LAM: tabella di ditta per memorizzare i risultati Liquidazione Attivita' Mensile
|
|
CODTAB = ANNO[0-3]+MESE(Z)[4-5]
|
|
R0 = Totale IVA vendite in regime IVA su tutte le attivita'
|
|
R1 = Totale IVA acquisti in regime IVA su tutte le attivita'
|
|
R2 = Credito precedente o inizio anno
|
|
R3 = Debito precedente da liquidazione a debito < 50.000
|
|
|
|
LIM: tabella di ditta per memorizzare i risultati della Liquidazione Iva Mensile
|
|
CODTAB = ANNO[0-3]+MESE(Z)[4-5]
|
|
S0 = Descrizione rettifica (1)
|
|
S1 = Descrizione rettifica (2)
|
|
S4 = Codice ABI presso cui e' effettuato il versamento
|
|
S5 = Codice CAB presso cui e' effettuato il versamento
|
|
S6 = Codice concessione a cui e' intestato il versamento
|
|
S7 = D = rettifica a debito; C = rettifica a credito
|
|
R0 = Risultato mese ( < 0 = credito): comprende tutto
|
|
R1 = Rimborso richiesto (immesso da visualizzazione)
|
|
R2 = Credito di costo agenzie di viaggio
|
|
R3 = Debito mensile agenzie di viaggio
|
|
R4 = Percentuale di ripartizione agenzie di viaggio
|
|
R5 = Importo rettifica ( < 0 = a credito)
|
|
R6 = Totale ulteriori detrazioni
|
|
R7 = Totale conguaglio prorata (solo in annuale)
|
|
R8 = Totale versamenti effettuati
|
|
R9 = Totale versamenti integrativi effettuati
|
|
R10 = Tasso di interesse applicato
|
|
R11 = Acconto versato a dicembre (solo per dicembre!)
|
|
R12 = Risultato totale a credito (segno +)
|
|
R13 = Risultato totale a debito
|
|
R14 = Interesse versato
|
|
D0 = Data versamento
|
|
B0 = Mese calcolato (invalidato da primanota)
|
|
B1 = Stampato su registro bollato
|
|
B2 = Diritto al rimborso infraannuale per il mese
|
|
|
|
PIM: Tabella di ditta per memorizzare i progressivi IVA
|
|
CODTAB = ANNO[0-3]+ATT(Z)[4-8]+TIPATT[9,9]+REG[10,12]+MESE(Z)[13,14]+
|
|
TIPOCR[15,15]+CODIVA[16,19]+TIPODET[20,20]
|
|
S0 = Imponibile/IVA importi relativi art40 c.5/6/8 a.i.(separati da "!")
|
|
S1 = Imponibile/IVA fatture in ritardo (separati da "!")
|
|
S2 = Imponibile/IVA corrispettivi registrati al netto dell'IVA (separati da "!")
|
|
S4 = Codice IVA a cui ventilare (corrispettivi)
|
|
S5 = Tipo IVA (da tabella IVA)
|
|
I0 = Tipo importi (1 = netto, 2 = lordo)
|
|
I1 = Tipo movimento (1 = vendita, 2 = acquisto)
|
|
R0 = Imponibile totale
|
|
R1 = IVA totale
|
|
R2 = Lordo corrispettivi
|
|
R5 = Imponibile fatture con scontrino (<= R0)
|
|
R6 = IVA fatture con scontrino (<= R1)
|
|
R7 = Imponibile autofatture non resid. art. 17 (<= R0)
|
|
R8 = IVA autofatture non resid. art. 17 (<= R1)
|
|
R9 = Imponibile bolle doganali relative (compreso in R0)
|
|
R10 = IVA bolle doganali relative (compreso in R1)
|
|
R11 = Totale imponibile fatture sospensione imposta (indipendente da R0)
|
|
R12 = Totale IVA fatture sospensione imposta (indipendente da R1)
|
|
R13 = Totale imponibili falsi corrispettivi (reg corr ma doc come FS)
|
|
R14 = Totale IVA falsi corrispettivi (reg corr ma doc come FS)
|
|
B1 = Codice IVA corrispettivi da ventilare
|
|
B2 = Valido per calcolo volume di affari
|
|
B3 = Validi per calcolo rimb. infraanuuale
|
|
B4 = Riporta il flag RicAcq dei parametri ditta
|
|
|
|
Dove: ANNO e' l'anno di riferimento
|
|
ATT e' il codice attivita'(zerofilled)
|
|
TIPOATT e' il tipo di attivita' (1 default, 2 se ci sono anche altre attivita')
|
|
REG e' il registro (ACQ, VEN, COR)
|
|
MESE e' il mese di riferimento
|
|
TIPOCR e' il tipo di costo/ricavo (0,1,2,3,4,5,6,7,8,9: vedi piano dei conti)
|
|
CODIVA e' il codice IVA relativo
|
|
TIPODET e' il tipo di detrazione (" " = regime normale, "1" = IVA ind. su acquisti riferiti
|
|
a ricavi esenti, "3" = IVA indicata per passaggi interni al solo fine di calcolo
|
|
ventilazione, "9" IVA non detrabile per articolo 19)
|
|
|
|
PUM: Tabella di ditta per memorizzare i progressivi IVA
|
|
CODTAB = ANNO[0-3]+CODATT[4,8]+TIPOATT[9,9]+MESE[10,11]
|
|
R0 = Totale cessioni beni ammortizzabili
|
|
R1 = Totale IVA su cessioni ammortizzabili
|
|
R2 = Tot. acquisti ammortizzabili detraz. 6%
|
|
R3 = IVA su beni ammortizz. detr. 6%
|
|
R4 = Totale vendite esenti IVA riga B1 (C1)
|
|
R5 = Totale vendite esenti IVA riga B2 (C2)
|
|
R6 = Totale vendite esenti IVA riga B3 (C3)
|
|
R7 = Totale acquisti esenti IVA riga B14
|
|
R8 = Totale imponibile passaggi interni
|
|
R9 = Totale IVA passaggi interni
|
|
R10 = Totale imponibile reg. agricolo tipo 1
|
|
R11 = Totale imponibile reg. agricolo tipo 2
|
|
R12 = Totale imponibile vendite esenti IVA
|
|
R13 = Totale vendite esenti iva riga B4 (C1A)
|
|
|
|
PAM: Tabella di ditta per memorizzare i progressivi IVA
|
|
CODTAB = ANNO[0-3]+CODATT[4,8]+TIPOATT[9,9]+MESE(Z)[10,11]
|
|
R0 = Totale acquisti in regime IVA
|
|
R1 = Totale vendite in regime IVA (Vol Aff. Lordo Mensile)
|
|
R2 = Totale lordo acquisti beni per rivendita da inizio anno
|
|
R3 = Totale corrispettivi da ventilare
|
|
R4 = Totale imponibile bolle doganali (acquisti)
|
|
R5 = Totale IVA bolle doganali (acquisti)
|
|
R6 = Totale imponibile acquisti in sosp. imposta
|
|
R7 = Totale IVA acquisti in sosp. imposta
|
|
R8 = Totale imponibile vendite in sosp. imposta
|
|
R9 = Totale IVA vendite in sosp. imposta
|
|
R10 = Totale imponibile spese generali
|
|
R11 = Totale IVA spese generali
|
|
R12 = Totale Imponibile acquisti a esig. diff da detrarre
|
|
R13 = Totale IVA acquisti a esig. differita da detrarre
|
|
R14 = Totale Imponibile vendita a esig. differita da pagare
|
|
R15 = Totale IVA vendita a esig. differita da pagare
|
|
|
|
|
|
POM: Tabella di ditta per memorizzare i progressivi IVA
|
|
CODTAB = ANNO[0-3]+CODATT[4,8]+TIPOATT[9,9]+MESE[10,11]
|
|
R0 = Totale IVA acquisti intracomunitari (flag INTRA su rmoviva)
|
|
R1 = Totale imponibile acquisti non detraibili art. 19
|
|
R2 = Totale IVA acquisti non detraibili art. 19
|
|
R3 = Totale imponibile acquisti beni ammortizzabili detraibili
|
|
R4 = Totale IVA acquisti beni ammortizzabili detraibili
|
|
R5 = Totale imponibile acquisti beni per rivendita (non sono tutti base per ventilazione)
|
|
R6 = Totale IVA acquisti beni per rivendita
|
|
R7 = Totale imponibile beni acquisiti in leasing
|
|
R8 = Totale IVA beni acquisiti in leasing
|
|
R9 = Totale imponibile acquisti indetraibili su ricavi esenti
|
|
R10 = Totale IVA acquisti indetraibili su ricavi esenti
|
|
R11 = Totale imponibile acq. beni ammortizz. non detraibili
|
|
R12 = Totale IVA acq. beni ammortizz. non detraibili
|
|
R13 = IVA a debito agenzie viaggio
|
|
|
|
PLM: Tabella di ditta per memorizzare i Progressivi Liquidazione Mensili
|
|
CODTAB = ANNO[0-3]+CODATT[4,8]+TIPOATT[9,9]+MESE[10,11]
|
|
R0 = IVA vendite
|
|
R1 = IVA acquisti
|
|
R2 = Pro-rata indetraibile totale (acq. rif. anno attuale + acq. rif. anni precedenti)
|
|
R3 = Ulteriori detrazioni (6%)
|
|
R4 = % pro-rata anno precedente
|
|
R5 = se AG.VIAGGIO: Corrispettivi CEE; se AGRICOLO: tipo agr. == 1
|
|
R6 = se AG.VIAGGIO: Corrispettivi extra CEE; se AGRICOLO: tipo agr. == 2
|
|
R7 = se AG.VIAGGIO: Acquisti CEE; se AGRICOLO: tipo agr. == 3
|
|
R8 = se AG.VIAGGIO: Acquisti fuori CEE; se AGRICOLO: tipo agr. == 4
|
|
R9 = se AG.VIAGGIO: Corrispettivi misti CEE; se AGRICOLO: tipo agr. == 5
|
|
R10 = se AG.VIAGGIO: Acquisti misti CEE; se AGRICOLO: tipo agr. == 6
|
|
R11 = se AG.VIAGGIO: Acquisti misti fuori CEE;
|
|
R12 = % pro-rata corrente
|
|
R13 = se AGRICOLO: totale iva in detrazione Ia parte tabella A
|
|
R14 = Pro-rata indetraibile acq. rif. doc. 2 anni precedenti (ma con % prorata anno addietro)
|
|
R15 = Pro-rata indetraibile acq. rif. doc. 3 anni precedenti (ma con % prorata 2 anni addietro)
|
|
R16 = % pro-rata 2 anni addietro
|
|
B0 = Attivita' calcolata
|
|
B1 = TRUE se vi sono documenti con riferimento anno prec. ma manca la tabella (solo dal 1998)
|
|
|
|
PPA: Tabella di ditta per memorizzare i Progressivi Plafond Attivita mensili
|
|
CODTAB = ANNO[0-3]+CODATT(Z)[4-8]+TIPOATT[9,9](sempre = 1)+MESE(Z)[10,11]TIPOESENZIONE[12,12]
|
|
R0 = Totale acquisti Italia
|
|
R1 = Totale acquisti estero (bolle doganali)
|
|
R2 = Rimanenza plafond mese precedente (non conteggia il mese in corso)
|
|
|
|
%PLA: Tabella comune per memorizzare i dati annuali per i PLAfond
|
|
CODTAB = DITTA[0-4]+ANNO[5-8]+CODATT(Z)[9-13]+TIPOATT(sempre = 1)[14,14]
|
|
S1 = (real)Volume di affari attivita' 2
|
|
S2 = (Non utilizzati)
|
|
S3 = (Non utilizzati)
|
|
S3 = (Non utilizzati)
|
|
S7 = Tipo attivita' ("S"ervizio, "M", "E")
|
|
R0 = Totale vendite in regime IVA (valido per calcolo prorata)
|
|
R1 = Totale acquisti esenti riga B1 (C1)
|
|
R2 = Totale acquisti esenti riga B2 (C2)
|
|
R3 = Totale acquisti esenti riga B3 (C3)
|
|
R4 = Totale cessioni beni ammortizzabili
|
|
R5 = Ammontare iniziale plafond art. 8
|
|
R6 = Ammontare iniziale plafond art. bis
|
|
R7 = Ammontare iniziale plafond art. 9
|
|
R8 = % pro-rata
|
|
R9 = conguaglio pro-rata
|
|
R10 = % pro-rata ricalcolato (vale per l'anno successivo)
|
|
R11 = Totale IVA acquisti attivita' (senza pro-rata pagato nell'anno)
|
|
R12 = Totale pro-rata pagato nell'anno
|
|
R13 = Totale lordo vendite attivita'
|
|
R14 = Volume affari attivita' 1
|
|
R15 = Totale acquisti esenti riga B4 (C1A)
|
|
|
|
%IVA: Tabella comune per memorizzare i dati relativi ai codici iva
|
|
CODTAB = Codice
|
|
S0 = Descrizione
|
|
S1 = Tipo codice ("" = Regime normale, "VE" = ricavi da ventilare, "ES" = operazioni esenti"
|
|
"NI" = operazioni non imponibili, "NS" = Non soggetti
|
|
S3 = Tipo di gestione plafond ("" = gestione normale, "1" Op. art. 8, "2" op. art. 8bis,
|
|
"3" op. art. 9)
|
|
S4 = Tipo di gestione regime agricolo ("" = regime normale, "1" vendite regime agr.,
|
|
"2" = vendite accessorie/acquisti non agr., "3" = acquisti ad uso promiscuo)
|
|
S5 = Tipo di gestione per ag. viaggio ("" = regime normale, "1" = op. interno CEE,
|
|
"2" = op. fuori CEE, "3" = vendite miste CEE, "4" = acquisti misti parte CEE,
|
|
"5" acquisti misti parte fuori CEE)
|
|
S6 = Codice IVA a cui ventilare
|
|
S7 = Numero della colonna allegato clienti ("" = non in allegato, "1" = imponibili,
|
|
"3" = non imponibili)
|
|
S8 = Numero della colonna allegato fornitori ("" = non in allegato "1" = imponibili,
|
|
"3" = senza app. imp., "4" = Non imponibili)
|
|
R0 = Aliquota
|
|
I0 = Percentuale IVA teorica
|
|
S2 = N.ro di riga vendite IVA11 per op. esenti e non imponibili
|
|
"" Nessuno
|
|
"20" Operazioni non imponibili (comma 1, artt.8, 8bis e 9)
|
|
"21" Operazioni non imponibili a seguito di dich. d'intento
|
|
"22" Altre operazioni non imponibili
|
|
"24" Operazioni non soggette (art. 74 comma 7)
|
|
"25" Op. non sogg. effettuate nei confronti di terremotati
|
|
"B1" Ammontare op. es. escluse da nr. 1 a 9 e 11 art. 10
|
|
"B2" Ammontare op. es. di cui al nr. 11 art. 10
|
|
"B3" Ammontare op. es. di cui ai nr. 1 a 9 art. 10
|
|
"B4" Ammontare op. es. di cui ai nr.
|
|
"B5" Ammontare op. es. di cui ai nr.
|
|
"G7A" Cessioni intracomunitarie non imponibili
|
|
"G7B" Prestazioni di servizi non soggette all'imposta
|
|
S9 = N.ro di riga acquisti IVA11 per op. esenti e non imponibili
|
|
"" Nessuno
|
|
"10" Acquisti non imponibili (comma 2, artt8, 8bis e 9)
|
|
"11" Altri acquisti non imponibili
|
|
"12" Acquisti esenti
|
|
"13" Acquisti non soggetti (art. 74 comma 7)
|
|
"14" Acquisti non soggetti all'imposta effettuati dai terremotati
|
|
B0 = TRUE se il codice deve comparire nel modello 101
|
|
B1 = TRUE se il codice deve comparire nel modello 102
|
|
B2 = Codice IVA sospeso (TRUE se vero)
|
|
B3 = Codice escluso dal calcolo rimborso infrannuale (TRUE se vero)
|
|
B4 = Codice escluso dal calcolo rimborso per aliquota media (TRUE se escluso)
|
|
|
|
ESC: tabella di ditta per memorizzare gli esercizi contabili
|
|
CODTAB = Codice esercizio
|
|
D0 = Data inizio esercizio
|
|
D1 = Data fine esercizio
|
|
D2 = Data di scarico
|
|
|
|
RMB: tabella di ditta per memorizzare i rimborsi (obsolete?)
|
|
CODTAB = ANNO[0-3]+MESE(Z)[4-5]+CODIVA(Z)[6-9]+TIPOREG[10,10]
|
|
R0 = Imponibile per rimborso
|
|
R1 = IVA per rimborso
|
|
R2 = Percentuale IVA relativa
|
|
|
|
%VER: tabella comune per memorizzare i parametri relativi agli interessi ed ai versamenti.
|
|
CODTAB = ANNO[0,3]+MESE[4,5]
|
|
R0 = Percentuale interesse primo trimestre
|
|
R1 = Percentuale interesse secondo trimestre
|
|
R2 = Percentuale interesse terzo trimestre
|
|
R3 = Percentuale interesse quarto trimestre
|
|
R4 = Percentuale interesse annuale
|
|
R5 = Importo minimo versamento periodico
|
|
R6 = Importo minimo versamento annuale
|
|
R7 = Importo minimo versamento acconto
|
|
R8 = Importo minimo versamento integrativo
|
|
R9 = Importo minimo versamento cessazione
|
|
R10 = Importo minimo versamento Art. 74
|
|
R11 = Percentuale per calcolo acconti su liquidazione normale
|
|
R12 = Percentuale per calcolo acconti su liquidazione differita
|
|
|
|
PIA: Tabella di ditta per memorizzare i Progressivi IVA compensazione Agricoli
|
|
CODTAB = ANNO[0-3]+CODATT[4,8]+TIPOATT[9,9]+MESE[10,11]+IVAORD[12,15]+IVACOM[16,19]
|
|
R0 = Totale imponibile
|
|
R1 = Totale IVA secondo codice IVA di compensazione
|
|
|
|
|
|
|
|
22 Ottobre 1996
|
|
|
|
SEQUENZA DELLE CHIAMATE A FUNZIONE (FLUSSO GENERICO DEL PROGRAMMA)
|
|
==================================================================
|
|
|
|
Parte I: elaborazioni e calcoli:
|
|
-------------------------------
|
|
|
|
schema generico di flusso:
|
|
|
|
|
|
- set_print() :
|
|
* selezione input/ditte
|
|
- recalc_all()
|
|
* ciclo per ditte selezionate
|
|
* setta ditta corrente
|
|
* reperisce dati dalla ditta
|
|
* controlla sulle lim(B0) dei mesi preceddenti se devono essere ricalcolate
|
|
* ciclo da 1 al mese selezionato in input (_month)
|
|
- update_firm() per ogni mese del ciclo
|
|
* carica alcuni dati della ditta
|
|
* ciclo per ogni attivita' della ditta
|
|
* ciclo per tipo di attivita' (1 o 2)
|
|
* reperisce dati per l'attivita' corrente,
|
|
inizializzando tabelle per memorizzare progressivi e calcoli
|
|
* scorre i registri per settare flag per ventilazione (_isvent)
|
|
* se e' necessario il calcolo chiama:
|
|
- update_att()
|
|
* se sta calcolando la 13a chiama:
|
|
- recalc_annual()
|
|
* se e' richiesto il riepilogo liq ed e' l'ultimo mese
|
|
in elaborazione chiama:
|
|
- describe_att()
|
|
** fine ciclo
|
|
* se attivita' mista stampa il riepilogo:
|
|
- describe_att()
|
|
** fine ciclo
|
|
* se quater stampa il riepilogo:
|
|
- describe_att()
|
|
* se mese compatibile con il regime frequenza IVA:
|
|
- write_liq()
|
|
* se e' l'ultimo mese in elaborazione del ciclo:
|
|
- recalc_rimborso()
|
|
* se e' l'ultimo mese in elaborazione del ciclo e deve stampare la liquidazione:
|
|
- describe_firm()
|
|
- describe_liq()
|
|
* se e' stampa registri ed e' stato calcolato l'acconto
|
|
- describe_liq_acc();
|
|
* fine ciclo per mese
|
|
* fine ciclo per ditte
|
|
|
|
|
|
dettagli di funzioni:
|
|
|
|
- update_att() // aggiorna i progressivi per la ditta/mese/attivita' corrente
|
|
- zero_att() // scorre i pim/pum/pam/plm... e azzera quelli del mese/attivita' corrente
|
|
- recalc_att()
|
|
- recalc_ventilation()
|
|
- recalc_corripettivi()
|
|
|
|
- recalc_annual() // ricalcola progressivi annuali liq.
|
|
* legge dalla PLA alcuni dati
|
|
* scorre i PIM dell'anno corrente
|
|
* esegue la sommatoria di PIM->R0 per calcolare i volumi d'affari
|
|
* scorre i PLM della corrente attivita'
|
|
* esegue la sommatoria di alcuni campi di PLM/PUM/PAM
|
|
* scrive in PLA i dati calcolati
|
|
|
|
|
|
- describe_att()
|
|
// setta i vari DescrItem, che aggiunge a _descr_arr per la stampa successiva
|
|
- describe_name()
|
|
- describe_plafond()
|
|
- describe_ventilation()
|
|
- describe_agricolo()
|
|
- describe_viaggio()
|
|
- describe_pims()
|
|
- describe_consistence()
|
|
|
|
- write_liq() // Calcolo liq. mensili e liq. annuali. Scrive le lim
|
|
* posiziona tabella %VER
|
|
* calcola mese di rif. per liq. differita
|
|
* azzera variabili per totali vari
|
|
* ciclo sulle attivita' passate come parametro
|
|
* se differita e primo mese setta l'anno precedente
|
|
* ciclo su tutti i mesi (1..13)
|
|
* posiziona PLM
|
|
* totalizza vari importi
|
|
* fine ciclo sui mesi
|
|
* se agenzia di viaggio e non liq. diff.
|
|
* calcola credito costo, debito mensile, perc. ripart.
|
|
* fine ciclo su attivita'
|
|
* rettifica il risultato con credito prec. in base al mese corrente.
|
|
* se e' 13a liq.
|
|
* ciclo sulle attivita'
|
|
* totalizza volumi d'affari e calcola nuovo prorata, riscrivi PLA e LIA
|
|
solo se tipo di attivita' e' 1
|
|
* fine ciclo
|
|
* riscrive i volumi d'affari in LIA (R1,R2,R3)
|
|
* azzera record corrente di LIM, tranne R1, R5, S1, S0, S7
|
|
* rettifica il risultato con versamenti, acconto di dicembre...
|
|
* schiaffa dentro LIM/LAM vari risultati di calcoli
|
|
* mette il flag di ricalcolato sul record LIM del mese corrente(B1)
|
|
* se 13a liq. arrotonda alle 1000 lire sup. diversi importi e li rischiaffa in LIM/LAM
|
|
* riscrive LIM/LAM
|
|
|
|
- recalc_rimborso() // calcola condizioni per il diritto al rimborso infrannuale
|
|
// chiamata soltanto per i trimestri anche se annuale
|
|
// aggiornata a normative per anno liq. > 1994
|
|
* ciclo sulle attivita'
|
|
* totalizza volume d'affari ed es. non impon. (varia se usare 3 mesi oppure no)
|
|
|
|
// Prima condizione per il rimborso
|
|
* se rapporto tra esenti e vol. d'affari e > minima parte esente (0.25)
|
|
crea il _DescrItem del RIMBORSO
|
|
|
|
// Seconda condizione per il rimborso
|
|
* scorre i PIM per totalizzare imponibile/imposta acquisti/vendite
|
|
* se (iva acquisti/totale acquisti) > (iva vendite/ totale vendite),
|
|
ovvero se l'aliquota medit adegli acquisti e' > dell'aliquota media
|
|
delle vendite, allora...
|
|
* se l'aliquota acquisti eccede la soglia minima (10%) allora si ha diritto al rimborso.
|
|
* genera un _DescrItem con totale acquisti/vendite, rispettivi totali
|
|
imposte ed aliquota media.
|
|
* se sono state riscontrate le condizioni per il rimborso riscrive LIM.
|
|
* ritorna il _DescrItem generato.
|
|
|
|
- describe_firm()
|
|
* genera un _DescrItem con i dati della ditta:
|
|
rag. soc., freq. iva, mese corrente.
|
|
* aggiunge il _DescrItem generato all'array _descr_arr
|
|
|
|
- describe_liq()
|
|
* genera un _DescrItem con i dati finali della liquidazione
|
|
con eventuale satellite per il rimborso e prospettino
|
|
per i versamenti
|
|
* aggiunge il _DescrItem all'array _descr_arr
|
|
|
|
- describe_liq_acc()
|
|
* genera un _DescrItem con i dati per la liquidazione dell'acconto
|
|
* aggiunge il _DescrItem a _descr_arr
|
|
|
|
dettagli di update_att()
|
|
************************
|
|
// funzioni chiave per il calcolo
|
|
|
|
- recalc_att()
|
|
* azzera variabili contenenti i progressivi
|
|
* ciclo per gli elementi del cursore impostato.
|
|
Il cursore e' cosi' fatto:
|
|
LF_MOV
|
|
|------->LF_RMOVIVA
|
|
|------->LF_CAUSALI
|
|
Quindi il ciclo sara' sui movimenti,
|
|
controlla se il registro e' presente, la relativa
|
|
riga di rmoviva e' presente e se la data deve essere considerata.
|
|
|
|
* ciclo per ogni riga IVA del movimento corrente
|
|
* qui totalizza nei vari casi, sottocasi, casi particolari,
|
|
tutte le imposte/imponibili, memorizzandoli nei progressivi IVA.
|
|
* fine ciclo per righe IVA
|
|
* fine ciclo per movimenti
|
|
* calcolati tutti i movimenti e aggiornati i pim
|
|
se necessario risistema le imposte acquisti beni
|
|
per rivendita (scorre i PIM dal primo all'ultimo ricalcolando l'iva e riscrivendoli)
|
|
* calcola il prorata solo se liq. periodica, e lo memorizza in PLM->R2
|
|
* se e' agenzia di viaggio memorizza i relativi progressivi
|
|
* se e' agricolo memorizza i relativi progressivi
|
|
* memorizza sempre e comunque altri progressivi comuni
|
|
* riscrive i record delle tabelle mensili(PLM,PAM,PUM,POM)
|
|
|
|
- recalc_ventilation() // ricalcolo della ventilazione
|
|
* ricalcola i pim dei mesi dal primo al corrente se necessario:
|
|
esegue un ciclo da 1 al mese corrente e chiama ogni volta update_att()
|
|
(sembra una storia ricorsiva, in realta' lo e' poco)
|
|
* ciclo da 1 al mese corrente
|
|
// aggiunge gli acquisti del mese m operando sui pim
|
|
* ciclo per tutti i PIM relativi. Per i codici != da NS, NI ed ES
|
|
aggiunge all'array _vent_arr i progressivi.
|
|
* calcola totale acquisti su tutte le aliquote (scorre tutti gli elementi di _vent_arr,
|
|
sommando l'elemento _totale.
|
|
* calcola totale vendite (solo se mese 13 e si sta calcolando la 13a)
|
|
* ricalcola (solo per il mese in corso!) operando sull'array _vend_arr, ove sono
|
|
memorizzate le vendite.
|
|
* scorre gli elementi di _vend_arr
|
|
* calcola la percentuale di ripartizione:
|
|
se siamo in annuale si deve ripartire il totale vendite annuale tra i vari mesi,
|
|
altrimenti il totale del mese.
|
|
L'importo cosi' preparato viene affettato a seconda degli elementi di
|
|
_vent_arr, le percentuali di ripartizione sono ottenute dal rapporto
|
|
tra il totale acquisti del mese e il totale acquisti
|
|
* scorre ancora gli elementi di _vent_arr e calcola l'imposta/imponibile
|
|
da ventilar. Corregge l'iva vendite nei PLM->R0 ed il volume
|
|
d'affari nei PAM->R1 ed aggiorna i PIM->(R0,R1)
|
|
* se siamo in annuale, dopo aver ripartito una prima volta, esce dal ciclo
|
|
(in pratica viene eseguito una sola volta)
|
|
* fine ciclo
|
|
* memorizza i totali per il prospettino di ventilazione
|
|
* riscrive il tot. acq e vendite in PAM
|
|
|
|
- recalc_corrispettivi() // ricalcolo dei corrispettivi
|
|
* viene eseguita solo se ci sono elementi in _corr_arr (modificato
|
|
tramite add_corrisp() in recalc_att())
|
|
* scorre tutti gli elementi di _corr_arr
|
|
* per ogni _CorrItem estrae imponibile, imposta
|
|
* aggiusta l'IVA vendite in PLM->R0
|
|
* aggiusta il volume d'affari in PAM->R1
|
|
* aggiorna i PIM->(R0,R1)
|
|
* riscrive i records modificati
|
|
|
|
|
|
|
|
Parte II: stampa:
|
|
-------------------------------
|
|
|
|
schema generico di flusso.
|
|
|
|
* La stampa, avviene dopo aver creato tutti gli opportuni
|
|
_DescrItem e memorizzati in _descr_arr.
|
|
Per far cio' si utilizza il meccanismo della TPrint_application
|
|
pur non utilizzando nessun cursore o relazione di stampa,
|
|
basta ridefinire preprocess_page(), postprocess_page() e la
|
|
set_page(). Si utilizza quest'ultima come fulcro centrale della stampa
|
|
sfruttando il parametro cnt che viene passato alla stessa, visto
|
|
che in casi come questi esso e' sempre incrementale.
|
|
Per farla in breve, sappiamo tutti che una TPrint_applicatione e' cosi'
|
|
fatta:
|
|
|
|
* ciclo fintantoche' set_print() [vedi sopra] ritorna TRUE
|
|
* ciclo fintantoche' si vuol ripetere la stampa.
|
|
* ciclo per il numero di copie della stampa
|
|
* ciclo (almeno una volta) fino a quando postprocess_print() ritorna la ripetizione
|
|
* se preprocess_print() ritorna TRUE allora
|
|
* ciclo (almeno una volta) fino a quando postprocess_page() ritorna la ripetizione
|
|
* se preprocess_page() ritorna TRUE allora
|
|
* set_page()
|
|
* print_one()
|
|
* fine ciclo
|
|
* fine ciclo
|
|
* fine ciclo
|
|
* fine ciclo
|
|
* fine ciclo
|
|
|
|
Nel nostro caso la preprocess_page() ritorna TRUE se il numero di elementi di
|
|
_descr_arr e' != da 0.
|
|
La postprocess_page() ritorna NEXT_PAGE solo se non ci sono elementi in
|
|
_descr_arr o se l'elemento che tiene il conteggio (cnt) e' arrivato alla fine (_descr_arr.items()-1)
|
|
|
|
Ecco quindi che la set_page() assume una importanza fondamentale per settare le righe di
|
|
stampa:
|
|
- set_page()
|
|
* reperisce il _DescrItem corrente grazie a cnt da _descr_arr.
|
|
* resetta tutte le righe di stampa
|
|
* setta il salto foglio automatico a FALSE
|
|
* esegue una selezione multipla in base al membro _flags di
|
|
_DescrItem:
|
|
|
|
CHG_PARMS
|
|
SET_FIRM
|
|
PIM_ROW
|
|
PIM_HEAD
|
|
MISC_LIQ
|
|
TOT_ROW
|
|
PLAFOND
|
|
VENTILA
|
|
REGAGR
|
|
REGVIA
|
|
THE_END
|
|
LIQACC
|
|
ACCONTO
|
|
ACCHEAD
|
|
DELDEB
|
|
DELCRED
|
|
|
|
in base ad ognuno di questi flags viene chiamata una diversa funzione di
|
|
set delle righe di stampa.
|
|
|
|
|
|
13 Novembre 1996
|
|
|
|
TRASFERIMENTO IVA11
|
|
===================
|
|
|
|
|
|
Nuova feature aggiunta in occasione delle modifiche per il trasferimento IVA11:
|
|
|
|
- cache di lettura per i codici IVA e tabella registri.
|
|
|
|
Vengono semplicemente mantenuti 2 assoc array (1 per i codici iva ed uno
|
|
per i registri) dove ogni volta che viene letto un record nuovo (quindi
|
|
non presente nell'array) viene memorizzato. Quando viene richiesta la lettura
|
|
di un record viene prima controllato che esso non sia gia' presente in cache.
|
|
Le modifiche sono state effettuate nelle funzioni look_iva() e look_reg().
|
|
|
|
|
|
Per il trasferimento IVA 11 sono state implementate 3 nuove funzioni:
|
|
iva11_set_arr(), iva11_set_arr_pim(), iva11_write() ed aggiunto un assoc array: _iva11_arr.
|
|
Il procedimento e relativamente semplice:
|
|
viene utilizzato un assoc array dove memorizzare i valori da trasferire sui
|
|
files tab1100a e tab1100b. La chiave per memorizzare i valori viene posta uguale
|
|
al nome campo relativo, facilitando cosi' l'accesso e senza troppi sprechi di memoria
|
|
essendo al massimo 125 campi.
|
|
Il filling dei campi viene effettuato in 2 procedure (iva11_set_arr e iva11_set_arr_pim).
|
|
La prima viene chiamata quando vengono scorse le righe di movimento IVA (recalc_att());
|
|
la seconda viene chiamata alla fine del calcolo dell'attivita', prima dello spostamento della
|
|
relazione sulla prossima (update_firm()).
|
|
La scrittura dei campi avviene in iva11_write(), chiamata subito dopo la iva11_set_arr_pim().
|
|
|
|
Particolarita':
|
|
|
|
iva11_set_arr_pim():
|
|
esegue un ciclo per tutti i PIM della ditta, scartando quelli che non servono
|
|
e raggruppando quelli che rispondono alle condizioni di trasferimento.
|
|
|
|
iva11_write():
|
|
esegue un ciclo per tutti i campi settati in _iva11_arr, facendo la put() per ognuno
|
|
sul rispettivo campo nel file opportuno (LF_TAB1100A o LF_TAB1100B).
|
|
Siccome i campi da trasferire sono piu' di 100 e per ora tale limite non puo' essere
|
|
superato il trasferimento viene effettuato su 2 files, collegati tramite relazione.
|
|
|
|
In realta' _iva11_arr e' un _BolgArray, derivato da TAssoc_array,
|
|
dove sono definiti i metodi add() e sub(), per aggiungere o sottrarre
|
|
importi all'elemento indicato. Gli elementi stessi di _iva11_arr in realta'
|
|
non sono solamente real, ma classi derivate da TObject, che contengono un real ed un
|
|
int identificante il numero logico del file al quale appartiene il campo.
|
|
|
|
|
|
20 Novembre 1996
|
|
|
|
AGGIUNTA STAMPA A36 NEI PROGRESSIVI
|
|
===================================
|
|
|
|
Per stampare cio' si e' seguito l'esempio della stampa di AF (ex A35).
|
|
Da rilevare, percio', la condizione di raggruppamento di tali progressivi
|
|
e la memorizzazione in PIM, nel campo S0. Naturalmente, siccome S0 e' una stringa e
|
|
siccome vanno memorizzati sia imponibile che imposta, il campo sara' una TToken_string
|
|
i cui elementi (2 real) sono separati da un "!", e non da un "|" per non creare
|
|
situazione spiacevoli in caso di scarico/carico da un file testo.
|
|
|
|
|
|
01 Dicembre 1996
|
|
|
|
CORRETTO TRASFERIMENTO DI PIU' ATTIVITA' SUL FILE TAB1100
|
|
=========================================================
|
|
|
|
La correzione riguarda lo spostamento della funzione iva11_write():
|
|
|
|
- iva11_write() viene ora chiamata dalla describe_liq(), per aver maggior
|
|
controllo sull'azzeramento dei campi R1 ed R2
|
|
|
|
Ma la modifica principale riguarda la struttura dati utilizzata per memorizzare i dati
|
|
trasferire.
|
|
Ora si utilizza un assoc_array principale (_iva11_arr) la cui chiave e'
|
|
il codice attivita' della ditta. Ogni elemento di _iva11_arr e' a sua
|
|
volta un assoc_array, la cui chiave e' come nella versione precedente e' il
|
|
nome del campo da trasferire. Per cui le modifiche fatte in iva11_set_arr(),
|
|
iva11_set_arr_pim() e iva11_write() riguardano la diversa gestione per
|
|
memorizzare e scorrere gli elementi dell'assoc_array _iva11_arr.
|
|
|
|
|
|
20 Ottobre 1997
|
|
|
|
IMPLEMENTAZIONE PIM13
|
|
=========================================================
|
|
|
|
Implementato il PIM 13, in modo tale da poter eliminare i precedenti
|
|
errori relativi al calcolo ventilazione annuale/corrispettivi.
|
|
Prima andava a sommare i risultati dei singoli mesi/trimestri: in
|
|
realta' per la liquidazione annuale, i mesi vanno considerati
|
|
come un tutt'uno. Le modifiche operate sono quindi relative al
|
|
ciclo di scansione ed elaborazione del cursore sui movimenti IVA.
|
|
Ora non scorre piu' un cursore prima sul mese 1 poi 2, 3, ecc.
|
|
ma uno unico da 1 a 13, schiaffando i risultati nel relativo PIM del
|
|
mese 13. Nella fase dei calcoli per ventilazione/scorporo scorrispettivi,
|
|
non si dovranno piu' fare ripartizioni di importo sui vari mesi precedenti.
|
|
Inoltre da ora in avanti per calcolare la liquidazione annuale non sara'
|
|
piu' necessario ricalcolare anche i periodi precedenti.
|
|
Tutto cio' velocizza un poco il calcolo liquidazione ed il trasferimento ad IVA11.
|
|
|
|
|
|
31 Ottobre 1997
|
|
|
|
NUOVO PROSPETTO REGIME AGRICOLO
|
|
===============================
|
|
Queste modifiche valgono dal 1998 in poi.
|
|
Aggiunto nuovo FLAG sulla tabella LIA (campo B2), per indicare se
|
|
trattasi di agricoltore con volume d'affari minimo: sono stati
|
|
quindi modificati programmi di impostazione parametri liquidazione,
|
|
apertura anno IVA, oltre a calcolo/stampa.
|
|
Il nuovo flag di agricoltore minimo serve per selezionare le ditte
|
|
in calcolo liquidazione: se l'anno e' 1998 o successivi E la liquidazione
|
|
da calcolare non e' annuale E tale flag e' settato, una determinata ditta
|
|
non puo' essere inclusa nella lista dei calcoli da effettuare.
|
|
Viene aggiunta una nuova tabella di progressivi (tabella PIA: Progressivi Iva compensazione
|
|
Agricoli), il cui tracciato e' il seguente (riportato anche all'inizio)
|
|
|
|
PIA: Tabella di ditta per memorizzare i Progressivi IVA compensazione Agricoli
|
|
CODTAB = ANNO[0-3]+CODATT[4,8]+TIPOATT[9,9]+MESE[10,11]+IVAORD[12,15]+IVACOM[16,19]
|
|
R0 = Totale imponibile
|
|
R1 = Totale IVA secondo codice IVA di compensazione
|
|
|
|
Memorizzazione dei progressivi:
|
|
|
|
tutte le vendite in regime agricolo con "segnalino" a 1 (che termine di merda che usano su
|
|
sistema..), vanno sommate distintamente per codice IVA principale + codice IVA compensato.
|
|
L'imposta (PIA->R1) va calcolata sul totale imponibile (PIA->R0) per ogni record della tabella,
|
|
una volta finita la sommatoria.
|
|
Il codice IVA di compensazione, (udite udite!), viene memorizzato sul
|
|
PIANO DEI CONTI (nel campo IVACOMP) per ogni SOTTOCONTO di RICAVO(campo INDBIL).
|
|
Attenzione: per effettiva congruenza il campo INDBIL e' significativo solo sul
|
|
relativo CONTO, indi si procedera' ad una ulteriore rottura/mazzata sui coglioni, in quanto
|
|
per ogni movimento IVA si dovranno fare 2 accessi al file del PIANO DEI CONTI:
|
|
uno per leggere il codice IVA di compensazione (campo IVACOMP)
|
|
uno per leggere se il conto e' di ricavo (campo INDBIL).
|
|
|
|
Una volta completata la tabella (fatta in recalc_att()), si procedera'
|
|
alla descrizione di tali progressivi (describe_agricolo()). Il nuovo prospetto
|
|
viene messo poco prima del prospetto agricolo, ma comunque nella stessa pagina.
|
|
Nel prospetto agricolo viene aggiunta una riga in piu':
|
|
|
|
IVA ammessa in detrazione I parte tabella A, il cui importo riguarda il totale
|
|
dell'iva vendite compensata. Tale importo (PLM->R13) viene sommato al vecchio totale IVA ammessa
|
|
in detrazione, per avere l'importo corretto.
|
|
Attenzione, il nuovo calcolo viene applicato solo dal 1998 in poi!!
|
|
|
|
|
|
01 Dicembre 1997
|
|
|
|
IVA11 '97
|
|
=========
|
|
- cambiato A13 in VA7
|
|
- aggiunte aliquote 7,5% e 20%
|
|
|
|
Variazioni ai campi di trasferimento
|
|
rimossi : EC206, FBC* e FC117
|
|
aggiunti FC115 FC116 FC209 FC210
|
|
SBI07 SBI08 SBF12 SBF13
|
|
XC101...XC111 XC201...XC208 (al posto di FBC*)
|
|
AGVE05 AGVE06 ABVE05 ABVE06
|
|
AGME05 AGME06 ABME05 ABME06
|
|
AGME*, AGVE*, ABME* ABVE* sono stati spostati su TAB1100B
|
|
L2, L2BIS sono stati spostati su TAB1100B
|
|
|
|
|
|
05 Dicembre 1997
|
|
|
|
PRORATA dal 1998
|
|
================
|
|
Dal 1998 sara' possibile registrare fatture in ritardo con anno data documento
|
|
precedente all'anno di registrazione stesso.
|
|
In questo caso ll'importo PRORATA del PERIODO (non annuale) deve essere calcolato
|
|
applicando la percentuale corrispondente all'anno del documento.
|
|
Tutti gli acquisti soggetti a pro-rata devono essere distinti in base all'anno della
|
|
data documento e di conseguenza la detraibilita' deve essere evidenziata e
|
|
calcolata con due possibili percentuali: una dell'anno attuale e una dell'anno
|
|
precedente. Se in fase di liquidazione la tabella dell'anno precedente non esiste
|
|
ma esistono acquisti con anno documento relativo all'anno precedente si calcola il
|
|
pro-rata con la percentuale corrente, segnalando tuttavia la mancata presenza
|
|
di tale tabella per l'anno precedente.
|
|
Per far questo e' stato implementato un oggettino: _ProrataItem, cui vengono
|
|
settate la percentuale attuale e la percentuale precedente. E' stato implementato
|
|
anche un metodo calc_prorata() cui si passa il valore degli acquisti ed un flag
|
|
per calcolare con percentuale attuale o precedente. Nella tabella PLM
|
|
e' stato recuperato R4 per memorizzare la percentuale pro-rata precedente, inoltre
|
|
viene memorizzato in R14 il prorata relativo agli acquisti con riferimento anno
|
|
precedente. In B1, infine, viene settato il flag a TRUE se in stampa
|
|
esistono documenti dell'anno precedente man non esiste la percentuale
|
|
pro-rata ad essa relativi.
|
|
Casistiche: (vedi _ProrataItem::set())
|
|
- il calcolo vale solo a partire dal 1998
|
|
- se le % sono uguali oppure non siamo ancora nel 1998 considera
|
|
tutto sull'anno corrente
|
|
- se non ha trovato la percentuale anno prec usa quella corrente,
|
|
segnalando pero' l'errore.
|
|
|
|
10 Febbraio 1999
|
|
================
|
|
Mannaja!
|
|
|
|
Ecco quindi svelati i piu' reconditi misteri del programma di liquidazione.
|
|
Auguro a chiunque buon divertimento.
|
|
|
|
|