diff --git a/src/cg/cg0200.cpp b/src/cg/cg0200.cpp index c69ed0724..605cb65e3 100755 --- a/src/cg/cg0200.cpp +++ b/src/cg/cg0200.cpp @@ -83,6 +83,8 @@ protected: // Handler RF/SO static bool rfso_handler(TMask_field& f, KEY k); + // Handler Stato + static bool stato_handler(TMask_field& f, KEY k); public: virtual bool get_next_key(TToken_string& key); @@ -563,6 +565,16 @@ bool TClifo_application::rfso_handler(TMask_field& f, KEY key) return true; } +bool TClifo_application::stato_handler(TMask_field& f, KEY k) +{ + // Una volta che vai a impostare uno stato se non è presente nessuno stato nella P.IVA e il resto è valorizzato lo suggerisco + if(f.mask().get(F_STATOPAIV).empty() && f.mask().get(F_PAIV).full()) + { + f.mask().set(F_STATOPAIV, cache().get("%STA", f.get(), "S10")); + } + return true; +} + HIDDEN bool alleg_handler(TMask_field& f, KEY key) { if (f.to_check(key, true)) @@ -571,12 +583,10 @@ HIDDEN bool alleg_handler(TMask_field& f, KEY key) TMask& m = f.mask(); - bool can_split = m.get(F_TIPOCF)=="C" && (tipoall == 7 || tipoall == 4); - if (can_split && tipoall == 4) + if (tipoall == 4) { TToken_string key; key.format("%c|%ld", m.get(F_TIPOCF)[0], m.get_long(F_CODALLEG)); const TRectype& coll = cache().get(LF_CLIFO, key); - can_split = coll.get_int(CLI_ALLEG) && coll.get_bool(CLI_SPLITPAY); } if (key == K_ENTER) @@ -591,8 +601,6 @@ HIDDEN bool alleg_handler(TMask_field& f, KEY key) if (tipoall == 2) return f.error_box(TR("Tipo allegato non valido per i non occasionali")); } - if (!can_split) - m.reset(F_SPLITPAY); // You never know } else { @@ -607,11 +615,6 @@ HIDDEN bool alleg_handler(TMask_field& f, KEY key) if (tipoall == 2) m.set(F_OCCASIONALE, "X"); - m.show(F_SPLITPAY, can_split); - m.enable(F_SPLITPAY, can_split && tipoall == 7); - if (!can_split) - m.reset(F_SPLITPAY); - m.field(F_COFI).set_dirty(true); m.field(F_PAIV).set_dirty(true); } @@ -1557,6 +1560,7 @@ bool TClifo_application::user_create() // initvar e arrmask _msk->set_handler(F_RAGSOC, rsoc_handler); _msk->set_handler(DLG_CONTRLAV, contrlav_handler); _msk->set_handler(LST_TIPO_RFSO, rfso_handler); + _msk->set_handler(F_STATOCF, stato_handler); TSheet_field& ind = _msk->sfield(F_SHEET_G_VEN); ind.set_notify(indsp_notify); diff --git a/src/cg/cg0200a.uml b/src/cg/cg0200a.uml index 8039d519f..e3811e994 100755 --- a/src/cg/cg0200a.uml +++ b/src/cg/cg0200a.uml @@ -105,20 +105,6 @@ BEGIN HELP "Chiave di ricerca alternativa" END -STRING F_STATOPAIV 2 -BEGIN - PROMPT 42 4 "Stato CEE " - FIELD STATOPAIV - HELP "Codice ISO dello stato" - FLAGS "U" - USE %SCE - INPUT CODTAB F_STATOPAIV - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_STATOPAIV CODTAB - CHECKTYPE NORMAL -END - STRING F_COFI 16 BEGIN PROMPT 2 5 "Codice fiscale " @@ -138,9 +124,23 @@ BEGIN VALIDATE XTCF_FUNC F_STATOPAIV F_SESSO F_DATANASC F_COMNASC END +STRING F_STATOPAIV 2 +BEGIN + PROMPT 42 4 "Stato " + FIELD STATOPAIV + HELP "Codice ISO dello stato" + FLAGS "U" + USE %SCE + INPUT CODTAB F_STATOPAIV + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATOPAIV CODTAB + CHECKTYPE NORMAL +END + STRING F_PAIV 12 BEGIN - PROMPT 42 5 "Partita IVA " + PROMPT 42 5 "Codice " FIELD PAIV KEY 5 USE LF_CLIFO KEY 5