From 43a5648aecf954a45ca5620e5594206d411fb866 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 17 Jun 2011 14:26:55 +0000 Subject: [PATCH] Patch level : 10.1030 Files correlati : ve0.exe ve2.exe mg1.exe mg3.exe mg4.exe db0.exe Ricompilazione Demo : [ ] Commento : MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug 0001879: 208494 - richiamo distinta effetti passivi in caso richiamo distinta effetti passivi: il tipo distinta riporta attivo; se si seleziona per aggiornare la distinta le righe della distinta già selezionate vengono visualizzate doppie e l'importo totale in fondo cambia di conseguenza. Il cliente presscolor inoltre chiede che la stampa richiamata dal bottone stampa sia quella per esempio per distinta e non quella dell'emissione effetti/distinte. il bottone stampa e uno solo penso sia meglio che chiami l'emissione piuttosto che una stampa di controllo git-svn-id: svn://10.65.10.50/branches/R_10_00@22283 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ef/ef0a00.cpp | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/ef/ef0a00.cpp b/ef/ef0a00.cpp index 888e68fd4..aa91463e5 100755 --- a/ef/ef0a00.cpp +++ b/ef/ef0a00.cpp @@ -36,8 +36,8 @@ protected: public: bool calc_residual(const TRiga_scadenze& scad, real& impres, real& imppag, TDate & datapag, bool & valben, char& accsal, int& rdist, int& reff, - bool& partially_unassigned, int& tipopag, bool is_old = false) const; - bool fill_row(const TRiga_scadenze& rs, TToken_string& row, bool& partially_unassigned, bool force, bool is_new); + bool& partially_unassigned, int& tipopag, bool is_old = false, int ndist = 0) const; + bool fill_row(const TRiga_scadenze& rs, TToken_string& row, bool& partially_unassigned, bool force, bool is_new, int ndist = 0); bool fill_rate(); int insert_row(const TToken_string& row); bool fill_distinta(bool clear_all = false); @@ -85,7 +85,7 @@ bool TPE_mask::calc_residual(const TRiga_scadenze& scad, real& impres, real& imppag, TDate & datapag, bool & valben, char& accsal, int& rdist, int& reff, bool& partially_unassigned, int& tipopag, - bool is_old) const + bool is_old, int ndist) const { tipopag = scad.get_int(SCAD_TIPOPAG); const bool valuta = scad.in_valuta(); @@ -161,7 +161,7 @@ bool TPE_mask::calc_residual(const TRiga_scadenze& scad, for (cur = 0L; cur.pos() < items; ++cur) { TString8 effkey = effe.get(EFF_TIPODIST); effkey << effe.get(EFF_NDIST); - if (effkey == key) + if (effkey == key && (ndist == 0 || ndist != effe.get_int(EFF_NDIST))) { rdist = effe.get_int(EFF_NRIGADIST); datapag = effe.get_date(EFF_DATASCAD); @@ -200,7 +200,7 @@ void TPE_mask::update_total() enable(DLG_SAVEREC, !tot.is_zero()); } -bool TPE_mask::fill_row(const TRiga_scadenze& rs, TToken_string& row, bool& partially_unassigned, bool force, bool is_old) +bool TPE_mask::fill_row(const TRiga_scadenze& rs, TToken_string& row, bool& partially_unassigned, bool force, bool is_old, int ndist) { const int tipopageff = get_int(F_TIPOPAGEFF); int tipopag = 0; @@ -211,7 +211,7 @@ bool TPE_mask::fill_row(const TRiga_scadenze& rs, TToken_string& row, bool& part const bool attivo = get(F_TIPOCF) == "C"; row.cut(0); - bool ok = calc_residual(rs, impres, imppag, datapag, valben, accsal, rigadist, rigaeff, partially_unassigned, tipopag, is_old) || force; + bool ok = calc_residual(rs, impres, imppag, datapag, valben, accsal, rigadist, rigaeff, partially_unassigned, tipopag, is_old, ndist) || force; if (ok) ok = tipopageff == 0 || tipopag == tipopageff; // Eventuale filtro sul tipo pagamento if (ok) @@ -443,9 +443,10 @@ bool TPE_mask::fill_rate() { const TDate data = rs.get(SCAD_DATASCAD); if (data >= dadata && (!adata.ok() || data <= adata)) - { + { + bool partially_unassigned; - if (fill_row(rs, row, partially_unassigned, false, false)) + if (fill_row(rs, row, partially_unassigned, false, false, ndist)) { const int numrow = sheet.items(); sheet.row(numrow) = row; @@ -952,7 +953,11 @@ bool TPE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) _is_new = !ok; // Memorizza se è una distinta nuova enable(-3, _is_new); // Abilita tipo, cliente, valuta, ecc., solo se nuova enable(F_TIPOPAG, _is_new); - disable(F_AGGIORNA); + if (!_is_new) + { + set(F_TIPOEFF, get(F_TIPOCF)); + disable(F_TIPOEFF); + } } break; case F_CODVAL: @@ -1101,15 +1106,6 @@ bool TPE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) } } break; - case F_CLIFO: - case F_DA_DATA: - case F_A_DATA: - if (e == fe_modify) - { - if (get(F_CLIFO).not_empty() || get(F_DA_DATA).not_empty() || get(F_A_DATA).not_empty()) - enable(F_AGGIORNA); - } - break; case F_DATAPAG: if (e == fe_close) {