Patch level :AGA 2.0 362

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :corretti errori compilazione AGA 32 bit


git-svn-id: svn://10.65.10.50/trunk@10684 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2002-12-17 12:22:44 +00:00
parent cf2be74687
commit 3ddb3ecab5
2 changed files with 1 additions and 312 deletions

View File

@ -83,318 +83,6 @@ const char* TMov_mag_doc::codmag_rauto(int r) const
return j >=0 ? _codmagc.row(j) : NULL;
}
///////////////////////////////////////////////////////////
// Tipo documento
///////////////////////////////////////////////////////////
TAssoc_array TTipo_documento::_formule_documento;
TTipo_documento::TTipo_documento(const char* tipodoc)
: TRectype(LF_TABCOM), _tipocf('\0')
{
settab("TIP");
if (tipodoc && *tipodoc)
read(tipodoc);
}
TTipo_documento::TTipo_documento(const TRectype& rec)
: TRectype(rec), _tipocf('\0')
{
read_formule();
}
TTipo_documento::~TTipo_documento()
{
}
int TTipo_documento::read(const char* tipodoc)
{
*this = cache().get("%TIP", tipodoc);
int err = empty() ? _iskeynotfound : NOERR;
_formule.cut(0);
if (err == NOERR)
read_formule();
else
yesnofatal_box("Tipo documento errato: %s", tipodoc);
return err;
}
const char TTipo_documento::tipocf()
{
if (_tipocf == '\0')
{
TFilename pn = profile_name();
pn.ext("ini");
TConfig prof(pn);
_tipocf = prof.get_char("TIPOCF", "MAIN");
}
return _tipocf;
}
const TString_array& TTipo_documento::keys_descrs()
{
if (_keys_descrs.items() == 0)
{
TString16 var, tiporiga;
TFilename pn(profile_name());
pn.ext("ini");
TConfig prof(pn);
const int numtr = prof.get_int( "NTIPIRIGA", "RIGHE" );
TTipo_riga_documento tr;
_keys_descrs.add("");
_keys_descrs.add("");
TToken_string& k = (TToken_string&)_keys_descrs[0];
TToken_string& d = (TToken_string&)_keys_descrs[1];
if (numtr > 0)
{
for ( int i = 1; i <= numtr; i ++ )
{
var.format("%d", i);
tiporiga = prof.get(var, "RIGHE");
tr.read(tiporiga);
k.add(tr.codice());
d.add(tr.descrizione());
}
}
else
{
TTable tri("%TRI");
for (int err = tri.first(); err == NOERR; err = tri.next())
{
k.add(tri.get("CODTAB"));
d.add(tri.get("S0"));
}
}
}
return _keys_descrs;
}
const TString_array& TTipo_documento::sheet_columns()
{
if (_sheet_columns.items() == 0)
{
TString16 col;
TFilename pn(profile_name());
pn.ext("ini");
TConfig prof(pn, "SHEET");
int ncols = prof.get_int( "NCOLS", "SHEET" );
for (int i = 1; i <= ncols; i++)
{
col.format( "%d", i );
_sheet_columns.add(prof.get(col, "SHEET"));
}
}
return _sheet_columns;
}
const TString_array& TTipo_documento::handlers()
{
if (_handlers.items() == 0)
{
TString16 chiave;
TFilename pn = profile_name();
pn.ext("ini");
TConfig prof(pn);
int numhandler = prof.get_int( "NHANDLER", "HANDLERS" ); // prof
for (int i = 1; i <= numhandler; i ++ )
{
chiave.format("%d", i);
_handlers.add(prof.get(chiave, "HANDLERS"));
}
}
return _handlers;
}
void TTipo_documento::set_defaults(TMask& m)
{
const int items = _defaults.items();
if (items == 0) // Carica lo string_array con i defaults
{
TString16 chiave;
TFilename pn(profile_name());
pn.ext("ini");
TConfig prof(pn, "DEFAULT");
const int ndefaults = prof.get_int("NDEFAULTS");
for(int i = 1; i <= ndefaults; i++)
{
chiave.format("%d", i);
_defaults.add(prof.get(chiave));
}
}
for (int i = 0; i < items; i++) // Setta i campi della maschera
{
TToken_string& tt = (TToken_string&)_defaults[i];
const int ncampo = tt.get_int(0);
m.set(ncampo, tt.get(1), TRUE );
}
}
void TTipo_documento::read_formule()
{
TFilename profile(profile_name());
profile.ext("ini");
TConfig prof(profile, "MAIN");
prof.write_protect(); // Altrimenti non si distrugge!!!
_formule = prof.get("CAMPICALC", "MAIN");
const TString & calcoli = prof.get("CALCOLI", "MAIN");
if (calcoli == "*")
{
TTable frd("%FRD");
for (int err = frd.first(); err == NOERR; err = frd.next())
{
const TString & formula = frd.get("CODTAB");
if (_formule.find(formula) < 0)
_formule.add(formula);
}
}
else
_formule.add(calcoli);
_totale = prof.get("TOTALE", "MAIN");
if (_totale.empty())
_totale = "TOTDOC";
const TRectype& for_tot = cache().get("%FRD", _totale);
if (for_tot.empty())
_formule_documento.add(_totale, new TFormula_documento(_documento, _totale, "IMPONIBILI()+IMPOSTE()"), TRUE);
if (_formule.find(_totale) < 0)
_formule.add(_totale);
_totale_netto = "_";
_totale_netto << _totale;
_basesconto = prof.get("BASESCONTO");
if (_basesconto.empty())
_basesconto = "BASESCONTO";
const TRectype& for_bas = cache().get("%FRD", _basesconto);
if (for_bas.empty())
_formule_documento.add(_basesconto, new TFormula_documento(_documento, _basesconto, "SOMMA(\"IMPONIBILE()\", \"(TIPO() != 'S') && (TIPO() != 'C')\")"), TRUE);
if (_formule.find(_basesconto) < 0)
_formule.add(_basesconto);
_spese = prof.get("SPESE");
if (_spese.empty())
_spese = "SPESE";
const TRectype& for_spe = cache().get("%FRD", _spese);
if (for_spe.empty())
_formule_documento.add(_spese, new TFormula_documento(_documento, _spese, "SOMMA(\"IMPONIBILE()\", \"TIPO() == 'S'\")"), TRUE);
if (_formule.find(_spese) < 0)
_formule.add(_spese);
_totvalres = prof.get("TOTVALRES");
if (_totvalres.empty())
_totvalres = "TOTVALRES";
_totvalore = prof.get("TOTVALORE");
if (_totvalore.empty())
_totvalore = "TOTVALORE";
const TRectype& for_tvr = cache().get("%FRD", _totvalres);
if (for_tvr.empty())
_formule_documento.add(_totvalres, new TFormula_documento(_documento, _totvalres, "VALDOC(0)"), TRUE);
if (_formule.find(_totvalres) < 0)
_formule.add(_totvalres);
const TRectype& for_tva = cache().get("%FRD", _totvalore);
if (for_tva.empty())
_formule_documento.add(_totvalore, new TFormula_documento(_documento, _totvalore, "VALDOC(1)"), TRUE);
if (_formule.find(_totvalore) < 0)
_formule.add(_totvalore);
if (provvigioni())
{
TString80 campo(prof.get("TOTPROVV"));
if (campo.empty())
campo = "TOTPROVV";
const TRectype& frd = cache().get("%FRD", campo);
_totprovv = "_";
_totprovv << campo;
TString80 expr(frd.get("S1"));
if (expr.empty())
expr = "SOMMA(\"PROVV()\")";
_formule_documento.add(_totprovv, new TFormula_documento(_documento, _totprovv, expr, TRUE));
if (_formule.find(campo) < 0)
_formule.add(campo);
_formule.add(_totprovv);
_formule_documento.add(campo, new TFormula_documento(_documento, campo, "TOTPROVV()"), TRUE);
}
_totale_cont = prof.get("TOTALECONT", "MAIN");
_cnt_prezzi = prof.get_bool("CONTROLLO_PREZZI", "MAIN");
_field_prezzo = prof.get("PREZZO", "MAIN");
}
bool TTipo_documento::stato_with_mov_mag(const char stato) const
{
if (!mov_mag())
return FALSE;
const char stato_finale(stato_mov_finale());
if (stato_finale > ' ' && stato > stato_finale)
return FALSE;
const char stato_iniziale(stato_mov_iniziale());
return stato >= stato_iniziale;
}
TFormula_documento * TTipo_documento::succ_formula(bool restart)
{
if (restart)
_formule.restart();
TString formula = _formule.get();
while (formula.not_empty())
{
if (formula.blank())
formula = _formule.get();
else
break;
}
if (formula.not_empty())
{
char *expr = NULL;
const int p = formula.find('=');
if (p > 0)
{
expr = (char *) (const char *) formula + p;
*expr = '\0'; expr++;
}
TFormula_documento * o = (TFormula_documento*)_formule_documento.objptr(formula);
if (o == NULL)
{
o = new TFormula_documento(_documento, formula, expr);
_formule_documento.add(formula, o);
}
return o;
}
return NULL;
}
bool TTipo_documento::scarica_residuo() const
{
if (is_ordine() && (!riporta_ordinato()))
return TRUE;
return get_bool("B4");
}
/////////////////////////////////////////////////////////////
// TRiepilogo IVA
/////////////////////////////////////////////////////////////

View File

@ -27,3 +27,4 @@ bool pricerange_handler(TMask_field& f, KEY key );
bool link_handler( TMask_field& f, KEY key );
bool numdocrif_hndl(TMask_field& field, KEY key);
#endif