Files correlati :ce2.exe,ce2500a.msk Ricompilazione Demo : [ ] Commento :antico OB600074 o roba simile git-svn-id: svn://10.65.10.50/trunk@11009 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			186 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <recarray.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <tabutil.h>
 | 
						|
 | 
						|
#include "ce2500a.h"
 | 
						|
 | 
						|
#include "celib.h"
 | 
						|
#include "cespi.h"
 | 
						|
#include "movce.h"
 | 
						|
 | 
						|
class TRestore_boll_mask : public TAutomask
 | 
						|
{ 
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
 | 
						|
public:
 | 
						|
  TRestore_boll_mask() : TAutomask("ce2500a") { }
 | 
						|
};
 | 
						|
 | 
						|
bool TRestore_boll_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{ 
 | 
						|
  switch (o.dlg())
 | 
						|
  {
 | 
						|
  case F_ESERCIZIO:
 | 
						|
  case F_GRUPPO:
 | 
						|
  case F_SPECIE:
 | 
						|
    if (e == fe_close)
 | 
						|
    {
 | 
						|
      const int esercizio = get_int(F_ESERCIZIO);
 | 
						|
      const int gruppo = get_int(F_GRUPPO);
 | 
						|
      const TString16 specie = get(F_SPECIE);
 | 
						|
      TString80 key; key.format("%4d%02d%s",esercizio, gruppo, (const char*) specie);
 | 
						|
      const TRectype& ccb = cache().get("CCB", key);
 | 
						|
      if (ccb.get_bool("B2"))
 | 
						|
        return error_box("L'attivita' selezionata e' gia' stata chiusa. \nNon e' possibile ripristinare il bollato");
 | 
						|
    }
 | 
						|
    break;
 | 
						|
  default:
 | 
						|
    break;
 | 
						|
  }
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
//===============================================================================================
 | 
						|
class TRestore_boll : public TSkeleton_application
 | 
						|
{ 
 | 
						|
  TRestore_boll_mask* _mask;
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
  virtual bool create();
 | 
						|
  virtual bool destroy();
 | 
						|
 | 
						|
public:   
 | 
						|
  void pulisci_movce();
 | 
						|
  void pulisci_ccb();
 | 
						|
};  
 | 
						|
 | 
						|
 | 
						|
void TRestore_boll::pulisci_movce()
 | 
						|
{
 | 
						|
  int ese;
 | 
						|
  TString4 gru, specie;
 | 
						|
  const TRectype& curr = ditta_cespiti().get_attivita(ese, gru, specie);
 | 
						|
 | 
						|
  TDate inies, fines;
 | 
						|
  ditta_cespiti().esercizio_corrente(inies, fines);
 | 
						|
 | 
						|
  //prende tutti i cespiti con gruppo/specie selezionati nel file cespi...
 | 
						|
  TRelation relcespi (LF_CESPI);
 | 
						|
  TRectype& cespi = relcespi.curr();
 | 
						|
 | 
						|
  TRectype cespifilter (LF_CESPI);
 | 
						|
  cespifilter.put(CESPI_CODCGRA,gru);
 | 
						|
  cespifilter.put(CESPI_CODSPA,specie);
 | 
						|
  
 | 
						|
  TString filtro1 = "ANSI(DTCOMP)<=";
 | 
						|
  filtro1 << fines.string(ANSI);
 | 
						|
 | 
						|
  TCursor curcespi(&relcespi, filtro1, 2, &cespifilter, &cespifilter);
 | 
						|
  TRecnotype items = curcespi.items();
 | 
						|
  curcespi.freeze();
 | 
						|
 | 
						|
  TRelation relmovce (LF_MOVCE);
 | 
						|
  TRectype& movce = relmovce.curr();
 | 
						|
  TCursor curmovce(&relmovce, "", 2);
 | 
						|
 | 
						|
  TProgind barra(items, "Ripristino movimenti", FALSE, TRUE);
 | 
						|
 | 
						|
  for(curcespi = 0; curcespi.pos() < items; ++curcespi)
 | 
						|
  {
 | 
						|
    barra.addstatus(1);
 | 
						|
 | 
						|
    movce.zero();
 | 
						|
    movce.put(MOVCE_IDCESPITE, cespi.get(CESPI_IDCESPITE));
 | 
						|
    
 | 
						|
    curmovce.setregion(movce,movce);
 | 
						|
    TRecnotype movce_items = curmovce.items();
 | 
						|
    curmovce.freeze();
 | 
						|
    //pulisce il bool per tutti i movimenti del cespite corrente..
 | 
						|
    for(curmovce = 0; curmovce.pos() < movce_items; ++curmovce)
 | 
						|
    {
 | 
						|
      const TDate dtmov = movce.get_date(MOVCE_DTMOV);
 | 
						|
      if (dtmov >= inies && dtmov <= fines)
 | 
						|
      {
 | 
						|
        movce.put(MOVCE_STAMPATO, "");
 | 
						|
        relmovce.rewrite();
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    curmovce.freeze(FALSE);
 | 
						|
  }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
void TRestore_boll::pulisci_ccb()
 | 
						|
{
 | 
						|
  int ese;
 | 
						|
  TString4 gr, sp;
 | 
						|
  const TRectype& curr = ditta_cespiti().get_attivita(ese, gr, sp);
 | 
						|
  if (!curr.empty())
 | 
						|
  {
 | 
						|
    TTable ccb ("CCB");
 | 
						|
    ccb.curr() = curr;
 | 
						|
    ccb.put("B1", "");
 | 
						|
    ccb.rewrite();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
bool TRestore_boll::create()
 | 
						|
{
 | 
						|
  open_files(LF_TAB, LF_CESPI, LF_MOVCE, 0);
 | 
						|
  _mask = new TRestore_boll_mask;
 | 
						|
  return TSkeleton_application::create();
 | 
						|
}
 | 
						|
 | 
						|
bool TRestore_boll::destroy()
 | 
						|
{
 | 
						|
  delete _mask;
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
void TRestore_boll::main_loop()
 | 
						|
{
 | 
						|
  KEY k = K_ENTER;
 | 
						|
  while (k == K_ENTER)
 | 
						|
  {                   
 | 
						|
    TDitta_cespiti& dc = ditta_cespiti();
 | 
						|
    dc.init_mask(*_mask);
 | 
						|
 | 
						|
    k = _mask->run();
 | 
						|
    
 | 
						|
    if (k == K_ENTER)
 | 
						|
    {                                             
 | 
						|
      const int ese = _mask->get_int(F_ESERCIZIO);
 | 
						|
      const int gru = _mask->get_int(F_GRUPPO);
 | 
						|
      const TString& spe = _mask->get(F_SPECIE);
 | 
						|
      dc.set_attivita(ese, gru, spe);   
 | 
						|
      
 | 
						|
      bool ok = TRUE;
 | 
						|
      if (dc.bollato_stampato())
 | 
						|
        ok = yesno_box("Si desidera veramente ripristinare la stampa bollato:\n"
 | 
						|
                       "dell' attivita' selezionata ?");
 | 
						|
      else
 | 
						|
        ok = warning_box("Il bollato dell' attivita' selezionata non risulta stampato");
 | 
						|
  
 | 
						|
      if (ok)
 | 
						|
      {
 | 
						|
        pulisci_ccb();
 | 
						|
        pulisci_movce();
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
int ce2500(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TRestore_boll a;
 | 
						|
  a.run(argc, argv, "Ripristino stampa bollato");
 | 
						|
  return 0;
 | 
						|
}
 |