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 <tabutil.h>
 | 
				
			||||||
#include <files.h>
 | 
					#include <files.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if XVT_OS == XVT_OS_SCOUNIX
 | 
					 | 
				
			||||||
#include <sys/stat.h>
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#include <direct.h>
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "ba4.h"
 | 
					#include "ba4.h"
 | 
				
			||||||
#include "ba4300.h"
 | 
					#include "ba4300.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -71,11 +65,10 @@ protected:
 | 
				
			|||||||
  virtual bool changing_mask(int) { return FALSE;}
 | 
					  virtual bool changing_mask(int) { return FALSE;}
 | 
				
			||||||
  virtual void init_query_mode(TMask& m) ;
 | 
					  virtual void init_query_mode(TMask& m) ;
 | 
				
			||||||
  virtual void init_insert_mode(TMask& m) ;
 | 
					  virtual void init_insert_mode(TMask& m) ;
 | 
				
			||||||
 | 
					  void enable_reg(TMask& m) ;
 | 
				
			||||||
  virtual void init_modify_mode(TMask& m) ;
 | 
					  virtual void init_modify_mode(TMask& m) ;
 | 
				
			||||||
  void set_att_prev(TMask& m);
 | 
					  void set_att_prev(TMask& m);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool build_firm_data(long cod, bool flagcom);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  BA4300_application();
 | 
					  BA4300_application();
 | 
				
			||||||
  virtual TRelation* get_relation() const { return _rel;}
 | 
					  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()
 | 
					BA4300_application::BA4300_application()
 | 
				
			||||||
{}
 | 
					{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -354,7 +239,6 @@ void BA4300_application::set_att_prev(TMask& m)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int BA4300_application::write(const TMask& m)
 | 
					int BA4300_application::write(const TMask& m)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  _rel->zero();
 | 
					 | 
				
			||||||
  m.autosave();
 | 
					  m.autosave();
 | 
				
			||||||
  if (_rel->write() != NOERR)
 | 
					  if (_rel->write() != NOERR)
 | 
				
			||||||
    return _rel->status();
 | 
					    return _rel->status();
 | 
				
			||||||
@ -395,7 +279,6 @@ int BA4300_application::write(const TMask& m)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    _unloc->write();
 | 
					    _unloc->write();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  build_firm_data(atol(codditta), FALSE);
 | 
					 | 
				
			||||||
  return NOERR;
 | 
					  return NOERR;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -409,8 +292,6 @@ int BA4300_application::rewrite(const TMask& m)
 | 
				
			|||||||
  return NOERR;
 | 
					  return NOERR;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void BA4300_application::init_query_mode(TMask& m)
 | 
					void BA4300_application::init_query_mode(TMask& m)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (filtered())
 | 
					  if (filtered())
 | 
				
			||||||
@ -448,6 +329,14 @@ void BA4300_application::init_insert_mode(TMask& m)
 | 
				
			|||||||
  _oldattprev = "";
 | 
					  _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)
 | 
					void BA4300_application::init_modify_mode(TMask& m)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m.disable(FLD_GD1_TIPOA);
 | 
					  m.disable(FLD_GD1_TIPOA);
 | 
				
			||||||
@ -466,7 +355,7 @@ void BA4300_application::init_modify_mode(TMask& m)
 | 
				
			|||||||
  m.enable(DLG_ATT);
 | 
					  m.enable(DLG_ATT);
 | 
				
			||||||
  m.enable(DLG_ULC);
 | 
					  m.enable(DLG_ULC);
 | 
				
			||||||
  m.enable(DLG_SOC);
 | 
					  m.enable(DLG_SOC);
 | 
				
			||||||
  m.enable(DLG_REG);
 | 
					  enable_reg(m);
 | 
				
			||||||
  _oldattprev = m.get(FLD_GD1_CODATTPREV);
 | 
					  _oldattprev = m.get(FLD_GD1_CODATTPREV);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user