From eb688d517c9e0634ab718c0d9a724af7869f8fba Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Sun, 15 Sep 2024 18:06:05 +0200 Subject: [PATCH] Patch level :12.00 1350 Files correlati : ve0.exe Commento: Modifica movimenti contabile e analitici con Shift-F9 --- src/ve/velib06.cpp | 102 ++++++++++++++++++++++++++++++--------------- 1 file changed, 69 insertions(+), 33 deletions(-) diff --git a/src/ve/velib06.cpp b/src/ve/velib06.cpp index f4f0a9bf1..50093ce8b 100755 --- a/src/ve/velib06.cpp +++ b/src/ve/velib06.cpp @@ -28,6 +28,7 @@ #include "../ca/cfcms.h" #include "../ca/commesse.h" #include "condv.h" +#include "../ca/movana.h" #include "rcondv.h" #include "sconti.h" @@ -969,45 +970,80 @@ bool TDocumento_mask::on_key(KEY key) warning_box("L'utente %s non puo' modificare questo documento", (const char*)user()); return TRUE; - } else - if (key == K_F7) - { - const TSheet_field & sf = sfield(F_SHEET); - const int sel = sf.selected(); - if (sel >= 0 && sel < sf.items()) - { - TDocumento & d = doc(); - TRiga_documento & riga = d[sf.selected() + 1]; - TOriginal_row_mask sm; - const TRectype * or_row = riga.find_original_rdoc(); + } + else + if (key == K_SHIFT + K_F9) + { + TMask m("Aggiornamento movimenti", 1, 80, 9); + TEdit_field& movcont = m.add_number(101, 0, "Movimento contabile", 1, 1, 6, "B"); + TEdit_field& movana = m.add_number(102, 0, "Movimento analitico", 1, 3, 6, "B"); + TString item; - if (or_row != NULL) + m.add_button(DLG_OK, 0, "Conferma", -12, -3, 10, 2); + m.add_button(DLG_CANCEL, 0, "Annulla", -22, -3, 10, 2); + item << "US " << LF_MOV << '\n'; + item << "IN " << MOV_NUMREG << " 101\n"; + item << "DI \"" << TR("N.Reg") << "@6\" " << MOV_NUMREG << '\n'; + item << "DI \"" << TR("Descrizione") << "@50\" " << MOV_DESCR << '\n'; + item << "OU 101 " << MOV_NUMREG << '\n'; + item << "CH NO\nEN\n"; + m.add_item(movcont, item); + item.cut(0); + item << "US " << LF_MOVANA << '\n'; + item << "IN " << MOVANA_NUMREG << " 102\n"; + item << "DI \"" << TR("N.Reg") << "@6\"" << MOVANA_NUMREG << '\n'; + item << "DI \"" << TR("Descrizione") << "@50\"" << MOVANA_DESCR << '\n'; + item << "OU 102 " << MOVANA_NUMREG << '\n'; + item << "CH NO\nEN\n"; + m.add_item(movana, item); + m.set(101, doc().get_long(DOC_NUMREG)); + m.set(102, doc().get_long(DOC_NUMREGCA)); + if (m.run() == K_ENTER) { - sm.set(F_DACODNUM, or_row->get(RDOC_CODNUM)); - sm.set(F_DAANNO, or_row->get(RDOC_ANNO)); - sm.set(F_DAPROVV, or_row->get(RDOC_PROVV)); - sm.set(F_DANDOC, or_row->get(RDOC_NDOC)); - sm.set(F_DANRIGA, or_row->get(RDOC_NRIGA)); - sm.disable(-1); + doc().put(DOC_NUMREG, m.get_long(101)); + doc().put(DOC_NUMREGCA, m.get_long(102)); } - - if (sm.run() == K_ENTER && sm.field(F_DACODNUM).enabled()) + return true; + } + else + if (key == K_F7) { - TToken_string key(sm.get(F_DACODNUM)); - key.add(sm.get(F_DAANNO)); - key.add(sm.get(F_DAPROVV)); - key.add(sm.get(F_DANDOC)); - key.add(sm.get(F_DANRIGA)); + const TSheet_field & sf = sfield(F_SHEET); + const int sel = sf.selected(); + if (sel >= 0 && sel < sf.items()) + { + TDocumento & d = doc(); + TRiga_documento & riga = d[sf.selected() + 1]; + TOriginal_row_mask sm; + const TRectype * or_row = riga.find_original_rdoc(); - const TRectype & or_row_mod = cache().get(LF_RIGHEDOC, key); - if (or_row_mod.empty()) - riga.reset_original_rdoc_key(); - else - riga.set_original_rdoc_key(or_row_mod); + if (or_row != NULL) + { + sm.set(F_DACODNUM, or_row->get(RDOC_CODNUM)); + sm.set(F_DAANNO, or_row->get(RDOC_ANNO)); + sm.set(F_DAPROVV, or_row->get(RDOC_PROVV)); + sm.set(F_DANDOC, or_row->get(RDOC_NDOC)); + sm.set(F_DANRIGA, or_row->get(RDOC_NRIGA)); + sm.disable(-1); + } + + if (sm.run() == K_ENTER && sm.field(F_DACODNUM).enabled()) + { + TToken_string key(sm.get(F_DACODNUM)); + key.add(sm.get(F_DAANNO)); + key.add(sm.get(F_DAPROVV)); + key.add(sm.get(F_DANDOC)); + key.add(sm.get(F_DANRIGA)); + + const TRectype & or_row_mod = cache().get(LF_RIGHEDOC, key); + if (or_row_mod.empty()) + riga.reset_original_rdoc_key(); + else + riga.set_original_rdoc_key(or_row_mod); + } + } + return true; } - } - return true; - } return TVariable_mask::on_key(key); }