campo-sirio/m770/773400.cpp

174 lines
3.8 KiB
C++
Raw Normal View History

// 773400.cpp - gestione tabelle 770
#include <applicat.h>
#include <tabapp.h>
#include <strings.h>
#include <stdtypes.h>
#include <tabutil.h>
#include <utility.h>
#include "batbca7.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);
static bool TC_causD1_handler(TMask_field& f, KEY k);
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);
Tab770_application() {}
virtual ~Tab770_application() {}
};
HIDDEN inline Tab770_application& app() {return (Tab770_application&) main_app();}
bool Tab770_application::TC_causD1_handler(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TString16 value(f.get());
TMask& m = f.mask();
if (value == "F")
m.reset(F_ASSRIT);
else
if (value == "A" || value == "B" || value == "C" || value == "D"
|| value == "E")
m.set(F_ASSRIT, "X");
}
return TRUE;
}
HIDDEN bool codqua_handler(TMask_field& f, KEY k)
{
if (k == K_ENTER && f.mask().is_running())
{
TMask& m = f.mask();
const int trib = atoi(m.get(F_CODTRIB));
if (trib == 1015)
{
const int dlg_qua = F_QUADRCE2;
TString16 quad(m.get(F_QUADRCE2));
quad.trim();
quad.upper();
if (quad != "C" && quad != "D" && quad != "E" && quad != "E1" &&
quad != "D1")
return f.warning_box("Con il codice tributo 1015 si possono indicare solo i quadri C-D-D1-E-E1");
}
}
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 sAssImpInps(m.get(TCF_ASSIMPINPS));
TString sPercInps(m.get(TCF_PERCINPS));
TString sPercAss(m.get(F_PERASS));
sAssImpInps.trim();
sPercInps.trim();
sPercAss.trim();
if (sAssImpInps.empty())
m.set(TCF_ASSIMPINPS, "95.00"); // % ass.imp.contr.INPS
// m.set(TCF_COMMINPS, "66.67"); // quota competenza committente
if (sPercInps.empty())
m.set(TCF_PERCINPS, "10.00"); // % contr. INPS
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);
_msk->set_handler(TCF_CAUSD1, TC_causD1_handler);
}
return TRUE;
}
m73400(int argc, char* argv[])
{
Tab770_application a;
a.run(argc,argv, "Tabelle");
return 0;
}