Correzione MI3309 relativo alla gestione acconti e creazione

versamenti nel caso sia presente il credito utilizzato.


git-svn-id: svn://10.65.10.50/trunk@4352 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-05-20 15:24:53 +00:00
parent 950cd99a0a
commit a469540724
2 changed files with 16 additions and 8 deletions

View File

@ -86,13 +86,13 @@ bool GesAcc_app::msk_acconto(TMask_field& f, KEY k)
TInteressi_IVA_table ver;
if (ver.read(f.mask().get_int(F_ANNO),12)!=NOERR)
warning_box("Errore %d in lettura tabella versamenti ed interessi.",ver.status());
real acconto_meno_credito = ver.get(I_ACCONTOIVA);
real acconto_minimo = ver.get(I_ACCONTOIVA);
if (!acconto.is_zero())
{
if (acconto.sign() < 0)
return f.error_box("Introdurre un valore non negativo");
if (acconto - credito < acconto_meno_credito)
return f.error_box("La differenza tra acconto e credito deve essere superiore a lire %s", acconto_meno_credito.string("."));
if (acconto < acconto_minimo)
return f.error_box("L'importo dell'acconto inserito deve essere superiore a lire %s", acconto_minimo.string("."));
}
}
return TRUE;

View File

@ -34,7 +34,7 @@ class VersAcc_app : public TApplication
TProgind* _prind;
int _year;
real _acconto, _credito, _diff, _impver, _acconto_senza_credito;
real _acconto, _credito, _diff, _impver, _acconto_minimo, _acconto_minimo_cr_ut;
bool _calcall, _da_stampare, _print;
TDate _dataver;
TString16 _abi, _cab, _con;
@ -280,7 +280,7 @@ void VersAcc_app::vers_acc()
if (_ver->read(_year,12)!=NOERR)
warning_box("Errore %d in lettura tabella versamenti ed interessi.",_ver->status());
_acconto_senza_credito = _ver->get(I_ACCONTOIVA);
_acconto_minimo = _ver->get(I_ACCONTOIVA);
for (int l = 0; l < _ditte->items(); l++)
{
if (_prind->iscancelled())
@ -387,6 +387,7 @@ void VersAcc_app::lettura_delega()
{
TString16 cod;
TString16 y (format("%05ld", _nditte->lfile().get_long("CODDITTA")));
const real minimo = _credito != ZERO ? _acconto_minimo_cr_ut : _acconto_minimo;
_diff = _acconto - _credito;
_diff.round(ROUND_MILLELIRE);
@ -398,14 +399,14 @@ void VersAcc_app::lettura_delega()
if (_del->read() == NOERR)
{
if (_diff < _acconto_senza_credito) //l'importo non e' dovuto
if (_diff < minimo) //l'importo non e' dovuto
{
//cancello la delega
_del->remove();
return;
}
// se sono qui e' perche' l'importo e' dovuto (_diff >= _acconto_senza_credito)
// se sono qui e' perche' l'importo e' dovuto (_diff >= minimo)
bool stampata = _del->get_bool("B0");
_impver = _del->get_real("R0");
@ -428,7 +429,7 @@ void VersAcc_app::lettura_delega()
}
else //non esiste la delega
{
if (_diff >= _acconto_senza_credito)
if (_diff >= minimo)
//creo record delega
{
crea_delega();
@ -473,6 +474,13 @@ void VersAcc_app::lettura_anagrafica(bool* tipo)
const bool cf = anag.get_bool("TITCF");
const int isdel = anag.get_int("TIPOSTDEL");
// Se deve stampare un bollettino delega l'importo minimo con credito utilizzato diventa 12500;
// se invece deve stampare una distinta l'importo minimo e' 13500
if (cf)
_acconto_minimo_cr_ut = isdel == 2 ? 13500.0 : 12500.0;
else
// Nel caso non sia titolare conto fiscale l'importo minimo e' 500
_acconto_minimo_cr_ut = 500.0;
if (cf && (isdel == 1 || isdel == 2))
{
*tipo = TRUE;