campo-sirio/m770/773400.cpp
luca 7ae87dcd6f Patch level :
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@18409 c028cbd2-c16b-5b4b-a496-9718f37d4682
2009-03-03 15:14:12 +00:00

146 lines
3.0 KiB
C++
Executable File

// 773400.cpp - gestione tabelle 770
#include <tabapp.h>
#include "77tbca7.h"
// Lista modifiche
//
// 21.12.95 i codici quadro con 1015 sono C-E1 (= tolto E2) (nf)
// la perc. r.a. non e' piu' obbligatoria (nf)
//
// 14.5.96 Modifiche per dichiarazione 96 (nf)
//
class Tab770_application : public Tab_application
{
private:
TMask* _msk;
TString _tabname;
protected:
bool IsCausali() const { return _tabname == "%CA7"; }
void SetDefaultValueCausali(TMask& m);
void init_mask(TMask& m);
public:
bool user_create();
virtual void init_modify_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
virtual void init_query_mode(TMask& m);
virtual bool firm_change_enabled() const;
Tab770_application() {}
virtual ~Tab770_application() {}
};
HIDDEN inline Tab770_application& app() {return (Tab770_application&) main_app();}
HIDDEN bool codqua_handler(TMask_field& f, KEY k)
{
if (f.to_check(k))
{
TMask& m = f.mask();
const int trib = m.get_int(F_CODTRIB);
if (trib == 1015)
{
const TString& quad = m.get(F_QUADRCE2);
if (quad != "LA" && quad != "SF" && quad != "SG")
return f.error_box("Con il codice tributo 1015 si possono indicare solo i quadri LA-SF-SG");
}
}
return TRUE;
}
HIDDEN bool codtrib_handler(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
const int trib = atoi(f.get());
if (trib == 1015)
{
m.hide(F_QUADRAT);
m.show(F_QUADRCE2);
}
else
{
m.hide(F_QUADRCE2);
m.show(F_QUADRAT);
}
}
return TRUE;
}
HIDDEN bool descr_handler(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
TMask& m = f.mask();
const TString descr = f.get();
if (descr == "")
{
f.error_box("La descrizione e' obbligatoria");
return FALSE;
}
}
return TRUE;
}
void Tab770_application::SetDefaultValueCausali(TMask& m)
{
TString sPercAss(m.get(F_PERASS));
sPercAss.trim();
if (sPercAss.empty())
m.set(F_PERASS, "100.00"); // % ass. imponibile
}
void Tab770_application::init_mask(TMask& m)
{
if (IsCausali())
SetDefaultValueCausali(m);
}
void Tab770_application::init_query_mode(TMask& m)
{
init_mask(m);
}
void Tab770_application::init_insert_mode(TMask& m)
{
init_mask(m);
}
void Tab770_application::init_modify_mode(TMask& m)
{}
bool Tab770_application::user_create()
{
Tab_application::user_create();
_msk = get_mask();
_tabname = get_tabname();
if (IsCausali())
{
_msk->set_handler(F_CODTRIB, codtrib_handler);
_msk->set_handler(F_QUADRCE2, codqua_handler);
_msk->set_handler(F_QUADRAT, codqua_handler);
}
return TRUE;
}
bool Tab770_application::firm_change_enabled() const
{
return FALSE;
}
int m73400(int argc, char* argv[])
{
Tab770_application a;
a.run(argc,argv, "Tabelle");
return 0;
}