diff --git a/ca/cacnv.cpp b/ca/cacnv.cpp index a60dc23c5..445230249 100755 --- a/ca/cacnv.cpp +++ b/ca/cacnv.cpp @@ -1,4 +1,6 @@ +#include #include +#include #include #include @@ -39,13 +41,35 @@ protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); public: - TConversione_anal_msk() : TAutomask("cacnva") {} + TConversione_anal_msk(); }; +TConversione_anal_msk::TConversione_anal_msk() + : TAutomask("cacnva") +{ +} + bool TConversione_anal_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) { switch (o.dlg()) { + case F_MOVIMENTI: + //solo se la chiave ha l'analitica si puņ vedere il bUleano per le ripartizioni + //chi ha CM non puņ ripartire + if (e == fe_modify) + { + if (o.get() == "X") + { + if(dongle().active(CAAUT)) + show(F_RIPARTISCI); + } + else + { + hide(F_RIPARTISCI); + reset(F_RIPARTISCI); + } + } + break; case F_TABELLE: //al caricamento della maschera, se il file delle commesse analitiche (LF_COMMESSE) č vuoto, prespunta il flag.. //..e impedisce il trasferimento definitivo dei movimenti, che si troverebbero ad avere delle commesse sulle righe.. @@ -120,7 +144,7 @@ protected: virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM virtual void main_loop(); - void create_new_movana(long numreg_cg, bool definitiva, TAssoc_array& cg_lines_to_anal); + void create_new_movana(long numreg_cg, bool definitiva, TAssoc_array& cg_lines_to_anal, TConversione_anal_msk& mask); bool test_configuration(); void ripartisci(TRectype& recpcon); void check_phase(const TRectype& analriga); @@ -425,7 +449,8 @@ void TConversione_cm2ca::set_caus_anal(const TString& codcaus) const } } -void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAssoc_array& cg_lines_to_anal) +void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAssoc_array& cg_lines_to_anal, + TConversione_anal_msk& mask) { TLocalisamfile f(LF_MOVANA); TAnal_mov analmov; //testata movimento analitico @@ -524,7 +549,9 @@ void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAss const int righe_ripartizione = rrip.rows(); const bool ripartisci = righe_ripartizione > 0; - if (ripartisci) //ci sono righe ripartizione: da 1 riga mov CG a N righe mov CA + //ci sono righe ripartizione: da 1 riga mov CG a N righe mov CA + //ovviamente deve essere stato scelto il ripartisci nella maschera + if (ripartisci && mask.get_bool(F_RIPARTISCI)) { // Importo totale da distribuire arrotondato ai decimali della valuta di conto TGeneric_distrib distrib(importo.valore(), TCurrency::get_firm_dec()); @@ -793,7 +820,7 @@ bool TConversione_cm2ca::convert_movs(TConversione_anal_msk& mask) if (curr_numreg_cg != last_numreg_cg) { //se il numreg di questa riga e' nuovo -> crea un nuovo movimento di analitica (testata) - create_new_movana(curr_numreg_cg, definitiva, cg_lines_to_anal); + create_new_movana(curr_numreg_cg, definitiva, cg_lines_to_anal, mask); last_numreg_cg = curr_numreg_cg; } } diff --git a/ca/cacnva.h b/ca/cacnva.h index 569760800..db483e529 100755 --- a/ca/cacnva.h +++ b/ca/cacnva.h @@ -4,3 +4,4 @@ #define F_TIPOCONV 103 #define F_DATAINI 104 #define F_DATAFIN 105 +#define F_RIPARTISCI 106 diff --git a/ca/cacnva.uml b/ca/cacnva.uml index 421fd7c95..02c9ed043 100755 --- a/ca/cacnva.uml +++ b/ca/cacnva.uml @@ -23,7 +23,7 @@ BEGIN MESSAGE TRUE SHOW,1@ END -GROUPBOX DLG_NULL 78 7 +GROUPBOX DLG_NULL 78 8 BEGIN PROMPT 1 6 "@bConversione movimenti" GROUP 1 @@ -51,7 +51,13 @@ DATA F_DATAFIN BEGIN PROMPT 2 11 "A data " GROUP 1 -END +END + +BOOLEAN F_RIPARTISCI +BEGIN + PROMPT 2 12 "Ripartire i movimenti" + FLAGS "H" +END ENDPAGE