Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Programma di riordino situazione di un soggetto (con codice soggetto sulla riga dei comandi)


git-svn-id: svn://10.65.10.50/trunk@7270 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 1998-10-16 14:23:56 +00:00
parent 2d38fa64a5
commit eeec3858b2
4 changed files with 130 additions and 1 deletions

View File

@ -4,7 +4,7 @@
#include "at5.h"
#define usage "Error - usage : %s -[0|1|2]"
#define usage "Error - usage : %s -[0|1|2|3]"
int main(int argc, char** argv)
{
@ -19,6 +19,8 @@ int main(int argc, char** argv)
rt = at5200(argc, argv); break;
case 2:
rt = at5300(argc, argv); break;
case 3:
rt = at5400(argc, argv); break;
default:
error_box(usage, argv[0]) ; rt = 1; break;
}

View File

@ -4,6 +4,7 @@
int at5100(int argc, char* argv[]); // parametri
int at5200(int argc, char* argv[]); // situazione sanitaria
int at5300(int argc, char* argv[]); // turni per controlli
int at5400(int argc, char* argv[]); // riordina donazioni
#endif // __AT5_H

View File

@ -19,3 +19,8 @@ MENUBAR MENU_BAR(2)
MENU MENU_BAR(2)
SUBMENU MENU_FILE "~File"
/* at5 -3 riordina donazioni soggetto */
MENUBAR MENU_BAR(3)
MENU MENU_BAR(3)
SUBMENU MENU_FILE "~File"

121
at/at5400.cpp Executable file
View File

@ -0,0 +1,121 @@
#include <applicat.h>
#include <recarray.h>
#include <relation.h>
#include <tabutil.h>
#include <utility.h>
#include "atlib.h"
#include "at5.h"
#include "soggetti.h"
#include "donaz.h"
#include "contsan.h"
#include "idoneita.h"
class TRiordinaSog : public TApplication
{
TLocalisamfile* _soggetti;
TLocalisamfile* _donaz;
TLocalisamfile* _contsan;
TLocalisamfile* _idoneita;
TRecord_array* _sdonazioni;
TRecord_array* _scontrolli;
TRecord_array* _sidoneita;
protected:
virtual bool create();
virtual bool destroy();
public:
TRiordinaSog() {}
virtual ~TRiordinaSog() {}
};
bool TRiordinaSog::create()
{
TApplication::create();
if (argc() < 3)
return error_box("Specificare il codice del soggetto");
long codsog = atol(argv(2));
_soggetti = new TLocalisamfile(LF_SOGGETTI);
_donaz = new TLocalisamfile(LF_DONAZ);
_contsan = new TLocalisamfile(LF_CONTSAN);
_idoneita = new TLocalisamfile(LF_IDONEITA);
_sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON);
_scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON);
_sidoneita = new TRecord_array(LF_IDONEITA,IDO_PROGIDO);
TConfig config(CONFIG_STUDIO);
const int numdon1 = config.get_int("NumDon1");
const int numdon2 = config.get_int("NumDon2");
TString16 catini1 = config.get("CatIni1");
TString16 catfin1 = config.get("CatFin1");
TString16 catini2 = config.get("CatIni2");
TString16 catfin2 = config.get("CatFin2");
const bool sttess2 = config.get_bool("StTess2");
const bool dataisc = config.get_bool("DataIsc");
const int etadonne = config.get_int("EtaDonne");
const int intsi_f1 = config.get_int("IntSI_F1");
const int intsi_f2 = config.get_int("IntSI_F2");
const int intsi_m = config.get_int("IntSI_M");
const int intaf_m = config.get_int("IntAF_M");
TRectype soggetto(LF_SOGGETTI);
_soggetti->put(SOG_CODICE, codsog);
if (_soggetti->read() == NOERR)
{
TRectype& sog = _soggetti->curr();
TRectype* key = new TRectype(LF_DONAZ);
key->put(DON_CODICE, codsog);
int err = _sdonazioni->read(key);
if (err == NOERR)
{
calcola_donazioni_lib(sog, _sdonazioni);
_soggetti->rewrite();
}
TTable ctd("CTD");
TString16 catdon = sog.get(SOG_CATDON);
const int totdon = sog.get_int(SOG_TOTDON);
ctd.put("CODTAB",catdon);
if (ctd.read() == NOERR)
{
bool dimissione = ctd.get_bool("B0");
if (dimissione)
{
sog.put(SOG_CATDON,ctd.get("S6"));
if (ctd.get("S6").not_empty())
catdon = ctd.get("S6");
}
if ((catdon == catini1 || catini1.empty()) && (totdon==numdon1) && catfin1.not_empty())
sog.put(SOG_CATDON, catfin1);
if ((catdon == catini2 || catini2.empty()) && (totdon>=numdon2) && catfin2.not_empty() && (!sttess2 || dimissione))
sog.put(SOG_CATDON, catfin2);
}
TDate dataiscsog = sog.get_date(SOG_DATAISC);
if (dataiscsog.empty() && dataisc)
{
const TRectype& riga = _sdonazioni->row(1);
sog.put(SOG_DATAISC,riga.get(DON_DATADON));
}
_soggetti->rewrite();
}
stop_run();
return TRUE;
}
bool TRiordinaSog::destroy()
{
delete _sidoneita;
delete _scontrolli;
delete _sdonazioni;
delete _idoneita;
delete _contsan;
delete _donaz;
delete _soggetti;
return TApplication::destroy();
}
int at5400(int argc, char* argv[])
{
TRiordinaSog a;
a.run(argc, argv, "Riordina donazioni soggetto");
return 0;
}