Elenco files modificati in ~villa/src/saldi.mod git-svn-id: svn://10.65.10.50/trunk@2852 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			313 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			313 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <tabutil.h>
 | 
						|
#include <mask.h>                     
 | 
						|
#include <prefix.h>
 | 
						|
#include <sheet.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <urldefid.h>
 | 
						|
#include <utility.h>
 | 
						|
 | 
						|
#define F_YEAR      101
 | 
						|
 | 
						|
 | 
						|
// ripristino liquidazione  
 | 
						|
// dati anno e ditta scancella tutte
 | 
						|
// le tabelle dimmerda  
 | 
						|
// piu' che altro serve alla Prassi 
 | 
						|
// per non far cazzate quando provano
 | 
						|
 | 
						|
class TRipristino_liq : public TApplication
 | 
						|
{
 | 
						|
  long          _firm;
 | 
						|
  TString       _year;
 | 
						|
  TRelation*    _nditte;
 | 
						|
  TArray_sheet* _ditte;
 | 
						|
  TArray        _nomiditte;
 | 
						|
 | 
						|
  virtual bool create();
 | 
						|
  virtual bool destroy();
 | 
						|
  
 | 
						|
  bool menu(MENU_TAG) { return do_restore(); }
 | 
						|
 | 
						|
  // handuler 
 | 
						|
  static bool ch_year_handler(TMask_field& f, KEY key);
 | 
						|
 | 
						|
public: 
 | 
						|
 | 
						|
  void          build_ditte_sheet();
 | 
						|
  void          build_nomiditte();
 | 
						|
  void          set_year(const char* y) { _year = y; }                                                             
 | 
						|
 | 
						|
  bool          do_restore(); 
 | 
						|
  bool          restore_firm(long firm);                             
 | 
						|
  
 | 
						|
  static TRipristino_liq& app() { return (TRipristino_liq&)main_app(); }
 | 
						|
 | 
						|
  TRipristino_liq() {} 
 | 
						|
  virtual ~TRipristino_liq() {}
 | 
						|
};
 | 
						|
 | 
						|
bool TRipristino_liq::ch_year_handler(TMask_field& f, KEY key)
 | 
						|
{                                                    
 | 
						|
  if (key == K_TAB && f.focusdirty())
 | 
						|
  {                         
 | 
						|
    app().begin_wait();
 | 
						|
    app().set_year(f.get());
 | 
						|
    app().build_nomiditte();
 | 
						|
    app().build_ditte_sheet();    
 | 
						|
    app().end_wait();
 | 
						|
  }
 | 
						|
  return TRUE;
 | 
						|
} 
 | 
						|
 | 
						|
 | 
						|
