Posizionata generazione archivi nel menu' principale
git-svn-id: svn://10.65.10.50/trunk@573 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c0d3f2681f
commit
9a70c637c2
131
ba/ba4300.cpp
131
ba/ba4300.cpp
@ -6,12 +6,6 @@
|
||||
#include <tabutil.h>
|
||||
#include <files.h>
|
||||
|
||||
#if XVT_OS == XVT_OS_SCOUNIX
|
||||
#include <sys/stat.h>
|
||||
#else
|
||||
#include <direct.h>
|
||||
#endif
|
||||
|
||||
#include "ba4.h"
|
||||
#include "ba4300.h"
|
||||
|
||||
@ -71,11 +65,10 @@ protected:
|
||||
virtual bool changing_mask(int) { return FALSE;}
|
||||
virtual void init_query_mode(TMask& m) ;
|
||||
virtual void init_insert_mode(TMask& m) ;
|
||||
void enable_reg(TMask& m) ;
|
||||
virtual void init_modify_mode(TMask& m) ;
|
||||
void set_att_prev(TMask& m);
|
||||
|
||||
bool build_firm_data(long cod, bool flagcom);
|
||||
|
||||
public:
|
||||
BA4300_application();
|
||||
virtual TRelation* get_relation() const { return _rel;}
|
||||
@ -162,114 +155,6 @@ bool ba4300_handler(TMask& m, KEY k)
|
||||
}
|
||||
|
||||
|
||||
bool BA4300_application::build_firm_data(long codditta, bool flagcom)
|
||||
|
||||
{
|
||||
const TString ndir(firm2dir(codditta));
|
||||
const char* ntrrec = "trc.gen";
|
||||
const TFilename s1(format("%s/%s", (const char*) ndir, ntrrec));
|
||||
const char* nd = "dir.gen";
|
||||
const TFilename s2(format("%s/%s", (const char*) ndir, nd));
|
||||
|
||||
if (fexist(s1) && fexist(s2))
|
||||
return TRUE;
|
||||
if (fexist(ndir))
|
||||
{
|
||||
const bool ok = yesno_box("Direttorio %s esistente, lo ricostruisco", (const char*) ndir);
|
||||
if (!ok) return TRUE;
|
||||
}
|
||||
else
|
||||
#if XVT_OS == XVT_OS_SCOUNIX
|
||||
if (mkdir(ndir, 0777) == -1)
|
||||
#else
|
||||
if (mkdir(ndir) == -1)
|
||||
#endif
|
||||
return error_box("Impossibile creare il direttorio della ditta %ld (%s)",
|
||||
codditta, (const char*) ndir);
|
||||
if (!fexist(s1))
|
||||
if (!fcopy(ntrrec, s1))
|
||||
return error_box("Impossibile copiare il file %s della ditta %ld",
|
||||
ntrrec, codditta);
|
||||
if (!fexist(s2))
|
||||
if (!fcopy(nd, s2))
|
||||
return error_box("Impossibile copiare il file %s della ditta %ld",
|
||||
nd, 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();
|
||||
}
|
||||
for (int i = LF_DIR + 1; i <= maxeod0; i++)
|
||||
{
|
||||
dir.get(i, _nolock, _nordir, _sysdirop);
|
||||
if (dir.eod() == 0L && dir.eox() == 0L)
|
||||
{
|
||||
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 && 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); // cambiare
|
||||
BA4300_application& app = (BA4300_application&) main_app();
|
||||
for (int j = 0 ; j < 99 ; j++)
|
||||
{
|
||||
if (app.has_module(j))
|
||||
{
|
||||
const TString s(format("std/f%04d%02d.txt", i, j));
|
||||
if (fexist(s)) f.load(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
BA4300_application::BA4300_application()
|
||||
{}
|
||||
|
||||
@ -354,7 +239,6 @@ void BA4300_application::set_att_prev(TMask& m)
|
||||
|
||||
int BA4300_application::write(const TMask& m)
|
||||
{
|
||||
_rel->zero();
|
||||
m.autosave();
|
||||
if (_rel->write() != NOERR)
|
||||
return _rel->status();
|
||||
@ -395,7 +279,6 @@ int BA4300_application::write(const TMask& m)
|
||||
}
|
||||
_unloc->write();
|
||||
}
|
||||
build_firm_data(atol(codditta), FALSE);
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
@ -409,8 +292,6 @@ int BA4300_application::rewrite(const TMask& m)
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void BA4300_application::init_query_mode(TMask& m)
|
||||
{
|
||||
if (filtered())
|
||||
@ -448,6 +329,14 @@ void BA4300_application::init_insert_mode(TMask& m)
|
||||
_oldattprev = "";
|
||||
}
|
||||
|
||||
void BA4300_application::enable_reg(TMask& m)
|
||||
|
||||
{
|
||||
const long codditta = m.get_long(FLD_GD1_CODDITTA);
|
||||
|
||||
m.enable(DLG_REG, codditta > 0 && prefhndl->exist(codditta));
|
||||
}
|
||||
|
||||
void BA4300_application::init_modify_mode(TMask& m)
|
||||
{
|
||||
m.disable(FLD_GD1_TIPOA);
|
||||
@ -466,7 +355,7 @@ void BA4300_application::init_modify_mode(TMask& m)
|
||||
m.enable(DLG_ATT);
|
||||
m.enable(DLG_ULC);
|
||||
m.enable(DLG_SOC);
|
||||
m.enable(DLG_REG);
|
||||
enable_reg(m);
|
||||
_oldattprev = m.get(FLD_GD1_CODATTPREV);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user