Files correlati : pd0610 pd061300a.msk Ricompilazione Demo : [ ] Commento : Aggiunto il programma che modifica le condizioni di pagamento sui documenti filtrati in base a numdoc, stato, da cliente a cliente, da data a data - Primo step: mancano alcuni test git-svn-id: svn://10.65.10.50/branches/R_10_00@21354 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			130 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include <applicat.h>
 | |
| #include <automask.h>
 | |
| #include <recset.h>
 | |
| #include <relation.h>
 | |
| 
 | |
| #include "../cg/cglib01.h"
 | |
| 
 | |
| #include "doc.h"
 | |
| 
 | |
| #include "pd0610300a.h"
 | |
| 
 | |
|                                            /////////////////////////////////
 | |
|                                            ////    TSOST_CONDPAG_MSK    ////
 | |
|                                            /////////////////////////////////
 | |
| 
 | |
| class TSost_condpag_msk: public TAutomask
 | |
| {
 | |
| protected:
 | |
|   void elabora_documenti();
 | |
|   virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | |
| public:
 | |
| 	TSost_condpag_msk();
 | |
| };
 | |
| 
 | |
| void TSost_condpag_msk::elabora_documenti()
 | |
| {
 | |
|   //se non sono settate le date, compilo gli anni dagli esercizi contabili
 | |
|   TEsercizi_contabili& esc = esercizi();
 | |
|   const TDate dadata = get_date(F_DADATA);
 | |
|   const TDate adata  = get_date(F_ADATA);
 | |
|   const long daanno = dadata.ok() ? dadata.year() : esc.first();
 | |
|   const long aanno  = adata.ok()  ? adata.year()  : esc.last();
 | |
| 
 | |
|   TString query;
 | |
|   query << "USE DOC\n"
 | |
|         << "SELECT (TIPODOC=\"#TIPODOC\")&&(STATO=\"#STATO\")&&(TIPOCF=\"C\")&&(BETWEEN(CODCF,#DACODCF,#ACODCF))&&(BETWEEN(DATADOC,#DADATA,#ADATA))\n"
 | |
|         << "FROM PROVV=\"D\" ANNO=#DAANNO CODNUM=\"#CODNUM\"\n"
 | |
|         << "TO PROVV=\"D\" ANNO=#AANNO CODNUM=\"#CODNUM\"";
 | |
| 
 | |
|   //instanzio il recordset e gli setto tutte le variabili
 | |
|   TISAM_recordset doc(query);
 | |
|   doc.set_var("#TIPODOC", get(F_TIPODOC));
 | |
|   doc.set_var("#STATO",   get(F_STATO));
 | |
|   doc.set_var("#DACODCF", get_long(F_DACODCF));
 | |
|   doc.set_var("#ACODCF",  get_long(F_ACODCF));
 | |
|   doc.set_var("#DADATA",  dadata);
 | |
|   doc.set_var("#ADATA",   adata);
 | |
|   doc.set_var("#DAANNO",  daanno);
 | |
|   doc.set_var("#AANNO",   aanno);
 | |
|   doc.set_var("#CODNUM",  get(F_CODNUM));
 | |
| 
 | |
|   TLocalisamfile& documenti = doc.cursor()->file();
 | |
| 
 | |
|   const long codpag = get_long(F_CODPAG);
 | |
| 
 | |
|   //scorro il recordset e aggiorno i documenti che è necessario aggiornare
 | |
|   for(bool ok = doc.move_first(); ok; ok = doc.move_next())
 | |
|   {
 | |
|     TRectype& rec = doc.cursor()->curr();
 | |
| 
 | |
|     if(rec.get_long(DOC_CODPAG) != codpag)
 | |
|     {
 | |
|       rec.put(DOC_CODPAG, codpag);
 | |
|       rec.rewrite(documenti);
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| bool TSost_condpag_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | |
| { 
 | |
|   switch(o.dlg())
 | |
|   {
 | |
|   case DLG_OK:
 | |
|     if(e == fe_button)
 | |
|     {
 | |
|       elabora_documenti();
 | |
|       return false;
 | |
|     }
 | |
|     break;
 | |
|   /*case DLG_CANCEL:
 | |
|     if(e == fe_button)
 | |
|     {
 | |
|       reset(F_CLIENTE);
 | |
|       reset(F_RAGSOC);
 | |
|       sfield(F_SHEET).destroy();
 | |
|       return false;
 | |
|     }
 | |
|     break;*/
 | |
|   default:  break;
 | |
|   }
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| TSost_condpag_msk::TSost_condpag_msk() : TAutomask("pd0610300a")
 | |
| {
 | |
| }
 | |
| 
 | |
|                                            /////////////////////////////////
 | |
|                                            ////    TSOST_CONDPAG_APP    ////
 | |
|                                            /////////////////////////////////
 | |
| 
 | |
| class TSost_condpag_app: public TSkeleton_application
 | |
| {
 | |
| protected:
 | |
|   virtual bool check_autorization() const {return false;}
 | |
|   virtual const char * extra_modules() const {return "ve";}
 | |
|   virtual void main_loop();
 | |
|   void elabora();
 | |
| };
 | |
| 
 | |
| void TSost_condpag_app::elabora()
 | |
| {
 | |
| }
 | |
| 
 | |
| void TSost_condpag_app::main_loop()
 | |
| {
 | |
|   TSost_condpag_msk m;
 | |
|   while (m.run() == K_ENTER)
 | |
| 	{
 | |
| 		elabora();
 | |
| 	}
 | |
| }
 | |
| 
 | |
| int pd0610300(int argc, char* argv[])
 | |
| {  
 | |
|   TSost_condpag_app app;
 | |
|   app.run(argc, argv, TR("Sostituzione Condizioni di Pagamento"));
 | |
|   return 0;
 | |
| }
 |