Posizionata la generazione degli archivi nel menu' principale
git-svn-id: svn://10.65.10.50/trunk@572 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3cc4af2dae
commit
c0d3f2681f
110
ba/ba0.cpp
110
ba/ba0.cpp
@ -8,6 +8,13 @@
|
|||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#else
|
||||||
|
#include <direct.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
@ -124,6 +131,7 @@ protected:
|
|||||||
bool check_user();
|
bool check_user();
|
||||||
virtual bool create();
|
virtual bool create();
|
||||||
virtual bool menu(MENU_TAG m);
|
virtual bool menu(MENU_TAG m);
|
||||||
|
virtual bool build_firm_data(long cod, bool flagcom = FALSE);
|
||||||
|
|
||||||
static bool menu_item_handler(TMask_field&f, KEY k);
|
static bool menu_item_handler(TMask_field&f, KEY k);
|
||||||
static bool menu_find_handler(TMask_field&f, KEY k);
|
static bool menu_find_handler(TMask_field&f, KEY k);
|
||||||
@ -140,6 +148,108 @@ bool TMenu_application::_find_button = FALSE;
|
|||||||
inline TMenu_application& app()
|
inline TMenu_application& app()
|
||||||
{ return (TMenu_application&)main_app(); }
|
{ return (TMenu_application&)main_app(); }
|
||||||
|
|
||||||
|
bool TMenu_application::build_firm_data(long codditta, bool flagcom)
|
||||||
|
|
||||||
|
{
|
||||||
|
const char * const ndir = "/dir.gen";
|
||||||
|
const char * const ntrc = "/trc.gen";
|
||||||
|
TFilename s(firm2dir(codditta)); s << ndir;
|
||||||
|
bool exist = fexist(s);
|
||||||
|
|
||||||
|
if (!exist)
|
||||||
|
{
|
||||||
|
s = s.path(); s << ntrc;
|
||||||
|
exist = fexist(s);
|
||||||
|
}
|
||||||
|
if (exist)
|
||||||
|
return message_box("Direttorio dati danneggiato, non posso attivare la ditta %ld", codditta);
|
||||||
|
if (!yesno_box("I dati della ditta %ld non esistono : devo generarli ?", codditta))
|
||||||
|
return FALSE;
|
||||||
|
s = s.path();
|
||||||
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
|
if (mkdir(s, 0777) == -1)
|
||||||
|
#else
|
||||||
|
if (mkdir(s) == -1)
|
||||||
|
#endif
|
||||||
|
return error_box("Impossibile creare il direttorio della ditta %ld (%s)",
|
||||||
|
codditta, (const char*) ndir);
|
||||||
|
|
||||||
|
s << ndir;
|
||||||
|
if (!fcopy(&ndir[1], s))
|
||||||
|
return error_box("Impossibile copiare il file %s della ditta %ld",
|
||||||
|
&ndir[1], codditta);
|
||||||
|
s = s.path(); s << ntrc;
|
||||||
|
if (!fcopy(&ntrc[1], s))
|
||||||
|
return error_box("Impossibile copiare il file %s della ditta %ld",
|
||||||
|
ntrc, codditta);
|
||||||
|
|
||||||
|
set_cursor(TASK_WIN, CURSOR_WAIT);
|
||||||
|
const long old_firm = get_firm();
|
||||||
|
TDir dir, dir1;
|
||||||
|
TTrec rec;
|
||||||
|
|
||||||
|
prefhndl->set("");
|
||||||
|
dir1.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
|
const long maxeod0 = dir1.eod();
|
||||||
|
|
||||||
|
prefhndl->set_codditta(codditta);
|
||||||
|
dir.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
|
if (dir.eod() == 0)
|
||||||
|
{
|
||||||
|
dir1.eod() = 1L;
|
||||||
|
dir1.put(LF_DIR, _nordir, _sysdirop);
|
||||||
|
dir.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
|
}
|
||||||
|
const long maxeod1 = dir.eod();
|
||||||
|
|
||||||
|
if (maxeod0 > maxeod1)
|
||||||
|
{
|
||||||
|
dir.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
|
dir.eod() = maxeod0;
|
||||||
|
dir.put(LF_DIR, _nordir, _sysdirop);
|
||||||
|
rec.zero();
|
||||||
|
}
|
||||||
|
TString mess("Generazione archivi della ditta "); mess << codditta;
|
||||||
|
TProgind p(maxeod0 ? maxeod0 : 1, mess, TRUE, TRUE, 70);
|
||||||
|
|
||||||
|
for (int i = LF_DIR + 1; i <= maxeod0; i++)
|
||||||
|
{
|
||||||
|
p.addstatus(1);
|
||||||
|
prefhndl->set("");
|
||||||
|
dir.get(i, _nolock, _nordir, _sysdirop);
|
||||||
|
rec.get(i);
|
||||||
|
prefhndl->set_codditta(codditta);
|
||||||
|
const char* name = dir.name();
|
||||||
|
dir.flags() = 0L;
|
||||||
|
const bool valid_file = *name != '\0' && dir.len() > 0;
|
||||||
|
const bool create_now = flagcom ? *name == '%' : *name != '%';
|
||||||
|
|
||||||
|
if (valid_file && create_now)
|
||||||
|
{
|
||||||
|
dir.put(i, _nordir, _sysdirop);
|
||||||
|
rec.put(i);
|
||||||
|
TSystemisamfile f(i);
|
||||||
|
|
||||||
|
f.build(30);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!flagcom)
|
||||||
|
{
|
||||||
|
dir.len() = 0;
|
||||||
|
rec.zero();
|
||||||
|
}
|
||||||
|
dir.put(i, _nordir, _sysdirop);
|
||||||
|
rec.put(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set_firm(old_firm);
|
||||||
|
set_cursor(TASK_WIN, CURSOR_ARROW);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TMenu_application::module_enabled(const char * program) const
|
bool TMenu_application::module_enabled(const char * program) const
|
||||||
{
|
{
|
||||||
bool ok = FALSE;
|
bool ok = FALSE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user