void TRipristino_liq::build_ditte_sheet()
 | 
						|
{
 | 
						|
  // build sheet
 | 
						|
  _ditte->destroy();
 | 
						|
  for (int i = 0; i < _nomiditte.items(); i++)
 | 
						|
  {
 | 
						|
    TToken_string* d = new TToken_string(64);
 | 
						|
    *d = (TToken_string&)_nomiditte[i];
 | 
						|
    const char vers = d->get_char(2);
 | 
						|
    
 | 
						|
    bool selectable = vers == '?';
 | 
						|
    d->insert(" |", 0);        
 | 
						|
    
 | 
						|
    const long pos = _ditte->add(d);     
 | 
						|
    if (selectable)  _ditte->disable_row(pos);
 | 
						|
  }     
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void TRipristino_liq::build_nomiditte()
 | 
						|
{                 
 | 
						|
  _nomiditte.destroy();
 | 
						|
  // ricostruire _nomiditte e rifare build_ditte_sheet
 | 
						|
  TLocalisamfile& dt = _nditte->lfile();
 | 
						|
  TString fr("??");
 | 
						|
  TTable lia("%LIA");
 | 
						|
  
 | 
						|
  for (dt.first(); !dt.eof(); dt.next())
 | 
						|
  {     
 | 
						|
    // check no archivi
 | 
						|
    fr = "??";
 | 
						|
    bool good = prefix().exist(dt.get_long("CODDITTA"));                        
 | 
						|
    
 | 
						|
    if (good) 
 | 
						|
    {   
 | 
						|
      // check no parametri liquidazione                                               
 | 
						|
      lia.zero();
 | 
						|
      const TString16 cod(format("%05ld%4s", dt.get_long("CODDITTA"), (const char*)_year));
 | 
						|
      lia.put("CODTAB", cod);
 | 
						|
      if (lia.read() != NOERR) good = FALSE; 
 | 
						|
      else fr = lia.get("S7");
 | 
						|
    }
 | 
						|
    else continue;
 | 
						|
 | 
						|
    TToken_string* d = new TToken_string(64);
 | 
						|
    
 | 
						|
    // add record 
 | 
						|
    d->add(dt.get("CODDITTA"));
 | 
						|
    d->add(dt.get("RAGSOC"));
 | 
						|
    d->add(fr);
 | 
						|
    
 | 
						|
    _nomiditte.add(d);  
 | 
						|
  }
 | 
						|
  TApplication::set_firm(_firm);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool TRipristino_liq::create()
 | 
						|
{                     
 | 
						|
  TApplication::create();
 | 
						|
  _firm = get_firm();
 | 
						|
  TDate oggi(TODAY);                    
 | 
						|
  _year.format("%d",oggi.year());
 | 
						|
  _nditte = new TRelation(LF_NDITTE);
 | 
						|
  _ditte  = new TArray_sheet(-1, -1, 0, 0, "Selezione Ditte",
 | 
						|
                             "@1|Cod.@5|Ragione Sociale@50|Vers.");  
 | 
						|
  build_nomiditte();
 | 
						|
  build_ditte_sheet();
 | 
						|
  
 | 
						|
  dispatch_e_menu(BAR_ITEM(1));    
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TRipristino_liq::destroy()
 | 
						|
{
 | 
						|
  delete _nditte;
 | 
						|
  delete _ditte;
 | 
						|
  return TApplication::destroy();
 | 
						|
}  
 | 
						|
 | 
						|
bool TRipristino_liq::do_restore()
 | 
						|
{ 
 | 
						|
  KEY k; int i;
 | 
						|
  TMask m("cg5600a"); 
 | 
						|
  
 | 
						|
  m.field(F_YEAR).set(_year);
 | 
						|
  m.set_handler(F_YEAR, ch_year_handler);
 | 
						|
  _ditte->enable_check();
 | 
						|
  
 | 
						|
  while ((k = m.run()) != K_ESC)
 | 
						|
  {                            
 | 
						|
    if (k == K_QUIT) break;
 | 
						|
    switch(k)
 | 
						|
    {
 | 
						|
    case K_ENTER: 
 | 
						|
      begin_wait();
 | 
						|
      for(i = 0; i < _ditte->items(); i++)
 | 
						|
      {
 | 
						|
        if (_ditte->checked(i))
 | 
						|
        {              
 | 
						|
          TToken_string& rw = _ditte->row(i);
 | 
						|
          restore_firm(rw.get_long(1));
 | 
						|
        } 
 | 
						|
      }
 | 
						|
      end_wait();
 | 
						|
      break;
 | 
						|
    case DLG_SELECT:
 | 
						|
      _ditte->run();
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  
 | 
						|
  set_firm(_firm); 
 | 
						|
  return k != K_QUIT; 
 | 
						|
}
 | 
						|
 | 
						|
bool TRipristino_liq::restore_firm(long firm)
 | 
						|
{  
 | 
						|
  // azzera: campi progressivi in LIA e PLA
 | 
						|
  // cancella: tutti PPA, LIM, PIM, RMB, PLM, PTM
 | 
						|
  set_firm(firm);
 | 
						|
  
 | 
						|
  TTable lia("%LIA");
 | 
						|
  TTable pla("%PLA");
 | 
						|
  TTable pim("PIM");
 | 
						|
  TTable plm("PLM");
 | 
						|
  TTable ptm("PTM");
 | 
						|
  TTable ppa("PPA");
 | 
						|
  TTable rmb("RMB");
 | 
						|
  TTable lim("LIM");   
 | 
						|
  
 | 
						|
  // LIA
 | 
						|
  for (lia.first(); !lia.eof(); lia.next())
 | 
						|
  {
 | 
						|
    TString codtab(lia.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (atol(codtab.mid(0,5)) == firm &&
 | 
						|
        codtab.mid(5,4) == _year)
 | 
						|
    {             
 | 
						|
      lia.put("R1","");
 | 
						|
      lia.put("R2","");
 | 
						|
      lia.put("R3","");
 | 
						|
      lia.put("R4","");
 | 
						|
      lia.put("R5","");
 | 
						|
      lia.put("R6",""); 
 | 
						|
      break;
 | 
						|
    }   
 | 
						|
  }
 | 
						|
  lia.rewrite();
 | 
						|
  
 | 
						|
  // PLA
 | 
						|
  for (pla.first(); !pla.eof(); pla.next())
 | 
						|
  {
 | 
						|
    TString codtab(pla.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (atol(codtab.mid(0,5)) == firm &&
 | 
						|
        codtab.mid(5,4) == _year)
 | 
						|
    {
 | 
						|
      pla.put("R0","");
 | 
						|
      pla.put("R1","");
 | 
						|
      pla.put("R2","");
 | 
						|
      pla.put("R3","");
 | 
						|
      pla.put("R4","");
 | 
						|
      pla.put("R9","");
 | 
						|
      pla.put("R10","");
 | 
						|
      pla.put("S1","");
 | 
						|
      pla.put("S2","");
 | 
						|
      pla.put("S3","");
 | 
						|
      pla.put("S4","");
 | 
						|
    }
 | 
						|
  }
 | 
						|
  pla.rewrite();
 | 
						|
  
 | 
						|
  // PIM
 | 
						|
  for (pim.first(); !pim.eof(); pim.next())
 | 
						|
  {
 | 
						|
    TString codtab(pim.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (codtab.mid(0,4) == _year)
 | 
						|
      pim.remove();
 | 
						|
  }
 | 
						|
  //   pim.packfile();
 | 
						|
  //   pim.packindex();
 | 
						|
  
 | 
						|
  // PLM
 | 
						|
  for (plm.first(); !plm.eof(); plm.next())
 | 
						|
  {
 | 
						|
    TString codtab(plm.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (codtab.mid(0,4) == _year)
 | 
						|
      plm.remove();
 | 
						|
  }
 | 
						|
  //   plm.packfile();
 | 
						|
  //   plm.packindex();
 | 
						|
  
 | 
						|
  // PTM
 | 
						|
  for (ptm.first(); !ptm.eof(); ptm.next())
 | 
						|
  {
 | 
						|
    TString codtab(ptm.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (codtab.mid(0,4) == _year)
 | 
						|
      ptm.remove();
 | 
						|
  }
 | 
						|
  //   ptm.packfile();
 | 
						|
  //   ptm.packindex();
 | 
						|
  
 | 
						|
  // PPA
 | 
						|
  for (ppa.first(); !ppa.eof(); ppa.next())
 | 
						|
  {
 | 
						|
    TString codtab(ppa.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (codtab.mid(0,4) == _year)
 | 
						|
      ppa.remove();
 | 
						|
  }
 | 
						|
  //   ppa.packfile();
 | 
						|
  //   ppa.packindex();
 | 
						|
  
 | 
						|
  // RMB
 | 
						|
  for (rmb.first(); !rmb.eof(); rmb.next())
 | 
						|
  {
 | 
						|
    TString codtab(rmb.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (codtab.mid(0,4) == _year)
 | 
						|
      rmb.remove();
 | 
						|
  }
 | 
						|
  //   rmb.packfile();
 | 
						|
  //   rmb.packindex();
 | 
						|
  
 | 
						|
  // LIM
 | 
						|
  for (lim.first(); !lim.eof(); lim.next())
 | 
						|
  {
 | 
						|
    TString codtab(lim.get("CODTAB"));
 | 
						|
    
 | 
						|
    if (codtab.mid(0,4) == _year)
 | 
						|
      lim.remove();
 | 
						|
  }
 | 
						|
  //   lim.packfile();
 | 
						|
  //   lim.packindex();
 | 
						|
  
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int cg5600(int argc, char* argv[])
 | 
						|
{   
 | 
						|
  TRipristino_liq app;
 | 
						|
  app.run(argc, argv, "Ripristino liquidazione"); 
 | 
						|
  return 0;
 | 
						|
}
 |