Patch level :4.0 722
Files correlati : Ricompilazione Demo : [ ] Commento :postinstallazione moduli ripresa dalla 3.1 git-svn-id: svn://10.65.10.50/trunk@15412 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
46cf83bbcb
commit
191ade9ba5
117
ba/bainst00.cpp
117
ba/bainst00.cpp
@ -1,8 +1,9 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
#include <inst.h>
|
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
|
#include "bainstlib.h"
|
||||||
#include "bainst.h"
|
#include "bainst.h"
|
||||||
#include "bainst00.h"
|
#include "bainst00.h"
|
||||||
|
|
||||||
@ -11,15 +12,12 @@ class TInstall_BA : public TInstallmodule_app
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool modal() const {return TRUE;}
|
virtual int module_number() const { return 0; }
|
||||||
virtual int module_number() const {return 0;}
|
|
||||||
virtual bool install_firm() {return TRUE;} // no firm installation
|
|
||||||
virtual bool install_com();
|
virtual bool install_com();
|
||||||
virtual bool load_default_data() const ;
|
|
||||||
virtual bool post_installer();
|
virtual bool post_installer();
|
||||||
virtual bool preload_mask();
|
virtual bool preload_mask();
|
||||||
virtual bool some_to_load();
|
virtual bool something_to_load() const;
|
||||||
void check_std_code_det(const char * code, const char * descr);
|
virtual bool something_checked() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_BA () {}
|
virtual ~TInstall_BA () {}
|
||||||
@ -54,102 +52,73 @@ bool TInstall_BA::post_installer()
|
|||||||
// configurazione provvisoria dei programmi gestori di tabelle
|
// configurazione provvisoria dei programmi gestori di tabelle
|
||||||
if (!test_database())
|
if (!test_database())
|
||||||
{
|
{
|
||||||
TConfig prassis(CONFIG_STUDIO);
|
TConfig studio(CONFIG_STUDIO);
|
||||||
const char *confapp="EdApp";
|
const char *confapp="EdApp";
|
||||||
const char *tabapp="TabPrg";
|
const char *tabapp="TabPrg";
|
||||||
// magazzino
|
// magazzino
|
||||||
prassis.set_paragraph("mg");
|
studio.set_paragraph("mg");
|
||||||
prassis.set(tabapp,"mg0 -0");
|
studio.set(tabapp,"mg0 -0");
|
||||||
prassis.set(confapp,"mg0 -2 -1");
|
studio.set(confapp,"mg0 -2 -1");
|
||||||
// distinta base
|
// distinta base
|
||||||
prassis.set_paragraph("db");
|
studio.set_paragraph("db");
|
||||||
prassis.set(tabapp,"db0 -0");
|
studio.set(tabapp,"db0 -0");
|
||||||
prassis.set(confapp,"");
|
studio.set(confapp,"");
|
||||||
// statistiche
|
// statistiche
|
||||||
prassis.set_paragraph("sv");
|
studio.set_paragraph("sv");
|
||||||
prassis.set(tabapp,"sv0 -0");
|
studio.set(tabapp,"sv0 -0");
|
||||||
prassis.set(confapp,"sv0 -3");
|
studio.set(confapp,"sv0 -3");
|
||||||
// provvigioni
|
// provvigioni
|
||||||
prassis.set_paragraph("pr");
|
studio.set_paragraph("pr");
|
||||||
prassis.set(tabapp,"pr0 -4");
|
studio.set(tabapp,"pr0 -4");
|
||||||
// MRP
|
// MRP
|
||||||
prassis.set_paragraph("mr");
|
studio.set_paragraph("mr");
|
||||||
prassis.set(tabapp,"mr0 -0");
|
studio.set(tabapp,"mr0 -0");
|
||||||
}
|
}
|
||||||
|
|
||||||
TConfig install ("install.ini");
|
TConfig install ("install.ini");
|
||||||
install.for_each_paragraph(search_edit, NULL);
|
install.for_each_paragraph(search_edit, NULL);
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TInstall_BA::some_to_load()
|
bool TInstall_BA::something_checked() const
|
||||||
{
|
{
|
||||||
return _m->get_bool(F_TAB_CEE) || TInstallmodule_app::some_to_load();
|
return _m->get_bool(F_DATI_IVA) || TInstallmodule_app::something_checked();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstall_BA::something_to_load() const
|
||||||
|
{
|
||||||
|
if (test_database())
|
||||||
|
{
|
||||||
|
TTable iva("%IVA");
|
||||||
|
if (iva.empty())
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return TInstallmodule_app::something_to_load();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TInstall_BA::preload_mask()
|
bool TInstall_BA::preload_mask()
|
||||||
{
|
{
|
||||||
if (!test_database())
|
if (test_database())
|
||||||
{
|
|
||||||
_m->set(F_TAB_CEE," ");
|
|
||||||
_m->disable(F_TAB_CEE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TTable sce("%SCE");
|
|
||||||
const bool empty = sce.first() != NOERR;
|
|
||||||
|
|
||||||
if (empty)
|
|
||||||
_m->set(F_TAB_CEE,"X");
|
|
||||||
}
|
|
||||||
check_std_code_det("1", "IVA indetraibile su acquisti riferiti a ricavi esenti");
|
|
||||||
check_std_code_det("3", "IVA indicata per passaggi interni al solo fine del calcolo di ventilazione");
|
|
||||||
check_std_code_det("9", "IVA non detraibile per l'articolo 19");
|
|
||||||
return TInstallmodule_app::preload_mask();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TInstall_BA::check_std_code_det(const char * code, const char * descr)
|
|
||||||
{
|
|
||||||
const TToken_string key(code);
|
|
||||||
const TRectype & tab = cache().get("%DET", key);
|
|
||||||
|
|
||||||
if (tab.empty())
|
|
||||||
{
|
{
|
||||||
TTable det("%DET");
|
TTable iva("%IVA");
|
||||||
|
if (iva.empty())
|
||||||
det.curr().put("CODTAB", key);
|
_m->set(F_DATI_IVA, "X");
|
||||||
det.curr().put("I0", key);
|
|
||||||
det.curr().put("S0", descr);
|
|
||||||
det.curr().put("R0", CENTO);
|
|
||||||
det.write();
|
|
||||||
}
|
}
|
||||||
|
return TInstallmodule_app::preload_mask();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TInstall_BA::install_com()
|
bool TInstall_BA::install_com()
|
||||||
{
|
{
|
||||||
bool ok=TRUE;
|
//i codici iva vanno a parte
|
||||||
TStd_filename txtfile;
|
TStd_filename txtfile;
|
||||||
|
if (_m->get_bool(F_DATI_IVA) && txtfile.check(TRUE,"lfiva.txt"))
|
||||||
if (_m->get_bool(F_DEFAULTSDATA) && txtfile.check(TRUE,"lfiva.txt"))
|
|
||||||
{
|
{
|
||||||
TSystemisamfile tabcom(LF_TABCOM);
|
TSystemisamfile tabcom(LF_TABCOM);
|
||||||
tabcom.load((const char *)txtfile);
|
tabcom.load(txtfile);
|
||||||
}
|
}
|
||||||
if (_m->get_bool(F_TAB_CEE) && txtfile.check(TRUE,"batbsce.txt"))
|
|
||||||
{
|
|
||||||
TSystemisamfile tabcom(LF_TABCOM);
|
|
||||||
tabcom.load((const char *)txtfile);
|
|
||||||
}
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TInstall_BA ::load_default_data() const
|
return TInstallmodule_app::install_com();
|
||||||
{
|
|
||||||
TTable iva("%IVA");
|
|
||||||
const bool empty = iva.first() != NOERR;
|
|
||||||
|
|
||||||
return empty;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int bainst00(int argc, char** argv)
|
int bainst00(int argc, char** argv)
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
#include "bainsta.h"
|
#include "bainsta.h"
|
||||||
#define F_TAB_CEE 102
|
#define F_DATI_IVA 102
|
||||||
|
@ -4,12 +4,12 @@ PAGE "Installazione dati IVA" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_DEFAULTSDATA
|
BOOL F_DEFAULTSDATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Installa dati IVA"
|
PROMPT 2 2 "Carica le tabelle del modulo Base"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOL F_TAB_CEE
|
BOOL F_DATI_IVA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Installa Tabella Stati CEE"
|
PROMPT 2 4 "Installa dati IVA"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
|
@ -1,33 +1,17 @@
|
|||||||
#include <config.h>
|
|
||||||
#include <execp.h>
|
|
||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include "bainst.h"
|
|
||||||
#include "bainst07.h"
|
|
||||||
|
|
||||||
bool all_ok;
|
#include "bainstlib.h"
|
||||||
|
|
||||||
class TInstall_CG : public TInstallmodule_app
|
class TInstall_CG : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool modal() const {return FALSE;}
|
virtual int module_number() const { return CGAUT; }
|
||||||
virtual int module_number() const {return CGAUT;}
|
|
||||||
virtual bool install_firm() {return TRUE;} // no firm installation
|
|
||||||
virtual bool post_installer();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_CG () {}
|
virtual ~TInstall_CG () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
bool TInstall_CG ::post_installer()
|
|
||||||
{
|
|
||||||
bool ok=TRUE;
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int bainst07(int argc, char** argv)
|
int bainst07(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_CG app;
|
TInstall_CG app;
|
||||||
|
@ -4,7 +4,7 @@ PAGE "Installazione CG" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_DEFAULTSDATA
|
BOOL F_DEFAULTSDATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Installa dati IVA"
|
PROMPT 2 2 "Carica le tabelle del modulo Contabilita' Generale"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
|
@ -1,28 +1,16 @@
|
|||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <tabutil.h>
|
|
||||||
#include "bainst.h"
|
#include "bainstlib.h"
|
||||||
#include "bainst11.h"
|
|
||||||
|
|
||||||
class TInstall_CE : public TInstallmodule_app
|
class TInstall_CE : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool load_default_data() const ;
|
|
||||||
virtual int module_number() const {return CEAUT;}
|
virtual int module_number() const {return CEAUT;}
|
||||||
virtual bool post_installer() { return TRUE; }
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_CE () {}
|
virtual ~TInstall_CE () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TInstall_CE::load_default_data() const
|
|
||||||
{
|
|
||||||
TTable cac("%CAC");
|
|
||||||
const bool empty = cac.first() != NOERR;
|
|
||||||
|
|
||||||
return empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
int bainst11(int argc, char** argv)
|
int bainst11(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_CE app;
|
TInstall_CE app;
|
||||||
|
@ -4,7 +4,7 @@ PAGE "Installazione CE" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_LOADTAB
|
BOOL F_LOADTAB
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Carica le tabelle Ministeriali"
|
PROMPT 2 2 "Carica le tabelle Ministeriali dei Cespiti"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
|
@ -1,18 +1,14 @@
|
|||||||
#include <inst.h>
|
|
||||||
#include <mask.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <isam.h>
|
|
||||||
|
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include "bainst.h"
|
|
||||||
|
#include "bainstlib.h"
|
||||||
#include "bainst17.h"
|
#include "bainst17.h"
|
||||||
|
|
||||||
class TInstall_AT : public TInstallmodule_app
|
class TInstall_AT : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool load_default_data() const ;
|
virtual bool something_to_load() const ;
|
||||||
virtual int module_number() const {return ATAUT;}
|
virtual int module_number() const {return ATAUT;}
|
||||||
|
|
||||||
virtual bool preload_mask() ;
|
virtual bool preload_mask() ;
|
||||||
@ -23,10 +19,10 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
//controlla la tabella idoneita': se risulta vuota -> deve caricare i dati di default
|
//controlla la tabella idoneita': se risulta vuota -> deve caricare i dati di default
|
||||||
bool TInstall_AT ::load_default_data() const
|
bool TInstall_AT ::something_to_load() const
|
||||||
{
|
{
|
||||||
if (prefix().get_codditta() <= 0)
|
if (prefix().get_codditta() <= 0)
|
||||||
return TRUE;
|
return true;
|
||||||
TTable ido("IDO");
|
TTable ido("IDO");
|
||||||
const bool empty = ido.first() != NOERR;
|
const bool empty = ido.first() != NOERR;
|
||||||
|
|
||||||
@ -35,15 +31,10 @@ bool TInstall_AT ::load_default_data() const
|
|||||||
|
|
||||||
bool TInstall_AT ::post_installer()
|
bool TInstall_AT ::post_installer()
|
||||||
{
|
{
|
||||||
#ifdef XVAGA
|
bool ok = true;
|
||||||
const char* menuname = "bamenu.men";
|
|
||||||
#else
|
|
||||||
const char* menuname = "baprassi.men";
|
|
||||||
#endif
|
|
||||||
bool ok=TRUE;
|
|
||||||
if (_m->get_bool(F_USAMENUAVIS))
|
if (_m->get_bool(F_USAMENUAVIS))
|
||||||
{
|
{
|
||||||
ok=fcopy("agaat.men","baprassi.men");
|
ok = fcopy("agaat.men","bamenu.men");
|
||||||
TConfig config (CONFIG_STUDIO, "at");
|
TConfig config (CONFIG_STUDIO, "at");
|
||||||
config.set("EdMask", "at0500a.msk");
|
config.set("EdMask", "at0500a.msk");
|
||||||
config.set("EdApp", "at0 -4");
|
config.set("EdApp", "at0 -4");
|
||||||
|
@ -4,7 +4,7 @@ PAGE "Installazione AT" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_DEFAULTSDATA
|
BOOL F_DEFAULTSDATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Carica dati standard"
|
PROMPT 2 2 "Carica dati standard AVIS"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOL F_USAMENUAVIS
|
BOOL F_USAMENUAVIS
|
||||||
|
@ -1,29 +1,16 @@
|
|||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <tabutil.h>
|
|
||||||
#include "bainst.h"
|
#include "bainstlib.h"
|
||||||
#include "bainst18.h"
|
|
||||||
|
|
||||||
class TInstall_IN : public TInstallmodule_app
|
class TInstall_IN : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool load_default_data() const ;
|
|
||||||
virtual int module_number() const {return INAUT;}
|
virtual int module_number() const {return INAUT;}
|
||||||
virtual bool post_installer() { return TRUE; }
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_IN () {}
|
virtual ~TInstall_IN () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
bool TInstall_IN::load_default_data() const
|
|
||||||
{
|
|
||||||
TTable icc("%ICC");
|
|
||||||
const bool empty = icc.first() != NOERR;
|
|
||||||
|
|
||||||
return empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
int bainst18(int argc, char** argv)
|
int bainst18(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_IN app;
|
TInstall_IN app;
|
||||||
|
@ -4,7 +4,7 @@ PAGE "Installazione IN" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_DEFAULTSDATA
|
BOOL F_DEFAULTSDATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Carica le tabelle INTRA"
|
PROMPT 2 2 "Carica le tabelle del modulo INTRA"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
|
@ -1,32 +1,16 @@
|
|||||||
|
|
||||||
#include <execp.h>
|
|
||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <tabutil.h>
|
|
||||||
|
|
||||||
#include "bainst.h"
|
#include "bainstlib.h"
|
||||||
#include "bainst31.h"
|
|
||||||
|
|
||||||
class TInstall_VE : public TInstallmodule_app
|
class TInstall_VE : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool load_default_data() const ;
|
|
||||||
virtual int module_number() const {return VEAUT;}
|
virtual int module_number() const {return VEAUT;}
|
||||||
virtual bool install_firm() {return TRUE;} // no firm installation
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_VE () {}
|
virtual ~TInstall_VE () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TInstall_VE::load_default_data() const
|
|
||||||
{
|
|
||||||
TTable tip("%TIP");
|
|
||||||
const bool empty = tip.first() != NOERR;
|
|
||||||
|
|
||||||
return empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int bainst31(int argc, char** argv)
|
int bainst31(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_VE app;
|
TInstall_VE app;
|
||||||
|
@ -1,37 +1,16 @@
|
|||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
|
|
||||||
#include <tabutil.h>
|
#include "bainstlib.h"
|
||||||
|
|
||||||
#include "bainst.h"
|
|
||||||
#include "bainst32.h"
|
|
||||||
|
|
||||||
class TInstall_MG : public TInstallmodule_app
|
class TInstall_MG : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool load_default_data() const ;
|
virtual int module_number() const { return MGAUT; }
|
||||||
virtual int module_number() const {return MGAUT;}
|
|
||||||
virtual bool post_installer();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_MG () {}
|
virtual ~TInstall_MG () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TInstall_MG::post_installer()
|
|
||||||
{
|
|
||||||
set_tab_app("mg0 -0");
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
bool TInstall_MG::load_default_data() const
|
|
||||||
{
|
|
||||||
TTable cau("%CAU");
|
|
||||||
const bool empty = cau.first() != NOERR;
|
|
||||||
|
|
||||||
return empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
int bainst32(int argc, char** argv)
|
int bainst32(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_MG app;
|
TInstall_MG app;
|
||||||
|
@ -1,42 +1,17 @@
|
|||||||
#include <config.h>
|
|
||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include "bainst.h"
|
|
||||||
#include "bainst34.h"
|
#include "bainstlib.h"
|
||||||
|
|
||||||
class TInstall_EF : public TInstallmodule_app
|
class TInstall_EF : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
// virtual bool load_type() const ;
|
virtual bool modal() const {return false;} //false = non ha interfaccia
|
||||||
virtual int module_number() const {return EFAUT;}
|
virtual int module_number() const {return EFAUT;}
|
||||||
virtual bool post_installer();
|
|
||||||
virtual bool modal() const {return FALSE;}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_EF () {}
|
virtual ~TInstall_EF () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TInstall_EF::post_installer()
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*bool TInstall_EF::load_type() const
|
|
||||||
{
|
|
||||||
TLocalisamfile f(LF_EFFETTI);
|
|
||||||
TRectype& r = f.curr();
|
|
||||||
for (int err = f.first(); err == NOERR; err = f.next())
|
|
||||||
{
|
|
||||||
if (r.get("TIPOCF").blank())
|
|
||||||
{
|
|
||||||
r.put("TIPOCF","C");
|
|
||||||
f.rewrite();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
int bainst34(int argc, char** argv)
|
int bainst34(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_EF app;
|
TInstall_EF app;
|
||||||
|
@ -1,25 +1,17 @@
|
|||||||
#include <config.h>
|
|
||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include "bainst.h"
|
|
||||||
|
#include "bainstlib.h"
|
||||||
|
|
||||||
class TInstall_DB : public TInstallmodule_app
|
class TInstall_DB : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool modal() const {return FALSE;}
|
virtual bool modal() const {return false;} //false = non ha interfaccia
|
||||||
virtual int module_number() const {return DBAUT;}
|
virtual int module_number() const {return DBAUT;}
|
||||||
virtual bool post_installer();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_DB () {}
|
virtual ~TInstall_DB () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TInstall_DB::post_installer()
|
|
||||||
{
|
|
||||||
set_tab_app("db0 -0");
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int bainst35(int argc, char** argv)
|
int bainst35(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_DB app;
|
TInstall_DB app;
|
||||||
|
@ -1,66 +1,16 @@
|
|||||||
#include <prefix.h>
|
|
||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <tabutil.h>
|
|
||||||
#include "bainst.h"
|
#include "bainstlib.h"
|
||||||
#include "bainst38.h"
|
|
||||||
|
|
||||||
class TInstall_SV : public TInstallmodule_app
|
class TInstall_SV : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual int module_number() const {return SVAUT;}
|
virtual int module_number() const {return SVAUT;}
|
||||||
virtual bool install_firm() {return TRUE;}
|
|
||||||
virtual bool install_com();
|
|
||||||
virtual bool load_default_data() const ;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_SV () {}
|
virtual ~TInstall_SV () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TInstall_SV ::install_com()
|
|
||||||
{
|
|
||||||
// ciclo su ogni ditta
|
|
||||||
TStd_filename txtfile(module_code());
|
|
||||||
txtfile << "tab.txt";
|
|
||||||
if (txtfile.check(TRUE))
|
|
||||||
{
|
|
||||||
// carica le tabelle nei file di default
|
|
||||||
TSystemtempfile tabstd(LF_TAB);
|
|
||||||
TFilename stdtabname(prefix().get_studio());
|
|
||||||
stdtabname << "STD\\lf0005.txt";
|
|
||||||
tabstd.load(txtfile);
|
|
||||||
tabstd.load(stdtabname);
|
|
||||||
tabstd.set_autodel();
|
|
||||||
TFilename tempfile;
|
|
||||||
tempfile.temp();
|
|
||||||
|
|
||||||
// riconverte le macro delle date
|
|
||||||
tabstd.dump(tempfile);
|
|
||||||
TScanner scan(tempfile);
|
|
||||||
FILE* dest = fopen(stdtabname,"w");
|
|
||||||
while (TRUE) {
|
|
||||||
TString &line=scan.line();
|
|
||||||
if (line.empty()) break;
|
|
||||||
|
|
||||||
int pos=(line.find("-0000"));
|
|
||||||
while (pos >= 0 )
|
|
||||||
{
|
|
||||||
line.overwrite("%yr%",pos+1);
|
|
||||||
pos=(line.find("-0000"));
|
|
||||||
}
|
|
||||||
line << '\n' ;
|
|
||||||
fputs((const char * )line,dest);
|
|
||||||
}
|
|
||||||
fclose(dest);
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TInstall_SV ::load_default_data() const
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int bainst38(int argc, char** argv)
|
int bainst38(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_SV app;
|
TInstall_SV app;
|
||||||
|
@ -1,2 +1 @@
|
|||||||
#include "bainsta.h"
|
#include "bainsta.h"
|
||||||
#define F_LOADTAB 101
|
|
||||||
|
@ -4,7 +4,7 @@ PAGE "Installazione SV" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_DEFAULTSDATA
|
BOOL F_DEFAULTSDATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Carica la tabella con le statistiche predefinite"
|
PROMPT 2 2 "Carica le tabelle del modulo Statistiche di Vendita"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
|
@ -1,25 +1,18 @@
|
|||||||
#include <config.h>
|
|
||||||
#include <inst.h>
|
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include "bainst.h"
|
|
||||||
|
#include "bainstlib.h"
|
||||||
|
|
||||||
class TInstall_MR : public TInstallmodule_app
|
class TInstall_MR : public TInstallmodule_app
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool modal() const {return FALSE;}
|
virtual bool modal() const {return false;} //false = non ha interfaccia
|
||||||
virtual int module_number() const {return MRAUT;}
|
virtual int module_number() const {return MRAUT;}
|
||||||
virtual bool post_installer();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~TInstall_MR () {}
|
virtual ~TInstall_MR () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TInstall_MR::post_installer()
|
|
||||||
{
|
|
||||||
set_tab_app("mr0 -0");
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int bainst39(int argc, char** argv)
|
int bainst39(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TInstall_MR app;
|
TInstall_MR app;
|
||||||
|
566
ba/bainstlib.cpp
Executable file
566
ba/bainstlib.cpp
Executable file
@ -0,0 +1,566 @@
|
|||||||
|
#include <config.h>
|
||||||
|
#include <dongle.h>
|
||||||
|
#include <prefix.h>
|
||||||
|
#include <progind.h>
|
||||||
|
|
||||||
|
#include "bainstlib.h"
|
||||||
|
#include "bainsta.h"
|
||||||
|
|
||||||
|
// ********************************
|
||||||
|
// classe TSystemtempfile
|
||||||
|
// ********************************
|
||||||
|
|
||||||
|
|
||||||
|
// classe provvisoria per i system file temporanei, ovvero file temporanei con
|
||||||
|
// caricamento/scaricamento
|
||||||
|
// @doc EXTERNAL
|
||||||
|
|
||||||
|
// @mfunc Importa un file ascii
|
||||||
|
//
|
||||||
|
// @rdesc Ritorna NOERR se l'operazione di lettura e' riuscita, altrimenti il codice di
|
||||||
|
// di errore generato (vedi <t TIsamerr>).
|
||||||
|
int TSystemtempfile::load(
|
||||||
|
const char* from, // @parm Nome del file da importare
|
||||||
|
char fs, // @parm Carattere separatore di campo (default <pipe>)
|
||||||
|
char fd, // @parm Carattere delimitatore di campi (default '\\0')
|
||||||
|
char rs, // @parm Carattere separatore di record (default '\\n')
|
||||||
|
bool vis, // @parm Indica se visualizzare lo stato dell'operazione (default TRUE)
|
||||||
|
bool extended) // @parm Indica se interpretare alcune stringhe come macro (default FALSE)
|
||||||
|
|
||||||
|
// @comm Se <p extended> e' TRUE e trova alcune stringhe col formato %stringa% (es. %frm%)
|
||||||
|
// ne sostituisce i valori (es. ditta corrente).
|
||||||
|
|
||||||
|
// @xref <mf TSystemisamfile::dump>
|
||||||
|
|
||||||
|
{
|
||||||
|
FILE* fl = fopen(from, "r");
|
||||||
|
int err=NOERR;
|
||||||
|
if (fl == NULL)
|
||||||
|
{
|
||||||
|
error_box("Non riesco ad aprire il file %s",from);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
TRecnotype r = 0, e = 0, nitems = 0, nread = 0;
|
||||||
|
TString16 firm, year, attprev("00000");
|
||||||
|
|
||||||
|
if (extended)
|
||||||
|
{
|
||||||
|
TDate d(TODAY);
|
||||||
|
TLocalisamfile ditte(LF_NDITTE);
|
||||||
|
|
||||||
|
firm.format("%05ld", prefix().get_codditta());
|
||||||
|
year.format("%04d", d.year());
|
||||||
|
ditte.zero();
|
||||||
|
ditte.put("CODDITTA", firm);
|
||||||
|
if (ditte.read() == NOERR)
|
||||||
|
attprev = ditte.get("CODATTPREV");
|
||||||
|
}
|
||||||
|
if (fl == NULL)
|
||||||
|
{
|
||||||
|
clearerr(fl);
|
||||||
|
setstatus(err);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
char w[256];
|
||||||
|
while ((fgets(w, sizeof(w), fl) != NULL))
|
||||||
|
{
|
||||||
|
if (strncmp(w, "[Data]", 6) == 0)
|
||||||
|
{
|
||||||
|
nitems = ftell(fl);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fseek(fl, 0L, SEEK_END);
|
||||||
|
nitems = ftell(fl) - nitems;
|
||||||
|
fclose(fl);
|
||||||
|
TScanner f(from);
|
||||||
|
|
||||||
|
TToken_string s(1024, fs);
|
||||||
|
bool fixedlen = (fs == '\0');
|
||||||
|
int nflds = curr().items();
|
||||||
|
TArray fld(nflds);
|
||||||
|
int len[MaxFields];
|
||||||
|
TString sfd(3);
|
||||||
|
TString s1(64);
|
||||||
|
|
||||||
|
if (f.paragraph("Header"))
|
||||||
|
{
|
||||||
|
f.equal();
|
||||||
|
const unsigned int level = atoi(f.line());
|
||||||
|
const unsigned int stdlev = prefix().get_stdlevel();
|
||||||
|
if (level > stdlev)
|
||||||
|
error_box("L'archivio %s e' stato generato con gli archivi di livello %ld%/%ld.\n Il livello attuale e' %ld/%ld.\n Convertire gli archivi e ripetere l' operazione.",
|
||||||
|
from, level/100, level%100, stdlev/100, stdlev%100);
|
||||||
|
|
||||||
|
nflds = 0;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
const TString& riga = f.line();
|
||||||
|
//quando termina la testata deve uscire dal ciclo!
|
||||||
|
if (riga.blank() || riga[0] == ']')
|
||||||
|
break;
|
||||||
|
//legge il tracciato record
|
||||||
|
if (riga.starts_with("Fields"))
|
||||||
|
{
|
||||||
|
TToken_string s2 = riga.after("=");
|
||||||
|
for (const char * fd = s2.get(); fd != NULL; fd = s2.get())
|
||||||
|
{
|
||||||
|
TToken_string wfd(fd, ',');
|
||||||
|
fld.add(new TString(wfd.get()));
|
||||||
|
len[nflds] = wfd.get_int();
|
||||||
|
nflds++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int j = 0; j < nflds; j++)
|
||||||
|
{
|
||||||
|
fld.add(TString(curr().fieldname(j)), j);
|
||||||
|
const TString & wfld = (const TString & ) fld[j];
|
||||||
|
len[j] = (curr().type(wfld) == _datefld) ? 10 : curr().length(wfld);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!f.paragraph("Data"))
|
||||||
|
{
|
||||||
|
error_box("Formato dei dati non valido");
|
||||||
|
//close();
|
||||||
|
err = 1;
|
||||||
|
setstatus(err);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fd) sfd << fd;
|
||||||
|
int last = NOERR;
|
||||||
|
|
||||||
|
s1.format("Imp. archivio %s\n%6ld records %6ld errori - %3d", filename(), r, e, last);
|
||||||
|
TProgind p(nitems, s1, TRUE, TRUE, 70);
|
||||||
|
s = f.line();
|
||||||
|
while (s.not_empty() && !p.iscancelled())
|
||||||
|
{
|
||||||
|
if (extended)
|
||||||
|
{
|
||||||
|
int p, i;
|
||||||
|
|
||||||
|
while ((p = s.find("%yr%")) >= 0)
|
||||||
|
for (i = 0; i < 4; i++) s[p + i] = year[i];
|
||||||
|
while ((p = s.find("%frm%")) >= 0)
|
||||||
|
for (i = 0; i < 5; i++) s[p + i] = firm[i];
|
||||||
|
while ((p = s.find("%att%")) >= 0)
|
||||||
|
for (i = 0; i < 5; i++) s[p + i] = attprev[i];
|
||||||
|
}
|
||||||
|
if ((r + e) % 50 == 0)
|
||||||
|
{
|
||||||
|
s1.format("Imp. archivio %s\n%6ld records %6ld errori - %3d", filename(), r, e, last);
|
||||||
|
p.set_text(s1);
|
||||||
|
}
|
||||||
|
p.setstatus(nread + 1);
|
||||||
|
nread += s.len() + 1;
|
||||||
|
zero();
|
||||||
|
if (fixedlen)
|
||||||
|
{
|
||||||
|
int pos = 0;
|
||||||
|
for (int j = 0; j < nflds; j++)
|
||||||
|
{
|
||||||
|
s1 = s.mid(pos,len[j]);
|
||||||
|
s1.rtrim();
|
||||||
|
put((const TString&) fld[j], s1);
|
||||||
|
pos += len[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s.restart();
|
||||||
|
for (int j = 0; j < nflds; j++)
|
||||||
|
{
|
||||||
|
char* s2 = (char*) s.get();
|
||||||
|
if (fd)
|
||||||
|
{
|
||||||
|
s2++;
|
||||||
|
s2[strlen(s2) - 1] = '\0';
|
||||||
|
}
|
||||||
|
put((const TString&) fld[j], s2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (write() == NOERR) r++;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#ifdef DBG
|
||||||
|
yesnofatal_box("Numero linea relativa all'errore: %ld",r+e+1);
|
||||||
|
#endif
|
||||||
|
e++;
|
||||||
|
last = status();
|
||||||
|
}
|
||||||
|
s = f.line();
|
||||||
|
}
|
||||||
|
s1.format("Imp. archivio %s\n%6ld records %6ld errori - %3d", filename(), r, e, last);
|
||||||
|
p.set_text(s1);
|
||||||
|
//close();
|
||||||
|
setstatus(err);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
// @mfunc Esporta VERSO un file ascii.
|
||||||
|
//
|
||||||
|
// @rdesc Ritorna NOERR se l'operazione di esportazione e' riuscita, altrimenti il codice di
|
||||||
|
// di errore generato (vedi <t TIsamerr>).
|
||||||
|
int TSystemtempfile::dump(
|
||||||
|
const char* to, // @parm Nome del file verso quale esportare
|
||||||
|
int nkey, // @parm Numero della chiave di ordinamento con cui scaricare i dati (defualt 1)
|
||||||
|
char fs, // @parm Carattere seperatore di campo (defualt <pipe>)
|
||||||
|
char fd, // @parm Carattere delimitatore di campo (default '\\0')
|
||||||
|
char rs, // @parm Carattere separatore di record (default '\\n')
|
||||||
|
bool vis, // @parm Indica se visualizzare lo stato dell'operazione (defualt TRUE)
|
||||||
|
bool withdeleted) // @parm Indica se scaricare anche i record cancellati (dafault FALSE)
|
||||||
|
|
||||||
|
// @xref <mf TSystemisamfile::load>
|
||||||
|
|
||||||
|
{
|
||||||
|
FILE* f = fopen(to, "w");
|
||||||
|
|
||||||
|
if (f == NULL)
|
||||||
|
{
|
||||||
|
setstatus(2);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (withdeleted) nkey = 0;
|
||||||
|
int err = ferror(f);
|
||||||
|
|
||||||
|
//open(FALSE, nkey ? TRUE : FALSE);
|
||||||
|
TString s(512);
|
||||||
|
bool fixedlen = (fs == '\0');
|
||||||
|
int nflds = curr().items();
|
||||||
|
TArray fld(nflds);
|
||||||
|
TBit_array rjust(nflds);
|
||||||
|
int len[MaxFields];
|
||||||
|
int j;
|
||||||
|
|
||||||
|
for (j = 0; j < nflds; j++)
|
||||||
|
{
|
||||||
|
fld.add(TString(curr().fieldname(j)), j);
|
||||||
|
const TString & wfld = (const TString&) fld[j];
|
||||||
|
const TFieldtypes t = curr().type(wfld);
|
||||||
|
rjust.set(j, t == _intfld || t == _longfld || t == _realfld ||
|
||||||
|
t == _wordfld || t == _intzerofld || t == _longzerofld);
|
||||||
|
len[j] = (t == _datefld) ? 10 : curr().length(wfld);
|
||||||
|
}
|
||||||
|
TRecnotype i = 0;
|
||||||
|
const TRecnotype nitems = items();
|
||||||
|
s.format("Esportazione archivio %s", filename());
|
||||||
|
TProgind p(nitems, s, TRUE, TRUE, 70);
|
||||||
|
TString s1;
|
||||||
|
|
||||||
|
fprintf(f, "[Header]\nVersion=%ld", (long) prefix().filelevel());
|
||||||
|
for (int k = 0; k < nflds; k++)
|
||||||
|
{
|
||||||
|
if ((k % 10) == 0) fprintf(f, "\nFields=");
|
||||||
|
else fprintf(f, "|");
|
||||||
|
fprintf(f, "%s,%d", (const char *) (const TString&) fld[k], len[k]);
|
||||||
|
}
|
||||||
|
fprintf(f, "\n\n[Data]\n");
|
||||||
|
if (nkey)
|
||||||
|
{
|
||||||
|
setkey(nkey);
|
||||||
|
for ( first(); status() == NOERR && !p.iscancelled(); next(), i++)
|
||||||
|
{
|
||||||
|
p.setstatus(i + 1);
|
||||||
|
s = "";
|
||||||
|
for (j = 0; j < nflds; j++)
|
||||||
|
{
|
||||||
|
if (fixedlen)
|
||||||
|
{
|
||||||
|
s1 = get((const TString&)fld[j]);
|
||||||
|
if (rjust[j]) s1.right_just(len[j]);
|
||||||
|
else s1.left_just(len[j]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s1 = "";
|
||||||
|
if (j && fs) s1 << fs;
|
||||||
|
if (fd) s1 << fd;
|
||||||
|
s1 << get((const TString&)fld[j]);
|
||||||
|
if (fd) s1 << fd;
|
||||||
|
}
|
||||||
|
s << s1;
|
||||||
|
}
|
||||||
|
fprintf(f, "%s%c", (const char*) s, rs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
for (i = 0; i < nitems && !p.iscancelled(); i++)
|
||||||
|
{
|
||||||
|
zero();
|
||||||
|
p.setstatus(i + 1);
|
||||||
|
readat(i + 1);
|
||||||
|
s="";
|
||||||
|
if (withdeleted || curr().valid())
|
||||||
|
{
|
||||||
|
for (j = 0; j < nflds; j++)
|
||||||
|
{
|
||||||
|
if (fixedlen)
|
||||||
|
{
|
||||||
|
s1 = get((const TString&)fld[j]);
|
||||||
|
if (rjust[j]) s1.right_just(len[j]);
|
||||||
|
else s1.left_just(len[j]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s1 = "";
|
||||||
|
if (j && fs) s1 << fs;
|
||||||
|
if (fd) s1 << fd;
|
||||||
|
s1 << get((const TString&)fld[j]);
|
||||||
|
if (fd) s1 << fd;
|
||||||
|
}
|
||||||
|
s << s1;
|
||||||
|
}
|
||||||
|
fprintf(f, "%s%c", (const char*) s, rs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.setstatus(nitems);
|
||||||
|
//close();
|
||||||
|
fclose(f);
|
||||||
|
setstatus(err);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ********************************
|
||||||
|
// classe TStd_filename
|
||||||
|
// ********************************
|
||||||
|
|
||||||
|
bool TStd_filename::check(bool verbose,const char * n)
|
||||||
|
{
|
||||||
|
if (n && *n)
|
||||||
|
set(n);
|
||||||
|
insert("STD\\");
|
||||||
|
if (!exist())
|
||||||
|
{
|
||||||
|
*this = name();
|
||||||
|
if (!exist())
|
||||||
|
{
|
||||||
|
insert("STD\\");
|
||||||
|
insert(prefix().get_studio());
|
||||||
|
if (!exist())
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
error_box("Non riesco a trovare il file: %s", (const char *)name());
|
||||||
|
cut(0);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ********************************
|
||||||
|
// classe TInstallmodule_app
|
||||||
|
// ********************************
|
||||||
|
|
||||||
|
const char* TInstallmodule_app::module_name() const
|
||||||
|
{
|
||||||
|
return dongle().module_code2desc(module_number());
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* TInstallmodule_app::module_code() const
|
||||||
|
{
|
||||||
|
return dongle().module_code2name(module_number());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TInstallmodule_app::create()
|
||||||
|
{
|
||||||
|
if (modal())
|
||||||
|
{
|
||||||
|
TString16 maskname;
|
||||||
|
maskname.format("bainst%02d",module_number());
|
||||||
|
_m = new TMask(maskname);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_m = NULL;
|
||||||
|
|
||||||
|
TConfig praw(CONFIG_INSTALL, "Main");
|
||||||
|
_test_database = praw.get("TestDatabase","Main",-1,"Y") != "N";
|
||||||
|
|
||||||
|
return TSkeleton_application::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstallmodule_app::destroy()
|
||||||
|
{
|
||||||
|
if (_m) delete _m;
|
||||||
|
return TSkeleton_application::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstallmodule_app::something_to_load() const
|
||||||
|
{
|
||||||
|
bool yes = false;
|
||||||
|
|
||||||
|
TFilename file_to_load = module_code();
|
||||||
|
file_to_load << "tabcom.txt"; //dati comuni
|
||||||
|
yes = ci_sono_novita(file_to_load, LF_TABCOM);
|
||||||
|
|
||||||
|
if (!yes)
|
||||||
|
{
|
||||||
|
file_to_load = module_code();
|
||||||
|
file_to_load << "tab.txt"; //dati ditta
|
||||||
|
yes = ci_sono_novita(file_to_load, LF_TAB);
|
||||||
|
}
|
||||||
|
return yes;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstallmodule_app::preload_mask()
|
||||||
|
{
|
||||||
|
if (test_database())
|
||||||
|
{
|
||||||
|
if (something_to_load())
|
||||||
|
_m->set(F_DEFAULTSDATA,"X");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_m->set(F_DEFAULTSDATA," ");
|
||||||
|
_m->disable(F_DEFAULTSDATA);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstallmodule_app::ci_sono_novita(const TFilename& filesource, const int filedest) const
|
||||||
|
{
|
||||||
|
bool ok = (filedest == LF_TAB || filedest == LF_TABCOM) && filesource.exist();
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
TScanner scan(filesource);
|
||||||
|
ok = scan.paragraph("Data");
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
TIsamfile ifile(filedest);
|
||||||
|
ok = ifile.open_ex() != NOERR; //se il file non e' buono va aggiornato...
|
||||||
|
if (!ok)
|
||||||
|
{
|
||||||
|
TToken_string tok;
|
||||||
|
while (!ok)
|
||||||
|
{
|
||||||
|
tok = scan.line();
|
||||||
|
if (tok.blank())
|
||||||
|
break;
|
||||||
|
ifile.put("COD", tok.get(0));
|
||||||
|
ifile.put("CODTAB", tok.get(1));
|
||||||
|
ok = ifile.read() != NOERR;
|
||||||
|
}
|
||||||
|
ifile.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstallmodule_app::something_checked() const
|
||||||
|
{
|
||||||
|
return _m->get_bool(F_DEFAULTSDATA);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TInstallmodule_app::main_loop()
|
||||||
|
{
|
||||||
|
bool ok = true;
|
||||||
|
|
||||||
|
if (modal())
|
||||||
|
{
|
||||||
|
if (test_database()) //solo se puoi modificare i dati ti e' permesso di entrare, oh utonto!
|
||||||
|
{
|
||||||
|
preload_mask();
|
||||||
|
if (something_checked() && _m->run() != K_QUIT) //modifica per far apparire il caricamento dei dati standard solo se non ci sono
|
||||||
|
{
|
||||||
|
if (something_checked()) //rifare il test in caso di flaggaggio manuale
|
||||||
|
{
|
||||||
|
install_com();
|
||||||
|
install_firm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ok)
|
||||||
|
post_installer();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstallmodule_app::install_firm()
|
||||||
|
{
|
||||||
|
// ciclo su ogni ditta
|
||||||
|
TStd_filename txtfile(module_code());
|
||||||
|
txtfile << "tab.txt";
|
||||||
|
if (txtfile.check())
|
||||||
|
{
|
||||||
|
TLocalisamfile ditte(LF_NDITTE);
|
||||||
|
for (ditte.first(); !ditte.eof() ; ditte.next())
|
||||||
|
{
|
||||||
|
const int newditta=ditte.get_int("CODDITTA");
|
||||||
|
if (prefix().exist(newditta))
|
||||||
|
{
|
||||||
|
set_firm(newditta);
|
||||||
|
TSystemisamfile tab(LF_TAB);
|
||||||
|
tab.load(txtfile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// carica le tabelle nei file di default
|
||||||
|
TSystemtempfile tabstd(LF_TAB);
|
||||||
|
TFilename stdtabname(prefix().get_studio());
|
||||||
|
stdtabname << "STD\\lf0005.txt";
|
||||||
|
tabstd.load(txtfile);
|
||||||
|
tabstd.load(stdtabname);
|
||||||
|
tabstd.set_autodel();
|
||||||
|
TFilename tempfile;
|
||||||
|
tempfile.temp();
|
||||||
|
|
||||||
|
// riconverte le macro delle date
|
||||||
|
tabstd.dump(tempfile);
|
||||||
|
TScanner scan(tempfile);
|
||||||
|
FILE *dest=fopen((const char *)stdtabname,"w");
|
||||||
|
while (TRUE) {
|
||||||
|
TString &line=scan.line();
|
||||||
|
if (line.empty()) break;
|
||||||
|
|
||||||
|
int pos=(line.find("-0000"));
|
||||||
|
while (pos >= 0 )
|
||||||
|
{
|
||||||
|
line.overwrite("%yr%",pos+1);
|
||||||
|
pos=(line.find("-0000"));
|
||||||
|
}
|
||||||
|
line << '\n' ;
|
||||||
|
fputs((const char * )line,dest);
|
||||||
|
}
|
||||||
|
fclose(dest);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TInstallmodule_app::install_com()
|
||||||
|
{
|
||||||
|
bool ok = true;
|
||||||
|
TStd_filename txtfile(module_code());
|
||||||
|
txtfile << "tabcom.txt";
|
||||||
|
if (txtfile.check())
|
||||||
|
{
|
||||||
|
TSystemisamfile tabcom(LF_TABCOM);
|
||||||
|
tabcom.load(txtfile);
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TInstallmodule_app::run(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TString title("Installazione ");
|
||||||
|
title << module_name();
|
||||||
|
TSkeleton_application::run(argc, argv,(const char* )title);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TInstallmodule_app::set_tab_app(const char * appname)
|
||||||
|
{
|
||||||
|
TConfig ditta(CONFIG_DITTA);
|
||||||
|
ditta.set_paragraph(module_code());
|
||||||
|
ditta.set("TabApp",appname);
|
||||||
|
}
|
||||||
|
|
73
ba/bainstlib.h
Executable file
73
ba/bainstlib.h
Executable file
@ -0,0 +1,73 @@
|
|||||||
|
#ifndef __INST_H
|
||||||
|
#define __INST_H
|
||||||
|
|
||||||
|
#ifndef __APPLICAT_H
|
||||||
|
#include <applicat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __ISAM_H
|
||||||
|
#include <isam.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __MASK_H
|
||||||
|
#include <mask.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "bainsta.h"
|
||||||
|
// classe provvisoria per i system file temporanei, ovvero file temporanei con
|
||||||
|
// caricamento/scaricamento
|
||||||
|
class TSystemtempfile : public TIsamtempfile
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//bool getlcf( long flev); // @parm livello archivi di partenza della convesione
|
||||||
|
|
||||||
|
int load(const char* from, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool extended = FALSE) ;
|
||||||
|
|
||||||
|
int dump(const char* to, int nkey = 1, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool withdeleted = FALSE);
|
||||||
|
|
||||||
|
TSystemtempfile(int logicnum) :
|
||||||
|
TIsamtempfile(logicnum,NULL) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class TStd_filename : public TFilename
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool check(bool verbose=FALSE,const char * name=NULL);
|
||||||
|
~TStd_filename () {}
|
||||||
|
TStd_filename () : TFilename(){}
|
||||||
|
TStd_filename (const char * n) : TFilename(n){}
|
||||||
|
};
|
||||||
|
|
||||||
|
class TInstallmodule_app: public TSkeleton_application
|
||||||
|
{
|
||||||
|
bool _is_first_inst , _test_database ;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
TMask * _m ;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual int module_number() const pure;
|
||||||
|
|
||||||
|
void set_tab_app(const char * appname);
|
||||||
|
bool test_database() const {return _test_database;}
|
||||||
|
const char* module_name() const;
|
||||||
|
const char* module_code() const;
|
||||||
|
|
||||||
|
virtual bool something_to_load() const;
|
||||||
|
virtual bool modal() const {return true;}
|
||||||
|
virtual bool preload_mask();
|
||||||
|
virtual bool post_installer() {return true;}
|
||||||
|
virtual bool something_checked() const;
|
||||||
|
virtual bool ci_sono_novita(const TFilename& filesource, const int filedest) const;
|
||||||
|
|
||||||
|
virtual bool install_com() ; // setta i dati comuni
|
||||||
|
virtual bool install_firm() ; // setta i dati ditta
|
||||||
|
|
||||||
|
virtual void main_loop() ;
|
||||||
|
virtual bool create();
|
||||||
|
virtual bool destroy();
|
||||||
|
public:
|
||||||
|
void run(int argc, char* argv[]);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
1126
ba/batabcom.txt
Executable file
1126
ba/batabcom.txt
Executable file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user