Allungate stringhe interne TModule_table per gestire correttamente codice cliente
git-svn-id: svn://10.65.10.50/branches/R_10_00@22845 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bf49d2b058
commit
2c5d6aded2
@ -250,21 +250,21 @@ const char* TDowJones::normalize_value(const char* val, const real& /*exch*/)
|
||||
|
||||
void TExchange::copy(const TExchange& exc)
|
||||
{
|
||||
strcpy(_val, exc._val);
|
||||
_codval = exc._codval;
|
||||
_exchange = exc._exchange;
|
||||
}
|
||||
|
||||
const real& TExchange::get_change() const
|
||||
{
|
||||
if (_exchange.is_zero())
|
||||
return DowJones.get_change(_val);
|
||||
return DowJones.get_change(_codval);
|
||||
return _exchange;
|
||||
}
|
||||
|
||||
int TExchange::compare(const TSortable& obj) const
|
||||
{
|
||||
const TExchange& exc = (const TExchange&)obj;
|
||||
int cmp = strcmp(_val, exc._val);
|
||||
int cmp = _codval.compare(exc._codval);
|
||||
if (cmp == 0)
|
||||
{
|
||||
const real diff = get_change() - exc.get_change();
|
||||
@ -275,36 +275,34 @@ int TExchange::compare(const TSortable& obj) const
|
||||
|
||||
bool TExchange::same_value_as(const TExchange& exc) const
|
||||
{
|
||||
return strcmp(_val, exc._val) == 0;
|
||||
return _codval == exc._codval;
|
||||
}
|
||||
|
||||
bool TExchange::is_firm_value() const
|
||||
{
|
||||
return DowJones.get_firm_val() == _val;
|
||||
return DowJones.get_firm_val() == _codval;
|
||||
}
|
||||
|
||||
bool TExchange::is_euro_value() const
|
||||
{
|
||||
return DowJones.get_euro_val() == _val;
|
||||
return DowJones.get_euro_val() == _codval;
|
||||
}
|
||||
|
||||
int TExchange::decimals(bool price) const
|
||||
{
|
||||
return DowJones.get_dec(_val, price);
|
||||
return DowJones.get_dec(_codval, price);
|
||||
}
|
||||
|
||||
void TExchange::set(const char* val, const real& chg)
|
||||
{
|
||||
val = DowJones.normalize_value(val, chg);
|
||||
strncpy(_val, val, 4);
|
||||
_val[3] = '\0';
|
||||
_codval = DowJones.normalize_value(val, chg);
|
||||
_exchange = chg;
|
||||
}
|
||||
|
||||
void TExchange::set(const TRectype& rec)
|
||||
{
|
||||
const TString4 codval = rec.get("CODVAL");
|
||||
const real chg = rec.get_real("CAMBIO");
|
||||
const TString& codval = rec.get("CODVAL");
|
||||
set(codval, chg);
|
||||
}
|
||||
|
||||
@ -408,15 +406,15 @@ const char* TCurrency::string(bool dotted) const
|
||||
TCurrency& TCurrency::operator+=(const TCurrency& cur)
|
||||
{
|
||||
CHECK(is_price() == cur.is_price(), "Somma di pere e mele!");
|
||||
if (!cur._num.is_zero())
|
||||
{
|
||||
if (!cur.is_zero())
|
||||
{
|
||||
if (same_value_as(cur))
|
||||
{
|
||||
_num += cur._num;
|
||||
}
|
||||
else
|
||||
{
|
||||
real n = DowJones.exchange(cur._num, cur._chg, _chg, is_price());
|
||||
const real n = DowJones.exchange(cur._num, cur._chg, _chg, is_price());
|
||||
_num += n;
|
||||
}
|
||||
}
|
||||
@ -502,7 +500,6 @@ bool same_values(const char * valuea, const char * valueb)
|
||||
return xvt_str_compare_ignoring_case(valuea, valueb) == 0;
|
||||
}
|
||||
|
||||
|
||||
real change_currency(const real& num,
|
||||
const char* fromval, const real& fromchg,
|
||||
const char* toval, const real& tochg,
|
||||
|
@ -16,7 +16,7 @@ class TRectype;
|
||||
|
||||
class TExchange : public TSortable
|
||||
{
|
||||
char _val[4]; // Codice valuta
|
||||
TString4 _codval; // Codice valuta
|
||||
real _exchange; // Cambio personalizzato
|
||||
|
||||
protected:
|
||||
@ -35,7 +35,7 @@ public:
|
||||
bool is_firm_value() const;
|
||||
bool is_euro_value() const;
|
||||
|
||||
const char* get_value() const { return _val; }
|
||||
const char* get_value() const { return _codval; }
|
||||
const real& get_change() const;
|
||||
int decimals(bool price = false) const;
|
||||
|
||||
|
@ -35,6 +35,8 @@
|
||||
#define DOC_CODINDSP "CODINDSP"
|
||||
#define DOC_DATADOCRIF "DATADOCRIF"
|
||||
#define DOC_NUMDOCRIF "NUMDOCRIF"
|
||||
#define DOC_CODNUMRIF "CODNUMRIF"
|
||||
#define DOC_ANNORIF "ANNORIF"
|
||||
#define DOC_ZONA "ZONA"
|
||||
#define DOC_CODAG "CODAG"
|
||||
#define DOC_CODAGVIS "CODAGVIS"
|
||||
@ -87,6 +89,7 @@
|
||||
#define DOC_IVAXCASSA "IVAXCASSA"
|
||||
#define DOC_DATACOMP "DATACOMP"
|
||||
#define DOC_DATAFCOMP "DATAFCOMP"
|
||||
#define DOC_DATASCIMP "DATASCIMP"
|
||||
#define DOC_CUP "CUP"
|
||||
#define DOC_CIG "CIG"
|
||||
#define DOC_CONTRATTO "CONTRATTO"
|
||||
|
@ -5,7 +5,7 @@
|
||||
TModule_table::TModule_table(const char* tabname)
|
||||
: TLocalisamfile(LF_TABMOD), _customer(0)
|
||||
{
|
||||
TString8 name(tabname);
|
||||
TString16 name(tabname);
|
||||
if (!isalnum(name[0])) // Toglie eventuali prefissi inutili d'ora in poi
|
||||
name.ltrim(1);
|
||||
name.upper();
|
||||
@ -22,7 +22,8 @@ TModule_table::TModule_table(const char* tabname)
|
||||
else
|
||||
_tabname = name;
|
||||
}
|
||||
else _tabname = name;
|
||||
else
|
||||
_tabname = name;
|
||||
|
||||
if (_module.blank() || _customer <= 0L)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user