diff --git a/ve/sconti.cpp b/ve/sconti.cpp index b3179de5f..eb57168aa 100755 --- a/ve/sconti.cpp +++ b/ve/sconti.cpp @@ -25,13 +25,17 @@ #ifndef __VEINI_H #include "veini.h" #endif + +#ifndef __VELIB_H +#include "velib.h" +#endif + HIDDEN const real CENTO(100.0); bool TCond_vendita::set_sconto( const char * exp, bool signal ) { + /* TString80 goodexp; - bool valid = TRUE; - // Elimina gli spazi molesti // work.strip_spaces( ); if (exp && *exp) @@ -115,6 +119,9 @@ bool TCond_vendita::set_sconto( const char * exp, bool signal ) } } _sconto = goodexp; + */ + bool valid= scontoexpr2perc(exp,signal,_sconto,_molt_sconto ); + if (_load_mask && _riga && _riga->id2pos(FR_SCONTO) >= 0 && _riga->field(FR_SCONTO).active()) _riga->set(FR_SCONTO, _sconto); return valid; diff --git a/ve/velib.h b/ve/velib.h index 3604f0cce..def0f37eb 100755 --- a/ve/velib.h +++ b/ve/velib.h @@ -60,6 +60,8 @@ class TRiga_documento; class TCond_vendita; class TIVA; + +bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc ); // velib01 real lordo2netto(real& lordo, const TString& codiva, int ndec); inline real lordo2netto(real& lordo, const TString& codiva, bool is_valuta = FALSE) { return lordo2netto(lordo, codiva, is_valuta ? 3 : 0);} @@ -80,6 +82,7 @@ bool note_hndl(TMask_field& field, KEY key); bool data_hndl(TMask_field& field, KEY key); void set_curr_um(const TMask & m); + class TDocumento_variable_field : public TVariable_field { bool _dirty; @@ -506,8 +509,8 @@ protected: void update_tabella_iva(); void dirty_tabella_iva() { _tabella_iva.destroy();} static void test_firm(); - const TString16 & codiva_spese() const { ((TDocumento *)this)->test_firm(); return _codiva_spese;} - const TString16 & codiva_bolli() const { ((TDocumento *)this)->test_firm(); return _codiva_bolli;} + inline const TString16 & codiva_spese() const ; + inline const TString16 & codiva_bolli() const ; void check_modules(); public: diff --git a/ve/velib03.cpp b/ve/velib03.cpp index 6470e79f0..4629a913f 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -327,6 +327,13 @@ TDocumento::~TDocumento() if (_esenzione != NULL) delete _esenzione; } +inline const TString16 & TDocumento::codiva_spese() const +{ ((TDocumento *)this)->test_firm(); return _codiva_spese;} + +inline const TString16 & TDocumento::codiva_bolli() const +{ ((TDocumento *)this)->test_firm(); return _codiva_bolli;} + + void TDocumento::check_modules() { if (_has_mag == 3)