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;
 | |
| }
 |