Patch level : 2.0 nopatch

Files correlati     : ve0.exe ve0100b.msk velib04d.msk
Ricompilazione Demo : [ ]
Commento            :

Migliorata la gestione dell'evasione ordini a valore:
Corretta intestazione campi (trasformata "quantita' residua" in "residuo")
Azzerato campo quantita' evasa sulla bolla nel caso questo sia diverso
dallo standard (es. QTAGG1 al posto di QTAEVASA)


git-svn-id: svn://10.65.10.50/trunk@11475 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-10-08 13:02:46 +00:00
parent b97c0cfb64
commit c477d3021c
4 changed files with 39 additions and 41 deletions

View File

@ -123,7 +123,7 @@ END
NUMBER F_ANNO_ELAB 4
BEGIN
PROMPT 2 5 "Esercizio "
PROMPT 2 5 "Anno documento "
CHECKTYPE REQUIRED
END

View File

@ -21,13 +21,13 @@ protected:
public:
void doc2mask(const TDocumento& doc, const TString & articolo);
TConsegna_mask(int header_code = 0, bool per_codice = FALSE);
TConsegna_mask(int header_code = 0, bool per_codice = false);
virtual ~TConsegna_mask() { }
};
bool TConsegna_mask::on_field_event(class TOperable_field& f, TField_event e, long jolly)
{
bool update_row = FALSE;
bool update_row = false;
switch (f.dlg())
{
case S_QTADAEVADERE:
@ -63,7 +63,7 @@ bool TConsegna_mask::on_field_event(class TOperable_field& f, TField_event e, lo
if (qta_daevadere.is_zero())
{
const TString& residuo = m.get(S_QTARESIDUA);
m.set(S_QTADAEVADERE, residuo, TRUE);
m.set(S_QTADAEVADERE, residuo, true);
update_row = !m.is_running();
}
}
@ -72,33 +72,32 @@ bool TConsegna_mask::on_field_event(class TOperable_field& f, TField_event e, lo
if (e == fe_button)
{
TSheet_field& s = sfield(F_ROWS);
FOR_EACH_SHEET_ROW(s, n, row)
if (!s.cell_disabled(n,S_RIGACONSEGNATA-FIRST_FIELD))
{
bool select = true;
const real residuo = row->get(S_QTARESIDUA-FIRST_FIELD);
const real evaso = row->get(S_QTADAEVADERE-FIRST_FIELD);
if (evaso == ZERO && residuo > ZERO)
{
row->add(residuo.string(), S_QTADAEVADERE-FIRST_FIELD);
row->add("X", S_RIGAEVASA-FIRST_FIELD);
s.disable_cell(n, S_RIGAEVASA-FIRST_FIELD);
}
if (evaso == ZERO && residuo == ZERO)
{
const int nriga = row->get_int(S_NUMRIGA-FIRST_FIELD);
const TRiga_documento& rdoc = (*_doc)[nriga];
select = rdoc.quantita().is_zero();
}
if (select)
row->add("X", S_RIGACONSEGNATA-FIRST_FIELD);
FOR_EACH_SHEET_ROW(s, n, row) if (!s.cell_disabled(n,S_RIGACONSEGNATA-FIRST_FIELD))
{
bool select = true;
const real residuo = row->get(S_QTARESIDUA-FIRST_FIELD);
const real evaso = row->get(S_QTADAEVADERE-FIRST_FIELD);
if (evaso == ZERO && residuo > ZERO)
{
row->add(residuo.string(), S_QTADAEVADERE-FIRST_FIELD);
row->add("X", S_RIGAEVASA-FIRST_FIELD);
s.disable_cell(n, S_RIGAEVASA-FIRST_FIELD);
}
if (evaso == ZERO && residuo == ZERO)
{
const int nriga = row->get_int(S_NUMRIGA-FIRST_FIELD);
const TRiga_documento& rdoc = (*_doc)[nriga];
select = rdoc.quantita().is_zero();
}
if (select)
row->add("X", S_RIGACONSEGNATA-FIRST_FIELD);
}
s.force_update();
}
break;
case F_ROWS:
if (e == se_query_add || e == se_query_del)
return FALSE;
return false;
default:break;
}
@ -110,7 +109,7 @@ bool TConsegna_mask::on_field_event(class TOperable_field& f, TField_event e, lo
s.force_update(riga);
}
return TRUE;
return true;
}
rows_sort_func(TSheet_field & s, int i, int j)
@ -265,7 +264,7 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
CHECK(items_in == 1 || items_out == 1 || items_out == items_in,
"Numero di documenti da elaborare 'strano'");
bool ok = TRUE;
bool ok = true;
const int header_code = intestazioni_sheet();
@ -376,33 +375,31 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
params().set("QUANTITA", qta + params().get_real("QUANTITA"));
}
bool elaborata = FALSE;
bool elaborata = false;
if (ragg_rig)
{
for (int i = 1; i <= outdoc.physical_rows(); i++)
{
TRiga_documento& outrec = outdoc[i];
if (outrec.sola_descrizione()) // Ignora le righe descrittive
if (outrec.sola_descrizione()) // Ignora le righe descrittive
continue;
if (inrec.raggruppabile(outrec, campi_riga)) // Se esiste una riga compatibile ...
{
const TString& qta_field = outrec.field_qta();
const real qta = outrec.get_real(qta_field) + daeva;
outrec.put(qta_field, qta);
if (qta_field != RDOC_QTA)
outrec.put(RDOC_QTA, UNO); // Pezza temporanea
outrec.dirty_fields(); // Forza ricalcolo peso etc.
elaborata = TRUE; // Ricorda di averla gia' elaborata
elaborata = true; // Ricorda di averla gia' elaborata
break;
}
}
}
if (!elaborata) // Se la riga non e' stata gia' sommata ...
{
const TString16 tiporiga = inrec.get(RDOC_TIPORIGA);
TRiga_documento & outrec = outdoc.new_row(tiporiga);
const TString4 tiporiga = inrec.get(RDOC_TIPORIGA);
TRiga_documento& outrec = outdoc.new_row(tiporiga);
const TString& qta_field = outrec.field_qta();
const TString& qtaevasa_field = outrec.field_qtaevasa();
TDocumento::copy_data(outrec, inrec);
outrec.put(qta_field, daeva);
@ -413,8 +410,8 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
outrec.put(RDOC_QTA, UNO); // Pezza temporanea
}
outrec.dirty_fields(); // Forza ricalcolo peso etc.
outrec.zero(RDOC_QTAEVASA);
outrec.zero(RDOC_RIGAEVASA);
outrec.zero(qtaevasa_field); // Azzera quantita' evasa erroneamente copiata dall'ordine
outrec.zero(RDOC_RIGAEVASA); // Azzera flag di evasa erroneamente copiata dall'ordine
outrec.set_original_rdoc_key(inrec);
}
}

View File

@ -173,8 +173,8 @@ SPREADSHEET F_ROWS
BEGIN
PROMPT 0 8 ""
ITEM "@F1"
ITEM "Quantita'\nresidua@F13"
ITEM "Quantita'\nda evadere@F13"
ITEM "Residuo@13"
ITEM "Da evadere@13"
ITEM "Evasa@F5"
ITEM "Mag@3"
ITEM "Dep@3"
@ -290,13 +290,13 @@ END
NUMBER S_QTARESIDUA 13 5
BEGIN
PROMPT 2 9 "Quantita' residua "
PROMPT 2 9 "Residuo "
FLAGS "DU"
END
NUMBER S_QTADAEVADERE 13 5
BEGIN
PROMPT 2 10 "Quantita' da evadere "
PROMPT 2 10 "Da evadere "
FLAGS "U"
END

View File

@ -2073,6 +2073,7 @@ void TElabora_mask::update_ndoc_filter(bool is_tipo_elaborazione)
{
cur = 0L;
const TRectype& curr = cur.curr();
set(F_ANNO_ELAB, curr.get(DOC_ANNO));
set(F_NDOC_ELAB, curr.get(DOC_NDOC));
set(F_DATADOC_ELAB, curr.get(DOC_DATADOC));
}