Patch level : 12.0 470
Files correlati : ve Commento : Sistemato calcolo doppio durante il controllo del plafond per record già registrati git-svn-id: svn://10.65.10.50/branches/R_10_00@24144 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ed2efa6901
commit
ed7f2c696d
@ -564,7 +564,7 @@ int TMotore_application::rewrite( const TMask& m ) // C 90
|
||||
d = ((TDocumento_mask&)m).doc(); // Trasferisce il documento da maschera a record
|
||||
|
||||
// Aggiunte per il controllo plafond
|
||||
if(has_module(LIAUT, CHK_DONGLE) && d.tipo().is_fattura() && ini_get_bool(CONFIG_DITTA, "ve", "USELETTERE") && checkPlafondAvaibility(d) == -1)
|
||||
if(has_module(LIAUT, CHK_DONGLE) && d.tipo().is_fattura() && ini_get_bool(CONFIG_DITTA, "ve", "USELETTERE") && checkPlafondAvaibility(d, true) == -1)
|
||||
{
|
||||
return _isnowarning;
|
||||
}
|
||||
@ -1296,24 +1296,40 @@ void TMotore_application::preview()
|
||||
save_and_print(true, screenvis);
|
||||
}
|
||||
|
||||
int TMotore_application::checkPlafondAvaibility(TDocumento d)
|
||||
int TMotore_application::checkPlafondAvaibility(TDocumento d, bool alreadyExist)
|
||||
{
|
||||
TLi_manager plafond(d.tipocf(), d.codcf(), d.data());
|
||||
if(!plafond.hasValidPlafond()) // Se il cliente non mi interessa
|
||||
return NOERR;
|
||||
|
||||
TAssoc_array tabIva = d.tabella_iva(true);
|
||||
TDocumento oldDoc;
|
||||
TAssoc_array oldTabIva;
|
||||
// Se il documento è già stato scritto nel DB sottraggo solo le modifiche
|
||||
if(alreadyExist)
|
||||
{
|
||||
oldDoc = TDocumento('D', d.anno(), d.numerazione(), d.numero());
|
||||
oldTabIva = oldDoc.tabella_iva(true);
|
||||
}
|
||||
|
||||
real diff(ZERO);
|
||||
real diff = plafond.getPlaRes();
|
||||
|
||||
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());
|
||||
real docVal = cache().get("%TIP", d.tipo().codice()).get_bool("B7") ? -totali->imp_orig() : totali->imp_orig();
|
||||
if(alreadyExist)
|
||||
{
|
||||
TRiepilogo_iva * oldRI = (TRiepilogo_iva *) oldTabIva.objptr(totali->cod_iva().codice());
|
||||
docVal -= cache().get("%TIP", oldDoc.tipo().codice()).get_bool("B7") ? -oldRI->imp_orig() : oldRI->imp_orig();
|
||||
}
|
||||
diff -= docVal;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(diff >= 0)
|
||||
|
||||
if(diff >= ZERO)
|
||||
return NOERR;
|
||||
else
|
||||
{
|
||||
|
@ -108,7 +108,7 @@ public:
|
||||
|
||||
virtual const char* get_next_key( );
|
||||
|
||||
int checkPlafondAvaibility(TDocumento d); // Controllo aggiunto dal modulo Li per verificare la disponibilità di plafond
|
||||
int checkPlafondAvaibility(TDocumento d, bool alreadyExist = false); // Controllo aggiunto dal modulo Li per verificare la disponibilità di plafond
|
||||
};
|
||||
|
||||
inline TMotore_application& app() { return (TMotore_application &) main_app(); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user