Patch level : 12.0 356
Files correlati : ve0|ve6 Commento : - Sistemato split payment in ve6, adesso non controlla più il movimento e verifica anche la tabella_iva. - Sistemato errore gestione plafond git-svn-id: svn://10.65.10.50/branches/R_10_00@23659 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a948b8cce6
commit
b135ac5d8c
@ -84,14 +84,12 @@ const real TLi_manager::elabPlaRes(TToken_string tipi, TToken_string stati, TDat
|
|||||||
for(int i = 0; i < din.items(); i++)
|
for(int i = 0; i < din.items(); i++)
|
||||||
{
|
{
|
||||||
TAssoc_array tabIva = din[i].tabella_iva(true);
|
TAssoc_array tabIva = din[i].tabella_iva(true);
|
||||||
TString numerazione = din[i].numerazione();
|
for (TRiepilogo_iva * totali = (TRiepilogo_iva *) tabIva.get(); totali != NULL; totali = (TRiepilogo_iva *) tabIva.get())
|
||||||
int numdoc = din[i].numero();
|
|
||||||
int anno = din[i].anno();
|
|
||||||
TRiepilogo_iva * totali = dynamic_cast<TRiepilogo_iva *>(tabIva.get());
|
|
||||||
|
|
||||||
if(totali->cod_iva().codice() == codiva)
|
|
||||||
{
|
{
|
||||||
resPlafond -= cache().get("%TIP", din[i].tipo().codice()).get_bool("B7") ? -totali->imp_orig() : totali->imp_orig();
|
if(totali->cod_iva().codice() == codiva)
|
||||||
|
{
|
||||||
|
resPlafond -= cache().get("%TIP", din[i].tipo().codice()).get_bool("B7") ? -totali->imp_orig() : totali->imp_orig();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nel caso il plafond trovato fosse una soluzione unica e ho già trovato dei documenti vuol dire che il plafond non è più valido
|
// Nel caso il plafond trovato fosse una soluzione unica e ho già trovato dei documenti vuol dire che il plafond non è più valido
|
||||||
@ -120,14 +118,12 @@ const real TLi_manager::elabUtil(TToken_string tipi, TToken_string stati, TDate
|
|||||||
for(int i = 0; i < din.items(); i++)
|
for(int i = 0; i < din.items(); i++)
|
||||||
{
|
{
|
||||||
TAssoc_array tabIva = din[i].tabella_iva(true);
|
TAssoc_array tabIva = din[i].tabella_iva(true);
|
||||||
TString numerazione = din[i].numerazione();
|
for (TRiepilogo_iva * totali = (TRiepilogo_iva *) tabIva.get(); totali != NULL; totali = (TRiepilogo_iva *) tabIva.get())
|
||||||
int numdoc = din[i].numero();
|
|
||||||
int anno = din[i].anno();
|
|
||||||
TRiepilogo_iva * totali = dynamic_cast<TRiepilogo_iva *>(tabIva.get());
|
|
||||||
|
|
||||||
if(totali->cod_iva().codice() == codiva)
|
|
||||||
{
|
{
|
||||||
utilizzato += cache().get("%TIP", din[i].tipo().codice()).get_bool("B7") ? -totali->imp_orig() : totali->imp_orig();
|
if(totali->cod_iva().codice() == codiva)
|
||||||
|
{
|
||||||
|
utilizzato += cache().get("%TIP", din[i].tipo().codice()).get_bool("B7") ? -totali->imp_orig() : totali->imp_orig();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nel caso il plafond trovato fosse una soluzione unica e ho già trovato dei documenti vuol dire che il plafond non è più valido
|
// Nel caso il plafond trovato fosse una soluzione unica e ho già trovato dei documenti vuol dire che il plafond non è più valido
|
||||||
@ -153,11 +149,13 @@ bool TLi_manager::testPlafond(TLista_documenti dout, TLog_report& lerr)
|
|||||||
for(int i = 0; i < dout.items(); i++)
|
for(int i = 0; i < dout.items(); i++)
|
||||||
{
|
{
|
||||||
TAssoc_array tabIva = dout[i].tabella_iva(true);
|
TAssoc_array tabIva = dout[i].tabella_iva(true);
|
||||||
TRiepilogo_iva * totali = static_cast<TRiepilogo_iva *>(tabIva.get());
|
for (TRiepilogo_iva * totali = (TRiepilogo_iva *) tabIva.get(); totali != NULL; totali = (TRiepilogo_iva *) tabIva.get())
|
||||||
if(totali->cod_iva().codice() == codiva)
|
|
||||||
{
|
{
|
||||||
resPlafond -= totali->imp_orig();
|
if(totali->cod_iva().codice() == codiva)
|
||||||
totFatt += totali->imp_orig();
|
{
|
||||||
|
resPlafond -= totali->imp_orig();
|
||||||
|
totFatt += totali->imp_orig();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(resPlafond < 0)
|
if(resPlafond < 0)
|
||||||
|
@ -45,6 +45,7 @@ public:
|
|||||||
// Functions
|
// Functions
|
||||||
void elabPlafond(); // Vado a estrapolare il plafond
|
void elabPlafond(); // Vado a estrapolare il plafond
|
||||||
bool testPlafond(TLista_documenti dout, TLog_report& lerr); // Testo se con i documenti passati supero il plafond
|
bool testPlafond(TLista_documenti dout, TLog_report& lerr); // Testo se con i documenti passati supero il plafond
|
||||||
|
bool checkIva(TString cod) { return cod == codiva; } // Controllo se il codice iva è uguale a quello impostato per il calcolo del plafond
|
||||||
const real getPlaRes(); // Calcolo il rimanente del plafond
|
const real getPlaRes(); // Calcolo il rimanente del plafond
|
||||||
const real getPlaRes(TToken_string tipi, TToken_string stati); // Calcolo il rimanente del plafond su tipi e stati documento passati
|
const real getPlaRes(TToken_string tipi, TToken_string stati); // Calcolo il rimanente del plafond su tipi e stati documento passati
|
||||||
const real elabPlaRes(TToken_string tipi, TToken_string stati, TDate ad = 0L); // Funzione che effettivamente effettua il calcolodalla data della dichiarazione alla data passata
|
const real elabPlaRes(TToken_string tipi, TToken_string stati, TDate ad = 0L); // Funzione che effettivamente effettua il calcolodalla data della dichiarazione alla data passata
|
||||||
|
@ -1271,8 +1271,16 @@ int TMotore_application::checkPlafondAvaibility(TDocumento d)
|
|||||||
{
|
{
|
||||||
TLi_manager plafond(d.tipocf(), d.codcf(), TDate(TODAY).year());
|
TLi_manager plafond(d.tipocf(), d.codcf(), TDate(TODAY).year());
|
||||||
TAssoc_array tabIva = d.tabella_iva(true);
|
TAssoc_array tabIva = d.tabella_iva(true);
|
||||||
TRiepilogo_iva * totali = static_cast<TRiepilogo_iva *>(tabIva.get());
|
|
||||||
real diff = plafond.getPlaRes() - (cache().get("%TIP", d.tipo().codice()).get_bool("B7") ? -totali->imp_orig() : totali->imp_orig());
|
real diff(ZERO);
|
||||||
|
for (TRiepilogo_iva * totali = (TRiepilogo_iva *) tabIva.get(); totali != NULL; totali = (TRiepilogo_iva *) tabIva.get())
|
||||||
|
{
|
||||||
|
if(plafond.checkIva(totali->cod_iva().codice())) // Se l'iva del documento è diversa non mi interessa
|
||||||
|
{
|
||||||
|
diff = plafond.getPlaRes() - (cache().get("%TIP", d.tipo().codice()).get_bool("B7") ? -totali->imp_orig() : totali->imp_orig());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(diff >= 0)
|
if(diff >= 0)
|
||||||
return NOERR;
|
return NOERR;
|
||||||
else
|
else
|
||||||
|
@ -356,7 +356,7 @@ void TDocumentoEsteso::set_riga_tic()
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool TDocumentoEsteso::is_split_payment() const
|
bool TDocumentoEsteso::is_split_payment() const
|
||||||
{
|
{/*
|
||||||
const long numregcg = get_long(DOC_NUMREG);
|
const long numregcg = get_long(DOC_NUMREG);
|
||||||
if (numregcg > 0)
|
if (numregcg > 0)
|
||||||
{
|
{
|
||||||
@ -364,7 +364,7 @@ bool TDocumentoEsteso::is_split_payment() const
|
|||||||
if (!mov.empty())
|
if (!mov.empty())
|
||||||
return ::is_split_payment(mov);
|
return ::is_split_payment(mov);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
bool yes = get_int(DOC_ANNO) >= 2015 && clifor().get_bool(CLI_SPLITPAY) &&
|
bool yes = get_int(DOC_ANNO) >= 2015 && clifor().get_bool(CLI_SPLITPAY) &&
|
||||||
(is_fattura() || is_nota_credito()) && !imposta().is_zero() && ritenute().is_zero();
|
(is_fattura() || is_nota_credito()) && !imposta().is_zero() && ritenute().is_zero();
|
||||||
if (yes)
|
if (yes)
|
||||||
@ -372,6 +372,17 @@ bool TDocumentoEsteso::is_split_payment() const
|
|||||||
const TRectype& causale = cache().get(LF_CAUSALI, tipo().causale());
|
const TRectype& causale = cache().get(LF_CAUSALI, tipo().causale());
|
||||||
const int rsi = causale.get_int(CAU_REGSPIVA);
|
const int rsi = causale.get_int(CAU_REGSPIVA);
|
||||||
yes = rsi != 13 && rsi != 50 && rsi != 51; // No reverse charge
|
yes = rsi != 13 && rsi != 50 && rsi != 51; // No reverse charge
|
||||||
|
if(yes && physical_rows() > 0)
|
||||||
|
{
|
||||||
|
TAssoc_array& table = ((TDocumento*)this)->tabella_iva();
|
||||||
|
|
||||||
|
for (TRiepilogo_iva * ri = (TRiepilogo_iva *) table.get(); ri != NULL && yes;
|
||||||
|
ri = (TRiepilogo_iva *) table.get())
|
||||||
|
{
|
||||||
|
TString ivaPA = cache().get("%IVA", ri->cod_iva().codice()).get("S12");
|
||||||
|
yes = ivaPA != "N6" && ivaPA != "N5";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return yes;
|
return yes;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user