Patch level : 2.2 214
Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento Bug 0000526 Se faccio una elaborazione che aggiunge al documento attuale e non ci sono la numerazione o l'anno ho le seguenti segnalazioni errate numerazione nulla o anno assente. Attenzione : Bisogna riprovare tutti i tipi di elaborazioni interattive git-svn-id: svn://10.65.10.50/trunk@13480 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ed36aea3ab
commit
6569293e02
@ -130,7 +130,7 @@ END
|
||||
NUMBER F_ANNO_ELAB 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Anno documento "
|
||||
CHECKTYPE REQUIRED
|
||||
// CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
LIST F_TIPOCF_ELAB 1 11
|
||||
|
@ -2262,9 +2262,15 @@ int TElabora_mask::update_list()
|
||||
int items = 0;
|
||||
|
||||
if (from_elab)
|
||||
{
|
||||
items = _elab.select(elabs, tipo, stato,"","") ;
|
||||
field(F_ANNO_ELAB).check_type(CHECK_REQUIRED);
|
||||
}
|
||||
else
|
||||
{
|
||||
field(F_ANNO_ELAB).check_type(CHECK_NONE);
|
||||
items = _elab.select(elabs, tipo_elab, stato_elab, tipo, stato);
|
||||
}
|
||||
|
||||
TList_field & f = (TList_field &) field(F_ELAB);
|
||||
TToken_string codes;
|
||||
@ -2313,7 +2319,7 @@ bool TElabora_mask::elabora()
|
||||
const long numdoc = field(F_NDOC_ELAB).active() ? get_long(F_NDOC_ELAB) : app_doc.get_long(DOC_NDOC);
|
||||
const bool update_header = get_bool(F_UPDATE_HEADER);
|
||||
|
||||
TDocumento* newdoc = new TDocumento(get(F_PROVV_ELAB)[0], get_int(F_ANNO_ELAB), get(F_CODNUM_ELAB), numdoc);
|
||||
/* TDocumento* newdoc = new TDocumento(get(F_PROVV_ELAB)[0], get_int(F_ANNO_ELAB), get(F_CODNUM_ELAB), numdoc);
|
||||
TDocumento& d = *newdoc;
|
||||
|
||||
if (numdoc <= 0)
|
||||
@ -2355,8 +2361,8 @@ bool TElabora_mask::elabora()
|
||||
app_doc.put(DOC_DATADOC, datadoc);
|
||||
app_doc.put(DOC_DATAINSC, datainsc);
|
||||
app_doc.put(DOC_STATO, stato);
|
||||
}
|
||||
|
||||
} */
|
||||
|
||||
const bool from_elab = !get_bool(F_TYPE);
|
||||
TElaborazione * e = curr_elab();
|
||||
|
||||
@ -2372,6 +2378,39 @@ bool TElabora_mask::elabora()
|
||||
}
|
||||
if (from_elab)
|
||||
{
|
||||
const char provv = get(F_PROVV_ELAB)[0];
|
||||
const int anno = get_int(F_ANNO_ELAB);
|
||||
const TString16 codnum(get(F_CODNUM_ELAB));
|
||||
const TString16 tipo(get(F_TIPODOC_ELAB));
|
||||
const TString16 stato(get(F_STATODOC_ELAB));
|
||||
|
||||
if (anno == 0 || codnum.empty() || tipo.empty() || stato.empty())
|
||||
return false;
|
||||
|
||||
TDocumento* newdoc = new TDocumento(provv, anno , codnum, numdoc);
|
||||
TDocumento& d = *newdoc;
|
||||
|
||||
if (numdoc <= 0)
|
||||
{
|
||||
TDocumento::copy_data(d.head(), app_doc.head());
|
||||
d.put(DOC_TIPODOC, tipo);
|
||||
d.put(DOC_STATO, stato);
|
||||
|
||||
const TDate datadoc = d.get_date(DOC_DATADOC);
|
||||
const TDate datainsc = d.get_date(DOC_DATAINSC);
|
||||
const bool equal = !datainsc.ok() || datadoc == datainsc;
|
||||
|
||||
d.put(DOC_DATADOC, get(F_DATADOC_ELAB));
|
||||
if (equal)
|
||||
d.zero(DOC_DATAINSC);
|
||||
|
||||
const TTipo_documento & t = d.tipo();
|
||||
|
||||
if (t.mov_mag())
|
||||
d.put(DOC_CAUSMAG, t.caus_mov());
|
||||
else
|
||||
d.zero(DOC_CAUSMAG);
|
||||
}
|
||||
in.add(app_doc);
|
||||
out.add(d);
|
||||
if (e->elabora(in, out, TDate(TODAY), TRUE))
|
||||
@ -2385,6 +2424,8 @@ bool TElabora_mask::elabora()
|
||||
update_mask = TRUE;
|
||||
}
|
||||
}
|
||||
delete newdoc;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2401,6 +2442,24 @@ bool TElabora_mask::elabora()
|
||||
|
||||
in.add(d);
|
||||
}
|
||||
if (update_header)
|
||||
{
|
||||
const TString16 tipo_doc(app_doc.get(DOC_TIPODOC));
|
||||
const TString16 caus_mag(app_doc.get(DOC_CAUSMAG));
|
||||
const long movmag = app_doc.get_long(DOC_MOVMAG);
|
||||
const TDate datadoc = app_doc.get_date(DOC_DATADOC);
|
||||
const TDate datainsc = app_doc.get_date(DOC_DATAINSC);
|
||||
const char stato = app_doc.stato();
|
||||
|
||||
TDocumento::copy_data(app_doc.head(), in[0].head());
|
||||
|
||||
app_doc.put(DOC_TIPODOC, tipo_doc);
|
||||
app_doc.put(DOC_CAUSMAG, caus_mag);
|
||||
app_doc.put(DOC_MOVMAG, movmag);
|
||||
app_doc.put(DOC_DATADOC, datadoc);
|
||||
app_doc.put(DOC_DATAINSC, datainsc);
|
||||
app_doc.put(DOC_STATO, stato);
|
||||
}
|
||||
if (e->elabora(in, out, TDate(TODAY), TRUE))
|
||||
{
|
||||
if (out[0] != app_doc)
|
||||
@ -2431,7 +2490,7 @@ bool TElabora_mask::elabora()
|
||||
}
|
||||
}
|
||||
|
||||
delete newdoc;
|
||||
// delete newdoc;
|
||||
|
||||
// Azzera l'anno in caso di ordini
|
||||
if (in.items() > 0 && in[0].is_ordine())
|
||||
|
Loading…
x
Reference in New Issue
Block a user