96f33c01ee
Files correlati : ve6.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 979 git-svn-id: svn://10.65.10.50/trunk@15623 c028cbd2-c16b-5b4b-a496-9718f37d4682
325 lines
7.3 KiB
C++
Executable File
325 lines
7.3 KiB
C++
Executable File
// 771290.cpp - Quadro H
|
|
#include <execp.h>
|
|
#include <relapp.h>
|
|
#include <tabutil.h>
|
|
|
|
#include "771290.h"
|
|
#include "771295.h"
|
|
#include "77lib.h"
|
|
#include "774200.h"
|
|
#include <nditte.h>
|
|
|
|
class TQuadro_H_app : public TRelation_application
|
|
{
|
|
TRelation * _rel;
|
|
TMask * _msk;
|
|
TRiporti _rip;
|
|
|
|
int _mode; // Modo maschera corrente
|
|
long _codditta;
|
|
int _anno;
|
|
TString _ente;
|
|
bool _registra;
|
|
|
|
protected:
|
|
virtual bool user_create();
|
|
virtual bool user_destroy();
|
|
virtual int rewrite(const TMask& m);
|
|
virtual int write (const TMask& m);
|
|
virtual bool remove();
|
|
|
|
virtual TRelation* get_relation() const { return _rel; }
|
|
virtual TMask* get_mask(int mode);
|
|
virtual bool changing_mask(int mode) {return FALSE; }
|
|
|
|
// void init_mask(TMask&);
|
|
virtual void init_query_mode(TMask&);
|
|
virtual void init_modify_mode(TMask&);
|
|
virtual void init_insert_mode(TMask&);
|
|
virtual void init_query_insert_mode(TMask&);
|
|
virtual void on_config_change();
|
|
|
|
public:
|
|
bool almeno_un_dettaglio(TMask&);
|
|
void refresh(TMask& m);
|
|
static bool generazione (TMask_field& f , KEY k);
|
|
static bool dettaglio (TMask_field& f , KEY k);
|
|
static bool desc_ente (TMask_field& f , KEY k);
|
|
static bool codditta_hnd(TMask_field& f , KEY k);
|
|
TQuadro_H_app() {}
|
|
};
|
|
|
|
|
|
HIDDEN TQuadro_H_app& app() { return (TQuadro_H_app&) main_app(); }
|
|
|
|
bool TQuadro_H_app::codditta_hnd(TMask_field& f, KEY k)
|
|
{
|
|
if (k == K_TAB && !(f.mask().is_running()) )
|
|
{
|
|
TString16 codditta; codditta << get_firm_770();
|
|
if (codditta != "0")
|
|
{
|
|
f.set(codditta);
|
|
f.check();
|
|
}
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void TQuadro_H_app::refresh(TMask& m)
|
|
{
|
|
TEdit_field& datore = _msk->efield(F_DAT);
|
|
TEdit_field& lavora = _msk->efield(F_LAV);
|
|
|
|
//datore.check();
|
|
//lavora.check();
|
|
datore.autoload(*_rel);
|
|
lavora.autoload(*_rel);
|
|
|
|
if (almeno_un_dettaglio(m))
|
|
m.enable (F_BTG_GENERA);
|
|
else
|
|
m.disable(F_BTG_GENERA);
|
|
|
|
m.enable (F_BTG_DETTAGLIO);
|
|
}
|
|
|
|
bool TQuadro_H_app::generazione(TMask_field& f , KEY k)
|
|
{
|
|
if (k == K_SPACE)
|
|
{
|
|
TString appname = "775 -1";
|
|
TToken_string body;
|
|
|
|
body.add(app()._codditta);
|
|
body.add(app()._anno);
|
|
body.add(app()._ente);
|
|
|
|
TMessage msg (appname,"",(const char*) body);
|
|
|
|
TMailbox mb;
|
|
mb.send(msg);
|
|
|
|
TLocalisamfile& quaH = app().get_relation()->lfile();
|
|
|
|
quaH.setkey(1);
|
|
quaH.zero();
|
|
quaH.put("CODDITTA", app()._codditta);
|
|
quaH.put("H1ANNO", app()._anno);
|
|
quaH.put("H1ENTE", app()._ente);
|
|
quaH.read(_isequal,_unlock);
|
|
TExternal_app a(appname);
|
|
a.run();
|
|
quaH.read(_iscurr,_lock);
|
|
f.mask().set_focus();
|
|
app().refresh(f.mask());
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
bool TQuadro_H_app::dettaglio(TMask_field& f , KEY k)
|
|
{
|
|
if (k == K_SPACE)
|
|
{
|
|
TString appname = "771mod -4";
|
|
TToken_string body;
|
|
|
|
body << F_DATAVERS << "|";
|
|
body << F_ANNO << "=" << f.mask().get(F_H1ANNO) << "|";
|
|
body << F_CODDITTA << "=" << f.mask().get(F_CODDITTA) << "|";
|
|
body << F_ENTE << "=" << f.mask().get(F_ENTE);
|
|
|
|
TMessage msg (appname,MSG_FS,(const char*) body);
|
|
|
|
TMailbox mb;
|
|
mb.send(msg);
|
|
|
|
TLocalisamfile& quaH = app().get_relation()->lfile();
|
|
|
|
quaH.setkey(1);
|
|
quaH.zero();
|
|
quaH.put("CODDITTA", app()._codditta);
|
|
quaH.put("H1ANNO", app()._anno);
|
|
quaH.put("H1ENTE", app()._ente);
|
|
quaH.read(_isequal,_unlock);
|
|
TExternal_app a(appname);
|
|
a.run();
|
|
quaH.read(_iscurr,_lock);
|
|
f.mask().set_focus();
|
|
app().refresh(f.mask());
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
bool TQuadro_H_app::desc_ente(TMask_field& f, KEY k)
|
|
{
|
|
if (k == K_TAB && f.to_check(k) && f.mask().is_running())
|
|
{
|
|
TTable ente ("%ENT");
|
|
TString descrizione;
|
|
|
|
TString codice = f.get();
|
|
|
|
ente.zero();
|
|
ente.put("CODTAB", codice);
|
|
if (ente.read() == NOERR)
|
|
{
|
|
descrizione = ente.get("S0");
|
|
f.mask().set(F_DESCENTE, descrizione);
|
|
}
|
|
else
|
|
{
|
|
descrizione = "";
|
|
f.mask().set(F_DESCENTE, descrizione);
|
|
return f.warning_box("Valore non presente in tabella Enti previdenziali");
|
|
}
|
|
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void TQuadro_H_app::on_config_change()
|
|
{
|
|
TConfig conf(CONFIG_STUDIO);
|
|
_anno = (int) conf.get_long(ANNO_SEL);
|
|
}
|
|
|
|
TMask* TQuadro_H_app::get_mask(int mode)
|
|
{
|
|
return _msk;
|
|
}
|
|
|
|
bool TQuadro_H_app::almeno_un_dettaglio(TMask& m)
|
|
{
|
|
TLocalisamfile dett (LF_DETH);
|
|
|
|
dett.setkey(1);
|
|
dett.zero();
|
|
dett.put("CODDITTA", _codditta);
|
|
dett.put("ANNO", _anno);
|
|
dett.put("ENTE", _ente);
|
|
for (dett.read();!dett.eof();dett.next())
|
|
{
|
|
long codditta = dett.get_long("CODDITTA");
|
|
int anno = dett.get_int ("ANNO");
|
|
TString ente = dett.get ("ENTE");
|
|
|
|
if (_codditta == codditta && _anno == anno && _ente == ente)
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
void TQuadro_H_app::init_insert_mode(TMask& m)
|
|
{
|
|
m.show(F_ENTE);
|
|
m.hide(F_ENTEBIS);
|
|
|
|
m.disable(F_BTG_GENERA);
|
|
m.disable(F_BTG_DETTAGLIO);
|
|
}
|
|
|
|
void TQuadro_H_app::init_query_mode(TMask& m)
|
|
{
|
|
on_config_change();
|
|
m.set(F_H1ANNO, _anno);
|
|
// m.field(F_H1ANNO).set_dirty(FALSE);
|
|
m.disable(F_BTG_GENERA);
|
|
m.disable(F_BTG_DETTAGLIO);
|
|
m.show(F_ENTE);
|
|
m.hide(F_ENTEBIS);
|
|
}
|
|
|
|
void TQuadro_H_app::init_query_insert_mode(TMask& m)
|
|
{
|
|
m.set(F_H1ANNO, _anno);
|
|
|
|
m.hide(F_ENTE);
|
|
m.show(F_ENTEBIS);
|
|
|
|
m.disable(F_BTG_GENERA);
|
|
m.disable(F_BTG_DETTAGLIO);
|
|
}
|
|
|
|
void TQuadro_H_app::init_modify_mode(TMask& m)
|
|
{
|
|
|
|
_codditta = m.get_long(F_CODDITTA);
|
|
_anno = m.get_int (F_H1ANNO);
|
|
_ente = m.get (F_ENTE);
|
|
|
|
if (almeno_un_dettaglio(m))
|
|
m.enable (F_BTG_GENERA);
|
|
else
|
|
m.disable(F_BTG_GENERA);
|
|
|
|
m.enable (F_BTG_DETTAGLIO);
|
|
|
|
m.show(F_ENTE);
|
|
m.hide(F_ENTEBIS);
|
|
}
|
|
|
|
int TQuadro_H_app::rewrite(const TMask& m)
|
|
{
|
|
m.autosave(*_rel);
|
|
_registra = TRUE;
|
|
return _rel->rewrite();
|
|
}
|
|
|
|
int TQuadro_H_app::write(const TMask& m)
|
|
{
|
|
m.autosave(*_rel);
|
|
_registra = TRUE;
|
|
return _rel->write();
|
|
}
|
|
|
|
bool TQuadro_H_app::remove()
|
|
{
|
|
_registra = TRUE;
|
|
return TRelation_application::remove();
|
|
}
|
|
|
|
bool TQuadro_H_app::user_create()
|
|
{
|
|
_rel = new TRelation (LF_QUAH);
|
|
_msk = new TMask("771290a");
|
|
|
|
set_search_field(F_H1ANNO);
|
|
_msk->set_handler (F_CODDITTA, codditta_hnd);
|
|
_msk->set_handler (F_BTG_GENERA, generazione);
|
|
_msk->set_handler (F_BTG_DETTAGLIO, dettaglio);
|
|
_msk->set_handler (F_ENTE, desc_ente);
|
|
_msk->set_handler (F_ENTEBIS, desc_ente);
|
|
|
|
_registra = FALSE;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
bool TQuadro_H_app::user_destroy()
|
|
{
|
|
if (_registra)
|
|
// 20.12.95 l'anno deve essere quello dei parametri
|
|
// _rip.set("H",_anno);
|
|
_rip.set("H");
|
|
|
|
delete _msk;
|
|
delete _rel;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
int m71290(int argc, char* argv[])
|
|
{
|
|
TQuadro_H_app a;
|
|
a.run(argc, argv, "Quadro H");
|
|
return 0;
|
|
}
|
|
|
|
|