Corretta gestione degli statio modificabili nel caso di cambio di stato

Corretta costruzione della tabella iva ( non detraeva gli imponibili per aliquota)


git-svn-id: svn://10.65.10.50/trunk@5123 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1997-08-28 17:11:17 +00:00
parent fe1d23e22b
commit 8d09ef8bf5
2 changed files with 15 additions and 7 deletions

View File

@ -453,6 +453,7 @@ class TDocumento : public TMultiple_rectype // velib03
static long _firm; static long _firm;
static TString16 _codiva_spese; static TString16 _codiva_spese;
static TString16 _codiva_bolli; static TString16 _codiva_bolli;
char _stato_originale;
int _liv_len[4]; int _liv_len[4];

View File

@ -233,7 +233,7 @@ TString16 TDocumento::_codiva_bolli;
TDocumento::TDocumento() TDocumento::TDocumento()
: TMultiple_rectype(LF_DOC), _condv(NULL), : TMultiple_rectype(LF_DOC), _condv(NULL),
_sconto(NULL), _esenzione(NULL) _sconto(NULL), _esenzione(NULL), _stato_originale(' ')
{ {
add_file(LF_RIGHEDOC, "NRIGA"); add_file(LF_RIGHEDOC, "NRIGA");
_tipocf = new TRecfield(*this, "TIPOCF"); _tipocf = new TRecfield(*this, "TIPOCF");
@ -246,7 +246,7 @@ TDocumento::TDocumento()
TDocumento::TDocumento(const TDocumento & d) TDocumento::TDocumento(const TDocumento & d)
: TMultiple_rectype(LF_DOC), _condv(NULL), : TMultiple_rectype(LF_DOC), _condv(NULL),
_sconto(NULL), _esenzione(NULL) _sconto(NULL), _esenzione(NULL), _stato_originale(' ')
{ {
add_file(LF_RIGHEDOC, "NRIGA"); add_file(LF_RIGHEDOC, "NRIGA");
copy(d); copy(d);
@ -255,7 +255,7 @@ TDocumento::TDocumento(const TDocumento & d)
TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc, TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
TCond_vendita * condv) TCond_vendita * condv)
: TMultiple_rectype(LF_DOC), _condv(condv), _sconto(NULL), : TMultiple_rectype(LF_DOC), _condv(condv), _sconto(NULL),
_esenzione(NULL) _esenzione(NULL), _stato_originale(' ')
{ {
add_file(LF_RIGHEDOC, "NRIGA"); add_file(LF_RIGHEDOC, "NRIGA");
_tipocf = new TRecfield(*this, "TIPOCF"); _tipocf = new TRecfield(*this, "TIPOCF");
@ -275,7 +275,7 @@ TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
TDocumento::TDocumento(const TRectype& rec, TCond_vendita * condv) TDocumento::TDocumento(const TRectype& rec, TCond_vendita * condv)
: TMultiple_rectype(LF_DOC), _condv(condv), _sconto(NULL), : TMultiple_rectype(LF_DOC), _condv(condv), _sconto(NULL),
_esenzione(NULL) _esenzione(NULL), _stato_originale(' ')
{ {
add_file(LF_RIGHEDOC, "NRIGA"); add_file(LF_RIGHEDOC, "NRIGA");
_tipocf = new TRecfield(*this, "TIPOCF"); _tipocf = new TRecfield(*this, "TIPOCF");
@ -582,6 +582,7 @@ int TDocumento::read(TBaseisamfile& f, word op, word lockop)
set_riga_sconto(); set_riga_sconto();
if (is_fattura()) if (is_fattura())
set_riga_esenzione(); set_riga_esenzione();
_stato_originale = stato();
return err; return err;
} }
@ -717,8 +718,10 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
} }
else else
{ {
if (!modificabile() && !yesno_box("Documento non modificabile,\n vuoi continuare ugualmente")) if (_stato_originale == stato())
return NOERR; if (!modificabile() && !yesno_box("Documento non modificabile,\n vuoi continuare ugualmente"))
return NOERR;
myself._stato_originale = stato();
} }
const bool check_movmag = main_app().has_module(MGAUT, CHK_DONGLE) && tipo().mov_mag(); const bool check_movmag = main_app().has_module(MGAUT, CHK_DONGLE) && tipo().mov_mag();
@ -1142,6 +1145,10 @@ void TDocumento::update_tabella_iva()
{ {
const char * codiva = ri->cod_iva().codice(); const char * codiva = ri->cod_iva().codice();
const real i(d.get()); const real i(d.get());
real & imponibile = ri->imp();
imponibile += i;
real & iva = ri->iva(); real & iva = ri->iva();
const real imposta(::iva(i, TIVA(codiva), ALL_DECIMALS)); const real imposta(::iva(i, TIVA(codiva), ALL_DECIMALS));