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