Patch level : 10.0 740

Files correlati     : mg3.exe
Ricompilazione Demo : [ ]
Commento            :
0001632: 002497 - Pharmatex - stampa schede di magazzino
Con installata la patch 736, chiedo la stampa scheda dell'articolo 120504H,
suddivisa per magazzino e fino al livello di giacenza, alla voce saldo precedente mi riporta 0, se scelgo di stampare al livello dell'articolo invece mi riporta un saldo precedente (corretto) di 39200.


git-svn-id: svn://10.65.10.50/trunk@20456 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2010-05-17 09:41:32 +00:00
parent 77c98bdf2a
commit c9aa12f2b3

@ -277,10 +277,9 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
valore = "";
if (!_magazzino_chiuso) // mag precedente non chiuso, mancano i saldi di apertura
{
TString80 codart; _saldo_key.get(0, codart);
TString16 livello; _saldo_key.get(1, livello);
TString8 codmag; _saldo_key.get(2, codmag);
TString80 codart; _saldo_key.get(0, codart); codart.rtrim();
TString16 livello; _saldo_key.get(1, livello); livello.rtrim();
TString8 codmag; _saldo_key.get(2, codmag); codmag.rtrim();
if (_tolivart > 0 && _tolivart < livelli_articolo().last_level())
{
codart.cut(livelli_articolo().code_length(_tolivart));
@ -297,10 +296,12 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
livello.cut(0);
}
TString query, region;
query << "USE " << LF_MAG;
TString region;
region << MAG_ANNOES << '=' << _anno_prec;
region << ' ' << MAG_CODART << '=' << codart;
TString query;
query << "USE " << LF_MAG;
query << "\nFROM " << region;
query << "\nTO " << region;
if (_tolivart <= 0 || _tolivart >= livelli_articolo().last_level())
@ -312,8 +313,22 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
{
if (_sudd_mag && magprec.get(MAG_CODMAG).as_string() != codmag)
continue; // Escludo magazzini indesiderati
if (livello.not_empty() && !magprec.get(MAG_LIVELLO).as_string().starts_with(livello))
continue; // Escludo livelli di giacenza non corrispondenti
if (_tolivgiac > 0) // Stampa per livello di giacenza
{
const TString& cl = magprec.get(MAG_LIVELLO).as_string();
if (_tolivgiac >= livelli_giacenza().last_level())
{
if (cl != livello)
continue; // Escludi livelli non corrispondenti
}
else
{
if (!cl.starts_with(livello))
continue; // Escludi sotto livelli non corrispondenti
}
}
const real saldoprec = magprec.get(nomecampo_scheda()).as_real();
currsaldo += saldoprec; // Sommo il saldo precedente al campo corrente
}