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:
parent
437192a274
commit
42e6002a2c
@ -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;
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user