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; TInteressi_IVA_table ver;
if (ver.read(f.mask().get_int(F_ANNO),12)!=NOERR) if (ver.read(f.mask().get_int(F_ANNO),12)!=NOERR)
warning_box("Errore %d in lettura tabella versamenti ed interessi.",ver.status()); 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.is_zero())
{ {
if (acconto.sign() < 0) if (acconto.sign() < 0)
return f.error_box("Introdurre un valore non negativo"); return f.error_box("Introdurre un valore non negativo");
if (acconto - credito < acconto_meno_credito) if (acconto < acconto_minimo)
return f.error_box("La differenza tra acconto e credito deve essere superiore a lire %s", acconto_meno_credito.string(".")); return f.error_box("L'importo dell'acconto inserito deve essere superiore a lire %s", acconto_minimo.string("."));
} }
} }
return TRUE; return TRUE;

View File

@ -34,7 +34,7 @@ class VersAcc_app : public TApplication
TProgind* _prind; TProgind* _prind;
int _year; 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; bool _calcall, _da_stampare, _print;
TDate _dataver; TDate _dataver;
TString16 _abi, _cab, _con; TString16 _abi, _cab, _con;
@ -280,7 +280,7 @@ void VersAcc_app::vers_acc()
if (_ver->read(_year,12)!=NOERR) if (_ver->read(_year,12)!=NOERR)
warning_box("Errore %d in lettura tabella versamenti ed interessi.",_ver->status()); 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++) for (int l = 0; l < _ditte->items(); l++)
{ {
if (_prind->iscancelled()) if (_prind->iscancelled())
@ -387,6 +387,7 @@ void VersAcc_app::lettura_delega()
{ {
TString16 cod; TString16 cod;
TString16 y (format("%05ld", _nditte->lfile().get_long("CODDITTA"))); TString16 y (format("%05ld", _nditte->lfile().get_long("CODDITTA")));
const real minimo = _credito != ZERO ? _acconto_minimo_cr_ut : _acconto_minimo;
_diff = _acconto - _credito; _diff = _acconto - _credito;
_diff.round(ROUND_MILLELIRE); _diff.round(ROUND_MILLELIRE);
@ -398,14 +399,14 @@ void VersAcc_app::lettura_delega()
if (_del->read() == NOERR) 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 //cancello la delega
_del->remove(); _del->remove();
return; 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"); bool stampata = _del->get_bool("B0");
_impver = _del->get_real("R0"); _impver = _del->get_real("R0");
@ -428,7 +429,7 @@ void VersAcc_app::lettura_delega()
} }
else //non esiste la delega else //non esiste la delega
{ {
if (_diff >= _acconto_senza_credito) if (_diff >= minimo)
//creo record delega //creo record delega
{ {
crea_delega(); crea_delega();
@ -473,6 +474,13 @@ void VersAcc_app::lettura_anagrafica(bool* tipo)
const bool cf = anag.get_bool("TITCF"); const bool cf = anag.get_bool("TITCF");
const int isdel = anag.get_int("TIPOSTDEL"); 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)) if (cf && (isdel == 1 || isdel == 2))
{ {
*tipo = TRUE; *tipo = TRUE;