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 <stdio.h>
|
||||
|
||||
#if XVT_OS == XVT_OS_SCOUNIX
|
||||
#include <sys/stat.h>
|
||||
#else
|
||||
#include <direct.h>
|
||||
#endif
|
||||
|
||||
|
||||
#if XVT_OS == XVT_OS_WIN
|
||||
extern "C"
|
||||
{
|
||||
@ -124,6 +131,7 @@ protected:
|
||||
bool check_user();
|
||||
virtual bool create();
|
||||
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_find_handler(TMask_field&f, KEY k);
|
||||
@ -140,6 +148,108 @@ bool TMenu_application::_find_button = FALSE;
|
||||
inline TMenu_application& 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 ok = FALSE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user