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