diff --git a/cg/cg0200.cpp b/cg/cg0200.cpp index cd68d6522..f63aed07c 100755 --- a/cg/cg0200.cpp +++ b/cg/cg0200.cpp @@ -43,8 +43,8 @@ protected: virtual void init_query_mode(TMask& m); virtual void init_query_insert_mode(TMask& m) {init_query_mode(m);} virtual void init_insert_mode(TMask& m) {init_query_mode(m);} - virtual void init_modify_mode(TMask& m) {init_pages(m);} - + virtual bool change_config(const char* val, const char* old, const char* nuo); + //////////// static bool indsp_notify(int r, KEY key); static bool indsp_handler(TMask_field& f, KEY key) ; @@ -349,13 +349,31 @@ HIDDEN bool codalleg_handler(TMask_field& f, KEY key) return TRUE; } +bool TClifo_application::change_config(const char* val, const char* old, const char* nuo) +{ + bool init = FALSE; + + const TFixed_string var(val); + if (var == "GesVen") + { + _gesven = *nuo > ' '; + init = TRUE; + } + else + if (var == "GsLbCn") + { + _lbcn = *nuo > ' '; + init = TRUE; + } + + if (init) init_pages(*_msk); + + return TRUE; +} + void TClifo_application::init_pages(TMask& m) { - TConfig conf(CONFIG_DITTA, "cg"); - _lbcn = conf.get_bool("GsLbCn"); - _gesven = conf.get_bool("GesVen"); - _rel->gestione_vendite(_gesven); m.send_key(K_SHIFT + K_CTRL + (_lbcn ? 's' : 'h'), -5); @@ -369,7 +387,6 @@ void TClifo_application::init_pages(TMask& m) void TClifo_application::init_query_mode(TMask& m) { - init_pages(m); if (_gesven) reset_sheet(); @@ -600,6 +617,11 @@ bool TClifo_application::user_create() // initvar e arrmask TConfig config(CONFIG_STUDIO); _savenew = !config.get_bool("Cg02SN"); + + TConfig conf(CONFIG_DITTA, "cg"); + _lbcn = conf.get_bool("GsLbCn"); + _gesven = conf.get_bool("GesVen"); + init_pages(*_msk); return TRUE; } diff --git a/cg/cg0201.cpp b/cg/cg0201.cpp index 8a13c3882..fd3eca90c 100755 --- a/cg/cg0201.cpp +++ b/cg/cg0201.cpp @@ -34,7 +34,6 @@ int TClifoVI::read_indirizzi() if (_gesven) { const TLocalisamfile& rind = lfile(LF_INDSP); - position_rels(); for (bool ok=is_first_match(LF_INDSP); ok; ok=next_match(LF_INDSP)) { const int nriga=rind.get_int(IND_CODIND) -1; @@ -47,8 +46,11 @@ int TClifoVI::read_indirizzi() int TClifoVI::read(TIsamop op, TReclock lockop, TDate& atdate) { - int err=file().read(op,lockop,atdate); - if (err==NOERR) read_indirizzi(); + int err = file().read(op,lockop,atdate); + position_rels(); + + if (err == NOERR) + read_indirizzi(); return err; } @@ -89,8 +91,8 @@ int TClifoVI::registra(bool re, bool force) // Put here gest_vend() discrimination if (_gesven) { - TLocalisamfile& v=lfile(LF_CFVEN); - err=write_rec(TRUE,v.curr(),v); + TLocalisamfile& v = lfile(LF_CFVEN); + err = write_rec(TRUE,v.curr(),v); if (err!=NOERR) return err; TLocalisamfile& rind=lfile(LF_INDSP); diff --git a/cg/cg0500a.uml b/cg/cg0500a.uml index df642dfb0..821210a6a 100755 --- a/cg/cg0500a.uml +++ b/cg/cg0500a.uml @@ -48,6 +48,7 @@ BEGIN COPY OUTPUT F_COD_CAUS CHECKTYPE REQUIRED KEY 2 + WARNING "Descrizione assente" HELP "Descrizione della causale" MESSAGE COPY, F_DESCR2 END @@ -63,6 +64,7 @@ BEGIN DISPLAY "Descrizione @50 " S0 OUTPUT F_TIPO_DOC CODTAB HELP "Tipo documento" + WARNING "Tipo documento errato" CHECKTYPE NORMAL FLAGS "U" ADD NONE diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index 5c1e9d925..dc43f678a 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -55,7 +55,6 @@ TMask* TPrimanota_application::load_mask(int n) break; case 2: { - m->set_handler(F_CODREG, reg_handler); m->set_handler(F_DATA74TER, data74ter_handler); m->set_handler(F_PROTIVA, protiva_handler); m->set_handler(F_CLIENTE, clifo_handler); @@ -198,18 +197,28 @@ bool TPrimanota_application::read_caus(const char* cod, int year) if (iva != nessuna_iva) { - const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL; - m->efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio - m->show(F_ANNORIF, sal); + m->efield(F_CODPAG).check_type(sal ? CHECK_REQUIRED : CHECK_NORMAL);// Cod. pag. obbligatorio + m->show(F_ANNORIF, sal); // Mostra/nasconde anno e riferimento partita m->show(F_NUMRIF, sal); - if (sal) + + const bool av = _causale.reg().agenzia_viaggi(); + m->show(F_DATA74TER, av); + if (!av) m->reset(F_DATA74TER); + + if (m->insert_mode()) { - TString16 val; - if (riferimento_partita()) - val = m->get(F_NUMDOC); - else - val.format("%ld", _causale.reg().protocol()); - m->set(F_NUMRIF, val); + const long protiva = _causale.reg().protocol() + 1; + m->set(F_PROTIVA, protiva); // Aggiorna protocollo IVA + + if (sal) + { + TString16 val; + if (riferimento_partita()) + val = m->get(F_NUMDOC); + else + val << protiva; + m->set(F_NUMRIF, val); + } } } @@ -411,9 +420,13 @@ const char* TPrimanota_application::get_next_key() k.add(F_DATAREG); k.add(m.get(F_DATAREG)); // data operazione k.add(F_DATACOMP); k.add(m.get(F_DATACOMP)); // competenza k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // documento - const long n = m.get_long(F_NUMDOC); - if (n > 0) - { k.add(F_NUMDOC); k.add(n+1); } // incrementa numero documento + + if (iva() == iva_vendite) + { + const long n = m.get_long(F_NUMDOC); + if (n > 0) + { k.add(F_NUMDOC); k.add(n+1); } // incrementa numero documento + } } return strcpy(__tmp_string, k); @@ -432,12 +445,6 @@ void TPrimanota_application::init_insert_mode(TMask& m) _saldi.set_anno_es(m.get_int(F_ANNOES)); _saldi.set_num_ulmov(m.get_long(F_NUMREG)); _saldi.set_data_ulmov((TDate)m.get(F_DATAREG)); - - if (_iva != nessuna_iva) - { - const long protiva = causale().reg().protocol(); - m.set(F_PROTIVA, protiva+1); - } } diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index 7a47b340c..c2cde1b2e 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -1184,7 +1184,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key) if (m.query_mode()) { const long numreg = m.get_long(F_NUMREG); - if (numreg > 0) + if (numreg > 0 && numreg <= app()._lastreg) { TLocalisamfile& mov = app().get_relation()->lfile(); mov.put(MOV_NUMREG, numreg); @@ -1201,6 +1201,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key) { const bool ok = reg.read(codreg, dr.year()); if (!ok) return FALSE; + app().read_caus(NULL, 0); if (app().iva() != nessuna_iva) m.field(F_CODREG).on_hit(); } @@ -1284,20 +1285,6 @@ bool TPrimanota_application::data74ter_handler(TMask_field& f, KEY key) return ok; } -// Handler of the F_CODREG field on the modify mask -// Certified 99% -bool TPrimanota_application::reg_handler(TMask_field& f, KEY key) -{ - if (key == K_TAB) - { - TRegistro& reg = app().causale().reg(); - const bool av = reg.agenzia_viaggi(); - f.mask().show(F_DATA74TER, av); - if (!av) f.mask().reset(F_DATA74TER); - } - return TRUE; -} - bool TPrimanota_application::occas_code_handler(TMask_field& f, KEY key) { if (key == K_TAB) diff --git a/cg/cg2102.h b/cg/cg2102.h index 8afdfcf8b..7343604fd 100755 --- a/cg/cg2102.h +++ b/cg/cg2102.h @@ -59,7 +59,6 @@ class TPrimanota_application : public TRelation_application static bool datareg_handler(TMask_field& f, KEY key); static bool datacomp_handler(TMask_field& f, KEY key); static bool data74ter_handler(TMask_field& f, KEY key); - static bool reg_handler(TMask_field& f, KEY key); static bool protiva_handler(TMask_field& f, KEY key); static bool clifo_handler(TMask_field& f, KEY key); static bool totale_handler(TMask_field& f, KEY key);