Patch level : 12.0 402
Files correlati : tf Commento : - Eliminata gestione crediti precedenti, alla fine bisogna mettere tutto in credito periodo precedente. - Sistemata creazione data_a, adesso prima viene generata con giorno = 1 poi spostata con set_end_month() - Tolto controllo tipo movimento != tm_nessuno per due motivi: 1) è valorizzato solo se si ha il saldaconto, 2) le righe movimento iva sono tutte da prendere - Tolta somma degli indeducibili, vengono già presi da RMOVIVA git-svn-id: svn://10.65.10.50/branches/R_10_00@23845 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
72a1e78036
commit
0a1ba17eb9
@ -166,8 +166,7 @@ void calcolaCreditoPrec(real& creprec, real& creaprec, bool mensile, int anno, i
|
|||||||
{
|
{
|
||||||
// Credito anno precedente
|
// Credito anno precedente
|
||||||
/* Per calcolare il credito dell'anno precedente inizio a leggere i record precedenti su IVALIQ
|
/* Per calcolare il credito dell'anno precedente inizio a leggere i record precedenti su IVALIQ
|
||||||
* fino a quando ne trovo uno >= 0.
|
* fino a quando ne trovo uno >= 0. */
|
||||||
* Questi geni hanno messo la possibilità di mettere un valore <0 se voglio utilizzare del credito precedente */
|
|
||||||
|
|
||||||
TRectype rowLia = getLIA(anno);
|
TRectype rowLia = getLIA(anno);
|
||||||
if(mensile || (!mensile && ((mese - 1) % 3) == 0))
|
if(mensile || (!mensile && ((mese - 1) % 3) == 0))
|
||||||
@ -185,29 +184,8 @@ void calcolaCreditoPrec(real& creprec, real& creaprec, bool mensile, int anno, i
|
|||||||
if(rowLiq.get_int("MESE") >= mese) break; // Perchè li prende lo stesso?
|
if(rowLiq.get_int("MESE") >= mese) break; // Perchè li prende lo stesso?
|
||||||
|
|
||||||
trovato = trovato || rowLiq.get_real("CREAPREC") > ZERO;
|
trovato = trovato || rowLiq.get_real("CREAPREC") > ZERO;
|
||||||
|
creprec = rowLiq.get_real("IVAVERC");
|
||||||
|
|
||||||
// Non ho iva da versare, quindi ho dei crediti
|
|
||||||
if(rowLiq.get_real("IVAVER") == ZERO)
|
|
||||||
{
|
|
||||||
// Innanzitutto controllo il consumo del credito dell'anno precedente
|
|
||||||
real debito = rowLiq.get_real("IVADOV") + rowLiq.get_real("DEBPREC") + rowLiq.get_real("INTLIQTRI");
|
|
||||||
|
|
||||||
if(rowLiq.get_real("CREAPREC") >= ZERO)
|
|
||||||
creaprec = rowLiq.get_real("CREAPREC") - debito;
|
|
||||||
else // Sto utilizzando del credito dell'anno precedente!
|
|
||||||
creaprec += rowLiq.get_real("CREAPREC") - debito;
|
|
||||||
|
|
||||||
// Se ho esaurito il credito dell'anno precedente consumo anche il credito precedente
|
|
||||||
if(creaprec < ZERO)
|
|
||||||
creaprec = ZERO;
|
|
||||||
// Sottraggo dal credito totale quello dell'anno precedente per calcolare il rimanente
|
|
||||||
creprec = rowLiq.get_real("IVAVERC") - creaprec;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
creprec = ZERO;
|
|
||||||
creaprec = ZERO;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/* Se non ho trovato nessun valore positivo (i negativi senza nessun positivo prima non sono validi)
|
/* Se non ho trovato nessun valore positivo (i negativi senza nessun positivo prima non sono validi)
|
||||||
* vado a leggere la liquidazione di quest'anno */
|
* vado a leggere la liquidazione di quest'anno */
|
||||||
@ -437,7 +415,7 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
|||||||
for(; start <= end; start++)
|
for(; start <= end; start++)
|
||||||
{
|
{
|
||||||
TDate data_da(1, start, anno);
|
TDate data_da(1, start, anno);
|
||||||
TDate data_a(31, start, anno);
|
TDate data_a(1, start, anno); data_a.set_end_month();
|
||||||
bool hasIXC = gestione_IVAxCassa(data_da);
|
bool hasIXC = gestione_IVAxCassa(data_da);
|
||||||
|
|
||||||
/****************************************************************************************************************
|
/****************************************************************************************************************
|
||||||
@ -496,9 +474,10 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
|||||||
|
|
||||||
for(bool ok = curIva.move_first(); ok; ok = curIva.move_next())
|
for(bool ok = curIva.move_first(); ok; ok = curIva.move_next())
|
||||||
{
|
{
|
||||||
|
TString totat, totpas, i;
|
||||||
// Controllo che sia un movimento con codice non "non soggetto"
|
// Controllo che sia un movimento con codice non "non soggetto"
|
||||||
TCodiceIVA codiva(curIva.get("25.CODIVA").as_string());
|
TCodiceIVA codiva(curIva.get("25.CODIVA").as_string());
|
||||||
if(codiva.tipo() == "NS" || curIva.get("23.TIPOMOV").as_int() == tm_nessuno) continue;
|
if(codiva.tipo() == "NS") continue;
|
||||||
|
|
||||||
// Prendo il tipo di registro
|
// Prendo il tipo di registro
|
||||||
int tiporeg = TRegistro(curIva.get("23.REG").as_string()).tipo();
|
int tiporeg = TRegistro(curIva.get("23.REG").as_string()).tipo();
|
||||||
@ -528,32 +507,19 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aggiungo gli indeducibili per articolo 19, e indeducibili su ricavi esenti
|
|
||||||
static TRelation rpom(LF_TAB);
|
|
||||||
TRectype pomFrom(rpom.curr()); pomFrom.put("COD", "POM");pomFrom.put("CODTAB", anno);
|
|
||||||
TRectype pomTo(rpom.curr()); pomTo.put("COD" , "POM");pomTo.put("CODTAB", anno);
|
|
||||||
TCursor curPom(&rpom, "", 1, &pomFrom, &pomTo);
|
|
||||||
for(curPom = 0; curPom.pos() < curPom.items(); ++curPom)
|
|
||||||
{
|
|
||||||
TRectype rowPom = curPom.curr();
|
|
||||||
if(atoi(rowPom.get("CODTAB").right(2)) != start) continue;
|
|
||||||
totoppas = totoppas + rowPom.get_real("R1"); // Art. 19
|
|
||||||
totoppas = totoppas + rowPom.get_real("R9"); // Ricavi esenti
|
|
||||||
}
|
|
||||||
|
|
||||||
// Se ha attiva l'IVA x cassa calcolo le imposte (imponibili per comodità già calcolati sopra)
|
// Se ha attiva l'IVA x cassa calcolo le imposte (imponibili per comodità già calcolati sopra)
|
||||||
if(hasIXC)
|
if(hasIXC)
|
||||||
{
|
{
|
||||||
// IVA esigibile
|
// IVA esigibile
|
||||||
real imponibile_diff, imposta_diff, imponibile_xcas, imposta_xcas;
|
real imposta_diff, imposta_xcas;
|
||||||
imponibile_diff = imposta_diff = imponibile_xcas = imposta_xcas = ZERO;
|
imposta_diff = imposta_xcas = ZERO;
|
||||||
// 1 = Vendite
|
// 1 = Vendite
|
||||||
calc_inc_diff(anno, start, REG_ATT, imposta_diff, imposta_xcas);
|
calc_inc_diff(anno, start, REG_ATT, imposta_diff, imposta_xcas);
|
||||||
ivaesxc = ivaesxc + imposta_xcas;
|
ivaesxc = ivaesxc + imposta_xcas;
|
||||||
ivaesdiff = ivaesdiff + imposta_diff;
|
ivaesdiff = ivaesdiff + imposta_diff;
|
||||||
|
|
||||||
// IVA detraibile
|
// IVA detraibile
|
||||||
imponibile_diff = imposta_diff = imponibile_xcas = imposta_xcas = ZERO;
|
imposta_diff = imposta_xcas = ZERO;
|
||||||
// 2 = Acquisti
|
// 2 = Acquisti
|
||||||
calc_inc_diff(anno, start, REG_PAS, imposta_diff, imposta_xcas);
|
calc_inc_diff(anno, start, REG_PAS, imposta_diff, imposta_xcas);
|
||||||
ivadetxc = ivadetxc + imposta_xcas;
|
ivadetxc = ivadetxc + imposta_xcas;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user