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:
mtollari 2017-05-29 09:42:32 +00:00
parent 72a1e78036
commit 0a1ba17eb9

View File

@ -166,8 +166,7 @@ void calcolaCreditoPrec(real& creprec, real& creaprec, bool mensile, int anno, i
{
// Credito anno precedente
/* Per calcolare il credito dell'anno precedente inizio a leggere i record precedenti su IVALIQ
* fino a quando ne trovo uno >= 0.
* Questi geni hanno messo la possibilità di mettere un valore <0 se voglio utilizzare del credito precedente */
* fino a quando ne trovo uno >= 0. */
TRectype rowLia = getLIA(anno);
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?
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)
* vado a leggere la liquidazione di quest'anno */
@ -437,7 +415,7 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
for(; start <= end; start++)
{
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);
/****************************************************************************************************************
@ -496,9 +474,10 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
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"
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
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)
if(hasIXC)
{
// IVA esigibile
real imponibile_diff, imposta_diff, imponibile_xcas, imposta_xcas;
imponibile_diff = imposta_diff = imponibile_xcas = imposta_xcas = ZERO;
real imposta_diff, imposta_xcas;
imposta_diff = imposta_xcas = ZERO;
// 1 = Vendite
calc_inc_diff(anno, start, REG_ATT, imposta_diff, imposta_xcas);
ivaesxc = ivaesxc + imposta_xcas;
ivaesdiff = ivaesdiff + imposta_diff;
// IVA detraibile
imponibile_diff = imposta_diff = imponibile_xcas = imposta_xcas = ZERO;
imposta_diff = imposta_xcas = ZERO;
// 2 = Acquisti
calc_inc_diff(anno, start, REG_PAS, imposta_diff, imposta_xcas);
ivadetxc = ivadetxc + imposta_xcas;