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:
parent
186b2573d4
commit
bddad2042b
101
mg/mglib02.cpp
101
mg/mglib02.cpp
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user