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();
|
const TTipo_riga_documento & t = riga.tipo();
|
||||||
|
|
||||||
if (s.full())
|
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.left_just(3);
|
||||||
s << ven_rec.get(CFV_CODDEP);
|
s << ven_rec.get(CFV_CODDEP);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s = m.get(F_CAUSMAG);
|
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_ANNO, dest.get_int(DOC_ANNO));
|
||||||
qmask.set(F_NDOC, dest.get_long(DOC_NDOC));
|
qmask.set(F_NDOC, dest.get_long(DOC_NDOC));
|
||||||
qmask.field(F_NDOC).update_flags("RP");
|
qmask.field(F_NDOC).update_flags("RP");
|
||||||
|
|
||||||
// qmask.send_key(K_ENTER, 0);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return error_box("Errore %d nella generazione del documento definitivo", err);
|
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;
|
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++];
|
filter << query_text()[pos1++];
|
||||||
distinta.explode(boom(), false, RAGGR_EXP_NONE, level, filter);
|
distinta.explode(boom(), false, RAGGR_EXP_NONE, level, filter);
|
||||||
}
|
}
|
||||||
pos = query().find("FILTER", pos);
|
pos = query_text().find("FILTER", pos);
|
||||||
if (pos > 0)
|
if (pos > 0)
|
||||||
{
|
{
|
||||||
pos = query_text().find("==", pos);
|
pos = query_text().find("==", pos);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user