Patch level : 12.0 744
Files correlati : tf Commento : - Aggiunto nel calcolo liquidazione trimestrale anche i movimenti con flag di liquidazione precedente - Aggiunto nel calcolo del credito precendente vincolo mese a gennaio
This commit is contained in:
parent
711ecf527b
commit
1ca5cf6804
@ -197,11 +197,10 @@ void calcola_credito_prec(real& creprec, real& creaprec, bool mensile, int anno,
|
|||||||
|
|
||||||
trovato = trovato || row_liq.get_real("CREAPREC") > ZERO;
|
trovato = trovato || row_liq.get_real("CREAPREC") > ZERO;
|
||||||
creprec = row_liq.get_real("IVAVERC");
|
creprec = row_liq.get_real("IVAVERC");
|
||||||
|
|
||||||
}
|
}
|
||||||
/* 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 */
|
||||||
if(!trovato)
|
if(!trovato && mese == 1)
|
||||||
{
|
{
|
||||||
creaprec = row_lia.get_real("R0");
|
creaprec = row_lia.get_real("R0");
|
||||||
}
|
}
|
||||||
@ -219,7 +218,7 @@ protected:
|
|||||||
|
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
void extractinator();
|
void extractinator();
|
||||||
void check_old_value(int field, real val);
|
void check_old_value(int field, const real& val);
|
||||||
public:
|
public:
|
||||||
TCom_liq_per_iva_msk() : TAutomask("tf0200a"), _true_data(LF_IVALIQ), _init_liq(false) { first_focus(F_ANNO); }
|
TCom_liq_per_iva_msk() : TAutomask("tf0200a"), _true_data(LF_IVALIQ), _init_liq(false) { first_focus(F_ANNO); }
|
||||||
void save_gen();
|
void save_gen();
|
||||||
@ -421,7 +420,7 @@ void TCom_liq_per_iva_msk::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(1, start, anno); data_a.set_end_month();
|
TDate data_a(1, start + 1, anno); data_a.set_end_month();
|
||||||
bool has_ixc = gestione_IVAxCassa(data_da);
|
bool has_ixc = gestione_IVAxCassa(data_da);
|
||||||
|
|
||||||
/****************************************************************************************************************
|
/****************************************************************************************************************
|
||||||
@ -433,7 +432,7 @@ void TCom_liq_per_iva_msk::extractinator() // Per gli amici GTFO
|
|||||||
const TRectype row_lim = getLIM(anno, start);
|
const TRectype row_lim = getLIM(anno, start);
|
||||||
|
|
||||||
// Controllo che la liquidazione è stata effettuata, controllo da fare solo nella 12
|
// Controllo che la liquidazione è stata effettuata, controllo da fare solo nella 12
|
||||||
if (dongle().year_assist() > 2121 && (row_lim.empty() || row_lim.get_bool("B0")) && !yesno_box("Attenzione non <EFBFBD> stata calcolata la liquidazione del periodo corrente, si desidera proseguire ugualmente?"))
|
if (dongle().year_assist() > 2121 && (row_lim.empty() || row_lim.get_bool("B0")) && !yesno_box("Attenzione non e' stata calcolata la liquidazione del periodo corrente, si desidera proseguire ugualmente?"))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -455,46 +454,49 @@ void TCom_liq_per_iva_msk::extractinator() // Per gli amici GTFO
|
|||||||
// Controllo che sia un movimento con codice non "non soggetto"
|
// Controllo che sia un movimento con codice non "non soggetto"
|
||||||
TCodiceIVA codiva(cur_iva.get(FIELD_NAME(LF_RMOVIVA, RMI_CODIVA)).as_string());
|
TCodiceIVA codiva(cur_iva.get(FIELD_NAME(LF_RMOVIVA, RMI_CODIVA)).as_string());
|
||||||
if(codiva.tipo() == "NS") continue;
|
if(codiva.tipo() == "NS") continue;
|
||||||
|
|
||||||
// Prendo il tipo di registro
|
|
||||||
TRegistro reg(cur_iva.get(FIELD_NAME(LF_MOV, MOV_REG)).as_string(), anno);
|
|
||||||
int tiporeg = reg.tipo();
|
|
||||||
bool is_corrispettivo = reg.corrispettivi();
|
|
||||||
|
|
||||||
// Prendiamo l'imponibile
|
// Controllo che la registrazione sia di del mese che mi interessa o con flag "liquidazione periodo precedente"
|
||||||
real imp = cur_iva.get("25.IMPONIBILE").as_real();
|
if (cur_iva.get("23." MOV_DATAREG).as_date().month() == start || start == cur_iva.get("23." MOV_MESELIQ).as_int())
|
||||||
real imposta = cur_iva.get("25.IMPOSTA").as_real();
|
|
||||||
|
|
||||||
// Se è un movimento IvaXCassa o LiqDiff
|
|
||||||
if(has_ixc && (cur_iva.get("23.IVAXCASSA").as_bool() || cur_iva.get("23.LIQDIFF").as_bool()))
|
|
||||||
{
|
{
|
||||||
if(tiporeg == iva_vendite)
|
// Prendo il tipo di registro
|
||||||
totopattxc += imp;
|
TRegistro reg(cur_iva.get(FIELD_NAME(LF_MOV, MOV_REG)).as_string(), anno);
|
||||||
else
|
int tiporeg = reg.tipo();
|
||||||
totoppasxc += imp;
|
bool is_corrispettivo = reg.corrispettivi();
|
||||||
}
|
|
||||||
else
|
// Prendiamo l'imponibile
|
||||||
{
|
real imp = cur_iva.get("25.IMPONIBILE").as_real();
|
||||||
if(tiporeg == iva_vendite)
|
real imposta = cur_iva.get("25.IMPOSTA").as_real();
|
||||||
|
|
||||||
|
// Se è un movimento IvaXCassa o LiqDiff
|
||||||
|
if (has_ixc && (cur_iva.get("23.IVAXCASSA").as_bool() || cur_iva.get("23.LIQDIFF").as_bool()))
|
||||||
{
|
{
|
||||||
// Controllo il reverse charge, non va calcolato nel totale delle operazioni attive!
|
if (tiporeg == iva_vendite)
|
||||||
// Se non ha una riga di movimento non lo sommo
|
totopattxc += imp;
|
||||||
TString key_rc = cur_iva.get("23.NUMREG").as_string(); key_rc << "|1";
|
else
|
||||||
if(!cache().get(LF_RMOV, key_rc).empty())
|
totoppasxc += imp;
|
||||||
{
|
|
||||||
// Controllo se è un corrispettivo non scorporato (imponibile e iva assieme)
|
|
||||||
if(is_corrispettivo && codiva.percentuale() > ZERO && imposta == ZERO)
|
|
||||||
{
|
|
||||||
// Nell'imponibile è presente il totale fattura, devo calcolare l'imposta e sottrarla
|
|
||||||
// Es iva 22% => imp : 122 = x : 100
|
|
||||||
codiva.scorpora(imp);
|
|
||||||
}
|
|
||||||
totopatt += imp;
|
|
||||||
int i = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
totoppas += imp;
|
{
|
||||||
|
if (tiporeg == iva_vendite)
|
||||||
|
{
|
||||||
|
// Controllo il reverse charge, non va calcolato nel totale delle operazioni attive!
|
||||||
|
// Se non ha una riga di movimento non lo sommo
|
||||||
|
TString key_rc = cur_iva.get("23.NUMREG").as_string(); key_rc << "|1";
|
||||||
|
if (!cache().get(LF_RMOV, key_rc).empty())
|
||||||
|
{
|
||||||
|
// Controllo se è un corrispettivo non scorporato (imponibile e iva assieme)
|
||||||
|
if (is_corrispettivo && codiva.percentuale() > ZERO && imposta == ZERO)
|
||||||
|
{
|
||||||
|
// Nell'imponibile è presente il totale fattura, devo calcolare l'imposta e sottrarla
|
||||||
|
// Es iva 22% => imp : 122 = x : 100
|
||||||
|
codiva.scorpora(imp);
|
||||||
|
}
|
||||||
|
totopatt += imp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
totoppas += imp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -514,12 +516,8 @@ void TCom_liq_per_iva_msk::extractinator() // Per gli amici GTFO
|
|||||||
|
|
||||||
// IVA detraibile
|
// IVA detraibile
|
||||||
imposta_diff = imposta_xcas = ZERO;
|
imposta_diff = imposta_xcas = ZERO;
|
||||||
TString pippo = ivadetxc.stringa();
|
|
||||||
TString pluto = imposta_xcas.stringa();
|
|
||||||
// 2 = Acquisti
|
// 2 = Acquisti
|
||||||
calc_inc_diff(anno, start, iva_acquisti, imposta_diff, imposta_xcas);
|
calc_inc_diff(anno, start, iva_acquisti, imposta_diff, imposta_xcas);
|
||||||
pippo = ivadetxc.stringa();
|
|
||||||
pluto = imposta_xcas.stringa();
|
|
||||||
ivadetxc = ivadetxc + imposta_xcas;
|
ivadetxc = ivadetxc + imposta_xcas;
|
||||||
ivadetdiff = ivadetdiff + imposta_diff;
|
ivadetdiff = ivadetdiff + imposta_diff;
|
||||||
}
|
}
|
||||||
@ -686,7 +684,7 @@ void TCom_liq_per_iva_msk::save_gen()
|
|||||||
_true_data.put("VEREFF", get(F_VEREFF));
|
_true_data.put("VEREFF", get(F_VEREFF));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCom_liq_per_iva_msk::check_old_value(int field, real val)
|
void TCom_liq_per_iva_msk::check_old_value(int field, const real& val)
|
||||||
{
|
{
|
||||||
if(_true_data.empty())
|
if(_true_data.empty())
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user