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 NUMBER F_ANNO_ELAB 4
BEGIN BEGIN
PROMPT 2 5 "Esercizio " PROMPT 2 5 "Anno documento "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END

View File

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

View File

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

View File

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