Nuova codifica dei segni di movimento delle causali (per supportare fino a 25 segni)

Aggiunta la gestione movimenta solo valori/solo qta


git-svn-id: svn://10.65.10.50/trunk@4823 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
augusto 1997-07-07 10:25:09 +00:00
parent 186b2573d4
commit bddad2042b

View File

@ -831,40 +831,47 @@ TCondizione_vendita::TCondizione_vendita(TConfig * ditta,
int TCausale_magazzino::sgn(TTipo_saldomag tiposaldo)
{
static TString80 segni;
segni=get("S2");
switch (tiposaldo) {
case s_giac:
return get_int("I0");
return atoi(segni.mid(0,2));
case s_acq:
return get_int("I1");
return atoi(segni.mid(2,2));
case s_ent:
return get_int("I2");
return atoi(segni.mid(4,2));
case s_ven:
return get_int("I3");
return atoi(segni.mid(6,2));
case s_usc:
return get_int("I4");
return atoi(segni.mid(8,2));
case s_ordc:
return get_int("I5");
return atoi(segni.mid(10,2));
case s_ordf:
return get_int("I6");
return atoi(segni.mid(12,2));
case s_incl:
return get_int("I7");
return atoi(segni.mid(14,2));
case s_acl:
return get_int("I8");
return atoi(segni.mid(16,2));
case s_prodc:
return get_int("I9");
return atoi(segni.mid(18,2));
case s_prodf:
return get_int("I10");
return atoi(segni.mid(20,2));
case s_rim:
return get_int("I11");
return atoi(segni.mid(22,2));
case s_scart:
return get_int("I12");
return atoi(segni.mid(24,2));
case s_label:
return get_int("I13");
return atoi(segni.mid(26,2));
default:
return 0;
}
}
bool TCausale_magazzino::is_fiscale()
{
return (tipomov()=='S' || tipomov()=='C' );
}
TCausale_magazzino::TCausale_magazzino(const char * codice):
TRectype(LF_TABCOM)
@ -949,7 +956,7 @@ int TMov_mag::read(TBaseisamfile& f, word op , word lockop)
const int nrows = rows();
for (int i = 1; i< nrows; i++)
for (int i = 1; i<= nrows; i++)
line_deleted(line2key(i), line2data(i));
return res;
}
@ -1021,7 +1028,7 @@ int TMov_mag::rewrite(TBaseisamfile& f) const
const int nrows = rows();
for (int i = 1; i < nrows; i++)
for (int i = 1; i <= nrows; i++)
((TMov_mag *)this)->line_inserted(line2key(i), line2data(i));
if ((res=TMultiple_rectype::rewrite(f))==NOERR )
// effettua la variazione dei saldi
@ -1059,15 +1066,15 @@ int TMov_mag::force_update_bal()
return res;
}
// restituisce
// restituisce il valore dei dati
TLine_movmag & TMov_mag::line2data(int nrig) const
{
static TLine_movmag _rest;
TRecord_array & b = body();
_rest.codcaus= b.row(nrig).get(RMOVMAG_CODCAUS) != " " ?
b.row(nrig).get(RMOVMAG_CODCAUS)
: get(MOVMAG_CODCAUS);
_rest.codcaus= b.row(nrig).get(RMOVMAG_CODCAUS).blank() ?
get(MOVMAG_CODCAUS)
: b.row(nrig).get(RMOVMAG_CODCAUS) ;
_rest.um = b.row(nrig).get(RMOVMAG_UM);
_rest.quant = b.row(nrig).get_real(RMOVMAG_QUANT);
_rest.prezzo= b.row(nrig).get_real(RMOVMAG_PREZZO);
@ -1187,7 +1194,10 @@ int TMov_mag::update_balances()
curr_art.read((const char *)key2field(*curr_key,"CODART"));
if (curr_art.lock_and_prompt()) {
TLine_movmag & line_mov=(TLine_movmag &)lines_to_add[*curr_key];
curr_art.update_ultcosti(line_mov.prezzo,get_date("DATACOMP"));
TCausale_magazzino & causmag=(TCausale_magazzino &)cache_causali.get(line_mov.codcaus);
if (causmag.update_ultcos())
curr_art.update_ultcosti(line_mov.prezzo,get_date("DATACOMP"));
// lock gained
giac_putkey(mag,get("ANNOES"),*curr_key);
if (mag.read()!=NOERR) {
@ -1266,28 +1276,32 @@ int TMov_mag::update_balances(TRectype & magrec, const TLine_movmag &l,int rett_
diff=fc*rett_sign*l.quant;
diff_val=rett_sign*l.quant*l.prezzo;
update_balance(magrec,"GIAC",diff*caus.sgn(s_giac)); // update ..
update_balance(magrec,"ACQ",diff*caus.sgn(s_acq)); // update ..
update_balance(magrec,"VALACQ",diff_val*caus.sgn(s_acq)); // update ..
update_balance(magrec,"ENT",diff*caus.sgn(s_ent));
update_balance(magrec,"VALENT",diff_val*caus.sgn(s_ent));
update_balance(magrec,"VEN",diff*caus.sgn(s_ven));
update_balance(magrec,"VALVEN",diff_val*caus.sgn(s_ven));
update_balance(magrec,"USC",diff*caus.sgn(s_usc));
update_balance(magrec,"VALUSC",diff_val*caus.sgn(s_usc));
update_balance(magrec,"ORDC",diff*caus.sgn(s_ordc));
update_balance(magrec,"VALORDC",diff_val*caus.sgn(s_ordc));
update_balance(magrec,"ORDF",diff*caus.sgn(s_ordf));
update_balance(magrec,"VALORDF",diff_val*caus.sgn(s_ordf));
update_balance(magrec,"RIM",diff*caus.sgn(s_rim));
update_balance(magrec,"VALRIM",diff_val*caus.sgn(s_rim));
update_balance(magrec,"SCARTI",diff*caus.sgn(s_scart));
update_balance(magrec,"VALSCARTI",diff_val*caus.sgn(s_scart));
update_balance(magrec,"INCL",diff*caus.sgn(s_incl));
update_balance(magrec,"ACL",diff*caus.sgn(s_acl));
update_balance(magrec,"PRODCOMP",diff*caus.sgn(s_prodc));
update_balance(magrec,"PRODFIN",diff*caus.sgn(s_prodf));
update_balance(magrec,"NLABEL",diff*caus.sgn(s_label));
if (caus.update_qta()) {
update_balance(magrec,"GIAC",diff*caus.sgn(s_giac)); // update ..
update_balance(magrec,"ACQ",diff*caus.sgn(s_acq)); // update ..
update_balance(magrec,"ENT",diff*caus.sgn(s_ent));
update_balance(magrec,"VEN",diff*caus.sgn(s_ven));
update_balance(magrec,"USC",diff*caus.sgn(s_usc));
update_balance(magrec,"ORDC",diff*caus.sgn(s_ordc));
update_balance(magrec,"ORDF",diff*caus.sgn(s_ordf));
update_balance(magrec,"RIM",diff*caus.sgn(s_rim));
update_balance(magrec,"SCARTI",diff*caus.sgn(s_scart));
update_balance(magrec,"INCL",diff*caus.sgn(s_incl));
update_balance(magrec,"ACL",diff*caus.sgn(s_acl));
update_balance(magrec,"PRODCOMP",diff*caus.sgn(s_prodc));
update_balance(magrec,"PRODFIN",diff*caus.sgn(s_prodf));
update_balance(magrec,"NLABEL",diff*caus.sgn(s_label));
}
if (caus.update_val()) {
update_balance(magrec,"VALACQ",diff_val*caus.sgn(s_acq)); // update ..
update_balance(magrec,"VALENT",diff_val*caus.sgn(s_ent));
update_balance(magrec,"VALVEN",diff_val*caus.sgn(s_ven));
update_balance(magrec,"VALUSC",diff_val*caus.sgn(s_usc));
update_balance(magrec,"VALORDC",diff_val*caus.sgn(s_ordc));
update_balance(magrec,"VALORDF",diff_val*caus.sgn(s_ordf));
update_balance(magrec,"VALRIM",diff_val*caus.sgn(s_rim));
update_balance(magrec,"VALSCARTI",diff_val*caus.sgn(s_scart));
}
return 0;
}
@ -1304,7 +1318,6 @@ int TMov_mag::codice_esercizio(TDate &d)
return _esercizi.date2esc(d);
}
//**********************
bool rebuild_balances(TString16 annoes, bool reset_giac)
{