Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :sistemati casini da riporto 3.2 git-svn-id: svn://10.65.10.50/trunk@17124 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
34bbc4d456
commit
af76bbf855
230
ve/velib06.cpp
230
ve/velib06.cpp
@ -1370,26 +1370,10 @@ bool TDocumento_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
||||
const TTipo_riga_documento & t = riga.tipo();
|
||||
|
||||
if (s.full())
|
||||
{
|
||||
if (r < doc.rows())
|
||||
{
|
||||
TRiga_documento & riga = doc[r + 1];
|
||||
if (riga.is_omaggio() && riga.is_generata())
|
||||
{
|
||||
const bool enabled = ss.cell_enabled(r, 0);
|
||||
|
||||
if (!enabled) ss.enable_row(r);
|
||||
ss.force_update(r);
|
||||
ss.select(r);
|
||||
m.send_key(K_CTRL + '+', 0);
|
||||
if (!enabled) ss.disable_row(r);
|
||||
ss.force_update(r);
|
||||
return false;
|
||||
}
|
||||
|
||||
{
|
||||
s.left_just(3);
|
||||
s << ven_rec.get(CFV_CODDEP);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
s = m.get(F_CAUSMAG);
|
||||
@ -3480,8 +3464,6 @@ bool TDocumento_mask::confirm_handler( TMask_field& f, KEY key )
|
||||
qmask.set(F_ANNO, dest.get_int(DOC_ANNO));
|
||||
qmask.set(F_NDOC, dest.get_long(DOC_NDOC));
|
||||
qmask.field(F_NDOC).update_flags("RP");
|
||||
|
||||
// qmask.send_key(K_ENTER, 0);
|
||||
}
|
||||
else
|
||||
return error_box("Errore %d nella generazione del documento definitivo", err);
|
||||
@ -3489,211 +3471,3 @@ bool TDocumento_mask::confirm_handler( TMask_field& f, KEY key )
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TDocumento_mask::update_father_rows(bool add)
|
||||
{
|
||||
if (_auto_reopen_nums.empty())
|
||||
return;
|
||||
const int rows = doc().physical_rows();
|
||||
|
||||
for (int i = 1; i <= rows; i++)
|
||||
{
|
||||
const TRiga_documento & r = doc()[i];
|
||||
|
||||
if (r.is_merce() || r.is_omaggio()|| r.is_prestazione())
|
||||
{
|
||||
TRiga_documento * original_row = (TRiga_documento *) r.find_original_rdoc();
|
||||
|
||||
if (original_row != NULL && _auto_reopen_nums.objptr(original_row->get(RDOC_CODNUM)) != NULL)
|
||||
{
|
||||
TToken_string key;
|
||||
|
||||
key.add(original_row->get(RDOC_PROVV));
|
||||
key.add(original_row->get(RDOC_ANNO));
|
||||
key.add(original_row->get(RDOC_CODNUM));
|
||||
key.add(original_row->get(RDOC_NDOC));
|
||||
key.add(original_row->get(RDOC_IDRIGA));
|
||||
|
||||
real * qta = (real *) _father_rows.objptr(key);
|
||||
|
||||
if (qta == NULL)
|
||||
{
|
||||
qta = new real;
|
||||
_father_rows.add(key, qta);
|
||||
}
|
||||
|
||||
real value = r.quantita();
|
||||
|
||||
if (r.is_articolo())
|
||||
{
|
||||
TArticolo art(r.get(RDOC_CODARTMAG));
|
||||
|
||||
value = art.convert_to_um(value, original_row->get(RDOC_UMQTA), r.get(RDOC_UMQTA));
|
||||
}
|
||||
if(add)
|
||||
*qta += value;
|
||||
else
|
||||
*qta -= value;
|
||||
if (*qta == ZERO)
|
||||
_father_rows.remove(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TAssoc_array TDocumento_mask::_father_rows;
|
||||
TAssoc_array TDocumento_mask::_auto_reopen_nums;
|
||||
TAssoc_array TDocumento_mask::_tipidoc_rels;
|
||||
|
||||
void TDocumento_mask::save_father_rows()
|
||||
{
|
||||
if (_auto_reopen_nums.empty())
|
||||
return;
|
||||
TLocalisamfile rdoc(LF_RIGHEDOC);
|
||||
TString_array rows;
|
||||
TToken_string last_doc;
|
||||
TToken_string curr_doc;
|
||||
int nrows = 0;
|
||||
|
||||
FOR_EACH_ASSOC_OBJECT(_father_rows, h, k, o)
|
||||
{
|
||||
rows.add(k);
|
||||
}
|
||||
rows.sort();
|
||||
rows.add("");
|
||||
|
||||
FOR_EACH_ARRAY_ROW(rows, i, r)
|
||||
{
|
||||
curr_doc = r->get(0);
|
||||
curr_doc.add(r->get());
|
||||
curr_doc.add(r->get());
|
||||
curr_doc.add(r->get());
|
||||
|
||||
if (last_doc != curr_doc && nrows > 0)
|
||||
{
|
||||
TDocumento d;
|
||||
|
||||
d.read(last_doc.get_char(0), last_doc.get_int(1), last_doc.get(2), last_doc.get_long(3), _isequal, _lock);
|
||||
for (int j = i - nrows; j < i; j++)
|
||||
{
|
||||
TToken_string & key = rows.row(j);
|
||||
const long idriga = key.get_long(4);
|
||||
const int nrows = d.physical_rows();
|
||||
|
||||
for (int k = 1; k <= nrows; k++)
|
||||
{
|
||||
TRiga_documento & rdoc_row = d[k];
|
||||
|
||||
if (idriga == rdoc_row.get_long(RDOC_IDRIGA))
|
||||
{
|
||||
const real * qta = (const real *) _father_rows.objptr(key);
|
||||
const TString16 name = rdoc_row.field_qtaevasa();
|
||||
real qtaevasa = rdoc_row.get_real(name) + * qta;
|
||||
|
||||
if (qtaevasa < ZERO)
|
||||
qtaevasa = ZERO;
|
||||
rdoc_row.put(name, qtaevasa);
|
||||
if (qtaevasa < rdoc_row.quantita())
|
||||
rdoc_row.zero(RDOC_RIGAEVASA);
|
||||
else
|
||||
rdoc_row.put(RDOC_RIGAEVASA, "X");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
TToken_string key(d.tipo().codice());
|
||||
|
||||
key.add(doc().tipo().codice());
|
||||
|
||||
TStati * stati = (TStati *) _tipidoc_rels.objptr(key);
|
||||
|
||||
if (stati != NULL)
|
||||
{
|
||||
const int nrows = d.physical_rows();
|
||||
bool evaso = true;
|
||||
|
||||
for (int k = 1; evaso && k <= nrows; k++)
|
||||
evaso &= d[k].is_evasa();
|
||||
d.stato(evaso ? stati->finale() : stati->iniziale());
|
||||
}
|
||||
d.rewrite();
|
||||
nrows = 0;
|
||||
}
|
||||
last_doc = curr_doc;
|
||||
nrows++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool TDocumento_mask::confirm_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TMask m("ve0100d");
|
||||
TDocumento_mask & mask = (TDocumento_mask &) f.mask();
|
||||
const TDocumento& src = mask.doc();
|
||||
TCodice_numerazione num(src.numerazione());
|
||||
TString4 codnum(num.codnumdef());
|
||||
TString4 tipodoc(num.tipodocdef());
|
||||
if (!num.newnumdef())
|
||||
{
|
||||
codnum = src.get(DOC_CODNUM);
|
||||
tipodoc = src.get(DOC_TIPODOC);
|
||||
}
|
||||
else
|
||||
{
|
||||
codnum = num.get("S8");
|
||||
tipodoc = num.get("S9");
|
||||
}
|
||||
bool ok = codnum.full() && tipodoc.full();
|
||||
|
||||
if (!ok)
|
||||
{
|
||||
m.set(F_CODNUM, codnum);
|
||||
m.enable(F_CODNUM, codnum.blank());
|
||||
m.enable(F_DESNUM, codnum.blank());
|
||||
m.set(F_TIPODOC, tipodoc);
|
||||
m.enable(F_TIPODOC, tipodoc.blank());
|
||||
m.enable(F_DESTIPODOC, tipodoc.blank());
|
||||
ok = m.run() == K_ENTER;
|
||||
if (ok)
|
||||
{
|
||||
codnum = m.get(F_CODNUM);
|
||||
tipodoc = m.get(F_TIPODOC);
|
||||
}
|
||||
}
|
||||
|
||||
ok = codnum.full() && tipodoc.full();
|
||||
if (ok)
|
||||
{
|
||||
TDocumento dest(src);
|
||||
|
||||
dest.put(DOC_CODNUM, codnum);
|
||||
dest.put(DOC_TIPODOC, tipodoc);
|
||||
dest.put(DOC_PROVV, "D");
|
||||
dest.zero(DOC_NDOC);
|
||||
|
||||
int err = dest.write();
|
||||
|
||||
if (err == NOERR)
|
||||
{
|
||||
err = src.remove();
|
||||
if (err != NOERR)
|
||||
warning_box("Errore %d nell'eliminazione del documento provvisorio", err);
|
||||
mask.stop_run(K_ESC);
|
||||
TMask & qmask = app().query_mask();
|
||||
qmask.set(F_CODNUM, codnum);
|
||||
qmask.set(F_PROVV, dest.get_char(DOC_PROVV));
|
||||
qmask.set(F_ANNO, dest.get_int(DOC_ANNO));
|
||||
qmask.set(F_NDOC, dest.get_long(DOC_NDOC));
|
||||
qmask.field(F_NDOC).update_flags("RP");
|
||||
|
||||
// qmask.send_key(K_ENTER, 0);
|
||||
}
|
||||
else
|
||||
return error_box("Errore %d nella generazione del documento definitivo", err);
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
@ -218,7 +218,7 @@ void TScalare_recordset::requery()
|
||||
filter << query_text()[pos1++];
|
||||
distinta.explode(boom(), false, RAGGR_EXP_NONE, level, filter);
|
||||
}
|
||||
pos = query().find("FILTER", pos);
|
||||
pos = query_text().find("FILTER", pos);
|
||||
if (pos > 0)
|
||||
{
|
||||
pos = query_text().find("==", pos);
|
||||
|
Loading…
x
Reference in New Issue
Block a user