Patch level : 2.2

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :

CM20135
Nelle righe di movimento il codice della fase e' sbagliato, viene caricato il centro di costo

CM20136
La percentuale della ripartizione interattiva non ripartisce correttamente gli importi


git-svn-id: svn://10.65.10.50/trunk@12909 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2005-04-05 13:57:37 +00:00
parent 437192a274
commit 42e6002a2c
2 changed files with 72 additions and 31 deletions

View File

@ -118,17 +118,31 @@ int TRiparti_msk::create_sheet_fields(int lf, int& y, short& dlg)
}
}
const char* fieldname = NULL;
switch(logic)
if (logic == LF_PCON)
{
case LF_CDC : fieldname = RRIP_CODCOSTO; break;
case LF_COMMESSE: fieldname = RRIP_CODCMS; break;
case LF_FASI : fieldname = RRIP_CODFASE; break;
default : fieldname = RRIP_CODCONTO; break;
}
const TFieldref* f = fld.field();
const TString16 fieldname = f->name();
TFieldref* f = (TFieldref*)fld.field();
f->set_name(fieldname);
if (fieldname == "GRUPPO")
fld.set_field("CODCONTO[1,3]"); else
if (fieldname == "CONTO")
fld.set_field("CODCONTO[4,6]"); else
if (fieldname == "SOTTOCONTO")
fld.set_field("CODCONTO[7,12]");
}
else
{
const char* fieldname = NULL;
switch(logic)
{
case LF_CDC : fieldname = RRIP_CODCOSTO; break;
case LF_COMMESSE: fieldname = RRIP_CODCMS; break;
case LF_FASI : fieldname = RRIP_CODFASE; break;
default : fieldname = RRIP_CODCONTO; break;
}
TFieldref* f = (TFieldref*)fld.field();
f->set_name(fieldname);
}
}
y += h+1;

View File

@ -128,12 +128,14 @@ TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip)
keyrip.add(rrip.get(RRIP_CODCONTO));
TRectype rmov(LF_RMOVANA);
if (sheet.items() > 0)
const int totrows = sheet.items();
if (totrows > 0)
{
for (int i = 0; i < sheet.items(); i++)
TToken_string keyrow;
for (int i = 0; i < totrows; i++)
{
row2rec(i, rmov);
TToken_string keyrow;
keyrow.cut(0);
keyrow.add(rmov.get(RMOVANA_CODCCOSTO));
keyrow.add(rmov.get(RMOVANA_CODCMS));
keyrow.add(rmov.get(RMOVANA_CODFASE));
@ -144,10 +146,11 @@ TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip)
}
// Devo creare una riga nuova
rmov.zero();
rmov.put(RMOVANA_CODCCOSTO, keyrip.get(0));
rmov.put(RMOVANA_CODCMS, keyrip.get());
rmov.put(RMOVANA_CODFASE, keyrip.get(0));
rmov.put(RMOVANA_CODCONTO, keyrip.get());
rmov.put(RMOVANA_CODCMS, keyrip.get());
rmov.put(RMOVANA_CODFASE, keyrip.get());
rmov.put(RMOVANA_CODCONTO, keyrip.get());
TToken_string& row = rec2row(rmov, -1);
return row;
}
@ -160,7 +163,10 @@ void TMovanal_msk::split_cg_row(const TRectype& row, const TRecord_array& rrip)
// Calcolo tutte le percentuali da ripartire
int i;
for (i = 1; i <= rrip.rows(); i++)
distrib.add(rrip[i].get_real("RIPARTO"));
{
const real quota = rrip[i].get_real("RIPARTO");
distrib.add(quota);
}
for (i = 1; i <= rrip.rows(); i++)
{
@ -407,6 +413,7 @@ void TMovanal_msk::imp2row(const TImporto& imp, TToken_string& row) const
TToken_string& TMovanal_msk::rec2row(const TRectype& rec, int r) const
{
CHECK(rec.num() == LF_RMOVANA, "Bad record type");
TSheet_field& sheet = sfield(F_RIGHE);
TMask& sm = sheet.sheet_mask();
@ -419,11 +426,12 @@ TToken_string& TMovanal_msk::rec2row(const TRectype& rec, int r) const
for (int i = sm.fields()-1; i >= 2; i--)
{
TMask_field& mf = sm.fld(i);
if (mf.field() != NULL)
const TFieldref* fr = mf.field();
if (fr != NULL)
{
const int idx = sheet.cid2index(mf.dlg());
if (idx < 17)
row.add(mf.field()->read(rec), idx);
row.add(fr->read(rec), idx);
}
}
@ -543,17 +551,32 @@ int TMovanal_msk::create_sheet_fields(int lf, int& y, short& dlg, bool required)
}
}
const char* fieldname = NULL;
switch(logic)
if (logic == LF_PCON)
{
case LF_CDC : fieldname = RMOVANA_CODCCOSTO; break;
case LF_COMMESSE: fieldname = RMOVANA_CODCMS; break;
case LF_FASI : fieldname = RMOVANA_CODFASE; break;
default : fieldname = RMOVANA_CODCONTO; break;
}
const TFieldref* f = fld.field();
const TString16 fieldname = f->name();
TFieldref* f = (TFieldref*)fld.field();
f->set_name(fieldname);
if (fieldname == "GRUPPO")
fld.set_field("CODCONTO[1,3]"); else
if (fieldname == "CONTO")
fld.set_field("CODCONTO[4,6]"); else
if (fieldname == "SOTTOCONTO")
fld.set_field("CODCONTO[7,12]");
}
else
{
const char* fieldname = NULL;
switch(logic)
{
case LF_CDC : fieldname = RMOVANA_CODCCOSTO; break;
case LF_COMMESSE: fieldname = RMOVANA_CODCMS; break;
case LF_FASI : fieldname = RMOVANA_CODFASE; break;
default : fieldname = RMOVANA_CODCONTO; break;
}
TFieldref* f = (TFieldref*)fld.field();
f->set_name(fieldname);
}
fld.check_type(required ? CHECK_REQUIRED : CHECK_NORMAL);
TEdit_field& dfld = sm.efield(dlg+50+i);
@ -705,14 +728,18 @@ bool TMovanal_app::protected_record(TRectype& rec)
int TMovanal_app::write(const TMask& m)
{
write_rows(m);
return TRelation_application::write(m);
const int err = TRelation_application::write(m);
if (err == NOERR)
write_rows(m);
return err;
}
int TMovanal_app::rewrite(const TMask& m)
{
write_rows(m);
return TRelation_application::rewrite(m);
const int err = TRelation_application::rewrite(m);
if (err == NOERR)
write_rows(m);
return err;
}
int TMovanal_app::read(TMask& m)