Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione P@rtners 2.0 patch 349 git-svn-id: svn://10.65.10.50/trunk@10709 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
// Setta il mese liquidazione sui movimenti del registro vendite
 | 
						|
#include <applicat.h>
 | 
						|
#include <mask.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <relation.h>
 | 
						|
#include "cglib01.h"
 | 
						|
 | 
						|
#include <mov.h>
 | 
						|
#include "cg1300.h"
 | 
						|
#include "cg1308.h"
 | 
						|
 | 
						|
class TImposta_meseliq : public TSkeleton_application
 | 
						|
{
 | 
						|
 | 
						|
protected:         
 | 
						|
  static bool prot_handler(TMask_field& f, KEY k);
 | 
						|
  virtual void main_loop();
 | 
						|
public:
 | 
						|
  TImposta_meseliq () {};
 | 
						|
  virtual ~TImposta_meseliq() {};
 | 
						|
};
 | 
						|
 | 
						|
bool TImposta_meseliq::prot_handler(TMask_field& f, KEY k)
 | 
						|
{
 | 
						|
  if (k == K_ENTER && f.to_check(k))
 | 
						|
  {
 | 
						|
    const TMask& m = f.mask();
 | 
						|
    const long da = m.get_long(F_DA);
 | 
						|
    const long a  = m.get_long(F_A);
 | 
						|
    if (a < da)
 | 
						|
      return f.error_box(TR("L'intervallo dei numeri protocollo specificati non e' valido."));
 | 
						|
  }
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
void TImposta_meseliq::main_loop()
 | 
						|
{
 | 
						|
  TString expr, es, reg;
 | 
						|
  TDate d(TODAY);
 | 
						|
  TMask m("cg1300e");
 | 
						|
  m.set_handler(F_A, prot_handler);
 | 
						|
  m.set_handler(F_DA, prot_handler);
 | 
						|
  
 | 
						|
  TRelation r(LF_MOV);
 | 
						|
  TCursor   c(&r);
 | 
						|
  TLocalisamfile& fl = c.file();
 | 
						|
  TEsercizi_contabili esc;
 | 
						|
  
 | 
						|
  
 | 
						|
  while (m.run() != K_QUIT)
 | 
						|
  {
 | 
						|
    const int meseliq = m.get_int(F_PASS);
 | 
						|
 | 
						|
    d.set_year(m.get_int(F_ANNO));
 | 
						|
    es.format("%04d",esc.date2esc(d));
 | 
						|
    expr.format("(ANNOES==\"%s\")&&(REG==\"%s\")&&(STR((STR(PROTIVA))>=%ld))&&(STR((STR(PROTIVA))<=%ld))",
 | 
						|
                (const char*)es, (const char*) m.get(F_REG), m.get_long(F_DA), m.get_long(F_A));
 | 
						|
    c.setfilter(expr); // Setta l'espressione filtro
 | 
						|
 | 
						|
    const long items = c.items();
 | 
						|
    if (items == 0)
 | 
						|
      continue;
 | 
						|
    
 | 
						|
    TProgind* pi = new TProgind(c.items(), TR("Aggiornamento mese liquidazione in corso..."), FALSE, TRUE, 50);
 | 
						|
    for (c = 0L; c.pos() < items; c+=1L) //scorre i movimenti e li aggiorna
 | 
						|
    {
 | 
						|
      if (c.pos() & 0x7F)
 | 
						|
        pi->addstatus(1L);
 | 
						|
      fl.put(MOV_MESELIQ,meseliq);
 | 
						|
      fl.rewrite();
 | 
						|
    }
 | 
						|
    delete pi;
 | 
						|
    warning_box(FR("Aggiornati %ld records."),c.items());
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
int setta_meseliq(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TImposta_meseliq a;
 | 
						|
  a.run(argc, argv, TR("Impostazione mese liq."));
 | 
						|
  return 0;
 | 
						|
}
 |