Files correlati : pr0.exe pr1.exe pr1500a.msk Ricompilazione Demo : [ ] Commento : bug 0000137 Implementare la gestione multilingua git-svn-id: svn://10.65.10.50/trunk@12099 c028cbd2-c16b-5b4b-a496-9718f37d4682
134 lines
4.0 KiB
C++
Executable File
134 lines
4.0 KiB
C++
Executable File
// Programma di gestione agenti
|
|
|
|
#include <relapp.h>
|
|
|
|
#include "pr0.h"
|
|
#include "pr0500a.h"
|
|
|
|
#include "agenti.h"
|
|
|
|
class TGestione_agenti_app:public TRelation_application
|
|
{
|
|
TMask *_msk;
|
|
TRelation *_rel;
|
|
|
|
protected:
|
|
virtual bool user_create();
|
|
virtual bool user_destroy();
|
|
virtual TMask* get_mask(int mode) { return _msk; }
|
|
virtual bool changing_mask(int mode) { return FALSE; }
|
|
virtual TRelation* get_relation() const { return _rel; }
|
|
static bool percfat_handler(TMask_field& f, KEY k);
|
|
static bool codcapo_handler(TMask_field& f, KEY k);
|
|
static bool seqalt_handler(TMask_field& f, KEY k);
|
|
static bool codalt_handler(TMask_field& f, KEY k);
|
|
public:
|
|
// @cmember Disabilita la verifica del modulo in chiave
|
|
virtual bool check_autorization() const
|
|
{return FALSE;}
|
|
TGestione_agenti_app() {};
|
|
~TGestione_agenti_app() {};
|
|
};
|
|
|
|
static inline TGestione_agenti_app& app() { return (TGestione_agenti_app&) main_app(); }
|
|
|
|
bool TGestione_agenti_app::percfat_handler(TMask_field& f, KEY k)
|
|
{
|
|
if (f.to_check(k,TRUE))
|
|
{
|
|
const real p = CENTO - real(f.get());
|
|
f.mask().set(F_PERCPAG,p);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
bool TGestione_agenti_app::codcapo_handler(TMask_field& f, KEY k)
|
|
{
|
|
if (f.to_check(k) && k == K_ENTER) // Solo prima che prema il pulsante di registrazione
|
|
{
|
|
TLocalisamfile agenti(LF_AGENTI);
|
|
TRecfield agente(agenti.curr(),AGE_CODAGE);
|
|
TRecfield capo(agenti.curr(),AGE_CODCAPO);
|
|
const TString& ag = f.mask().get(F_CODAGE);
|
|
TString ca = f.get();
|
|
agente = ca;
|
|
while (agenti.read() == NOERR)
|
|
{
|
|
ca = capo;
|
|
if (ca == ag)
|
|
break;
|
|
if (ca.empty())
|
|
break;
|
|
agente = ca;
|
|
}
|
|
if (agenti.good() && ca == ag)
|
|
return f.error_box(TR("Il codice del capozona inserito non e' valido, in quanto e' stato rilevato nella catena un codice capozona corrispondente al presente codice agente."));
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
bool TGestione_agenti_app::seqalt_handler(TMask_field& f, KEY k)
|
|
{
|
|
if (f.to_check(k) && k == K_ENTER) // Solo prima che prema il pulsante di registrazione
|
|
{
|
|
if (f.get() == "A")
|
|
{
|
|
TMask& m = f.mask();
|
|
if (m.get(F_SEQRIC1) == "A" || m.get(F_SEQRIC2) == "A" ||
|
|
m.get(F_SEQRIC3) == "A" || m.get(F_SEQRIC4) == "A")
|
|
return f.error_box(TR("La percentuale definita nell'agente non puo' essere usata nella indicazione "
|
|
"di percentuale aggiuntiva se gia' utilizzata nella sequenza di ricerca della percentuale di provvigione"));
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
bool TGestione_agenti_app::codalt_handler(TMask_field& f, KEY k)
|
|
{
|
|
if (f.to_check(k) && k == K_ENTER) // Solo prima che prema il pulsante di registrazione
|
|
{
|
|
TString16 cod = f.get();
|
|
if (cod.not_empty())
|
|
{
|
|
TMask& m = f.mask();
|
|
if (m.get(F_CODRICPR1) == cod || m.get(F_CODRICPR2) == cod ||
|
|
m.get(F_CODRICPR3) == cod || m.get(F_CODRICPR4) == cod)
|
|
return f.error_box(FR("L'archivio provvigioni %s definito nella indicazione di percentuale aggiuntiva non puo' essere utilizzato "
|
|
"se gia' impostato nella sequenza di ricerca della percentuale di provvigione"), (const char*)cod);
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
bool TGestione_agenti_app::user_create()
|
|
{
|
|
open_files(LF_AGENTI, LF_PROVV, LF_PERCPROV, 0);
|
|
_msk = new TMask("pr0500a") ;
|
|
_rel = new TRelation(LF_AGENTI);
|
|
_msk->set_handler(F_CODCAPO,codcapo_handler);
|
|
_msk->set_handler(F_SEQALT1,seqalt_handler);
|
|
_msk->set_handler(F_SEQALT2,seqalt_handler);
|
|
_msk->set_handler(F_SEQALT3,seqalt_handler);
|
|
_msk->set_handler(F_SEQALT4,seqalt_handler);
|
|
_msk->set_handler(F_CODALTPR1,codalt_handler);
|
|
_msk->set_handler(F_CODALTPR2,codalt_handler);
|
|
_msk->set_handler(F_CODALTPR3,codalt_handler);
|
|
_msk->set_handler(F_CODALTPR4,codalt_handler);
|
|
_msk->set_handler(F_PERCFATT,percfat_handler);
|
|
return TRUE;
|
|
}
|
|
|
|
bool TGestione_agenti_app::user_destroy()
|
|
{
|
|
delete _msk;
|
|
delete _rel;
|
|
return TRUE;
|
|
}
|
|
|
|
int pr0500(int argc, char** argv)
|
|
{
|
|
TGestione_agenti_app a;
|
|
a.run(argc,argv, TR("Gestione agenti"));
|
|
return 0;
|
|
}
|