Migliorato controllo giacenze negative in evasione ordini
git-svn-id: svn://10.65.10.50/branches/R_10_00@23093 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
49319d0200
commit
3b8a54b884
@ -339,19 +339,18 @@ bool TFatturazione_bolle::get_num_tip_out(const TDocumento& doc, TString& codnum
|
||||
if (tipo_cfv.full())
|
||||
tipodoc = tipo_cfv;
|
||||
|
||||
const TCodice_numerazione& cn = cached_numerazione(codnum);
|
||||
bool ok = cn.find_tipo_doc(tipodoc) >= 0;
|
||||
const TCodice_numerazione& cn_std = cached_numerazione(codnum);
|
||||
bool ok = cn_std.find_tipo_doc(tipodoc) >= 0;
|
||||
|
||||
if (!ok)
|
||||
{
|
||||
TISAM_recordset num_recset("USE %NUM SELECT I1=2");
|
||||
for (ok = num_recset.move_first(); ok; ok = num_recset.move_next()) // giro sui vari tipi fattura
|
||||
{
|
||||
const TString4 codtab = num_recset.get("CODTAB").as_string();
|
||||
const TCodice_numerazione cn(codtab);
|
||||
if (cn.find_tipo_doc(tipodoc) >= 0)
|
||||
const TCodice_numerazione cn_alt(num_recset.cursor()->curr());
|
||||
if (cn_alt.find_tipo_doc(tipodoc) >= 0)
|
||||
{
|
||||
codnum = codtab;
|
||||
codnum = cn_alt.codice();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,6 @@ class TConsegna_mask : public TAutomask
|
||||
{
|
||||
bool _ordina_per_codice;
|
||||
bool _ignora_descrizioni;
|
||||
bool _check_giac;
|
||||
const TDocumento* _indoc;
|
||||
const TDocumento* _outdoc;
|
||||
|
||||
@ -98,12 +97,12 @@ bool TConsegna_mask::on_field_event(class TOperable_field& f, TField_event e, lo
|
||||
return false;
|
||||
if (e == fe_close)
|
||||
{
|
||||
const TString& codcausmag = _outdoc->get(DOC_CAUSMAG);
|
||||
if (codcausmag.full() && _check_giac)
|
||||
const TString8 codcausmag = _outdoc->get(DOC_CAUSMAG);
|
||||
if (codcausmag.full() && _outdoc->tipo().check_giac())
|
||||
{
|
||||
const TCausale_magazzino& causmag = ::cached_causale_magazzino(codcausmag);
|
||||
const int segno = causmag.sgn(s_giac);
|
||||
if (segno < 0) // Scala dalla giacenza?
|
||||
const int alarm = causmag.get_int("I4");
|
||||
if (alarm > 0)
|
||||
{
|
||||
TSheet_field& s = (TSheet_field&)f;
|
||||
TAssoc_array giacenze;
|
||||
@ -133,19 +132,28 @@ bool TConsegna_mask::on_field_event(class TOperable_field& f, TField_event e, lo
|
||||
}
|
||||
}
|
||||
|
||||
bool some_errors = false;
|
||||
FOR_EACH_ASSOC_OBJECT(giacenze, h, k, o)
|
||||
{
|
||||
const real& g = *(real*)o;
|
||||
if (g < ZERO)
|
||||
{
|
||||
TString msg;
|
||||
msg << TR("L'articolo ") << k
|
||||
<< TR(" avrà una giacenza di ") << g.stringa() << ":\n"
|
||||
<< TR("Si desidera proseguire ugualmente?");
|
||||
if (!yesno_box(msg))
|
||||
return false;
|
||||
msg << TR("L'articolo ") << k << TR(" avrà una giacenza di ") << g.stringa();
|
||||
switch (alarm)
|
||||
{
|
||||
case 1: warning_box(msg); break;
|
||||
case 2:
|
||||
msg << ":\n" << TR("Si desidera proseguire ugualmente?");
|
||||
if (!yesno_box(msg))
|
||||
some_errors = true;
|
||||
break;
|
||||
default: some_errors = !error_box(msg); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (some_errors)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -293,7 +301,7 @@ void TConsegna_mask::doc2mask(const TDocumento& indoc, const TDocumento& outdoc,
|
||||
|
||||
TConsegna_mask::TConsegna_mask(int header_code, bool per_codice, bool ignora_descrizioni)
|
||||
: TAutomask("velib04d"), _ordina_per_codice(per_codice), _indoc(NULL), _outdoc(NULL),
|
||||
_ignora_descrizioni(ignora_descrizioni), _check_giac(false)
|
||||
_ignora_descrizioni(ignora_descrizioni)
|
||||
{
|
||||
TCodgiac_livelli cl;
|
||||
TSheet_field& s = sfield(F_ROWS);
|
||||
@ -329,7 +337,6 @@ TConsegna_mask::TConsegna_mask(int header_code, bool per_codice, bool ignora_des
|
||||
agg.set_prompt(codagg);
|
||||
}
|
||||
}
|
||||
_check_giac = c.get_bool("CHECK_GIAC", "mg");
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -383,12 +390,11 @@ bool TConsegna_ordini::genera_righe_riferimento(const TDocumento& indoc, TDocume
|
||||
}
|
||||
|
||||
TRiga_documento& rout = outdoc[riga_rif];
|
||||
TString memo(1024);
|
||||
|
||||
memo = rout.get(RDOC_DESCR);
|
||||
|
||||
|
||||
TString memo = rout.get(RDOC_DESCR);
|
||||
if (rout.get_bool(RDOC_DESCLUNGA))
|
||||
memo << rout.get(RDOC_DESCEST);
|
||||
|
||||
// Costruisce la stringa di riferimento
|
||||
|
||||
TString rifrow(indoc.tipo().descrizione());
|
||||
|
Loading…
x
Reference in New Issue
Block a user