Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@20862 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			186 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include <applicat.h>
 | |
| #include <automask.h>
 | |
| #include <execp.h>
 | |
| #include <progind.h>
 | |
| #include <tabutil.h>
 | |
| #include "../ve/velib.h"
 | |
| 
 | |
| #include <clifo.h>
 | |
| #include <doc.h>
 | |
| #include <rdoc.h>
 | |
| 
 | |
| #include "ps0713lib.h"
 | |
| #include "ps0713300a.h"
 | |
| 
 | |
|                                  ///////////////////////////////////
 | |
|                                  ////    TIMPORTA_FATACQ_MSK    ////
 | |
|                                  ///////////////////////////////////
 | |
| 
 | |
| //Classe TImporta_fatacq_msk
 | |
| class TImporta_fatacq_msk : public TAutomask
 | |
| {
 | |
| protected:
 | |
|   virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | |
| 
 | |
| public:
 | |
|   TImporta_fatacq_msk();
 | |
| };
 | |
|   
 | |
| TImporta_fatacq_msk::TImporta_fatacq_msk() :TAutomask ("ps0713300a")
 | |
| {
 | |
| }  
 | |
| 
 | |
| //ON_FIELD_EVENT: metodo che gestisce i comportamenti dei vari campi della maschera
 | |
| //(per adesso segnaposto)
 | |
| bool TImporta_fatacq_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | |
| {
 | |
|   return true;
 | |
| }
 | |
|                                  ///////////////////////////////////
 | |
|                                  ////    TIMPORTA_FATACQ_APP    ////
 | |
|                                  ///////////////////////////////////
 | |
| 
 | |
| //Classe TImporta_fatacq_app
 | |
| class TImporta_fatacq_app : public TSkeleton_application
 | |
| {
 | |
|   TImporta_fatacq_msk*  _msk;
 | |
| 
 | |
| protected:
 | |
|   virtual bool check_autorization() const {return false;}
 | |
|   virtual const char * extra_modules() const {return "ve";}
 | |
| 
 | |
| public:           
 | |
|   virtual bool create();
 | |
|   virtual bool destroy();
 | |
|   virtual void main_loop();
 | |
| 	bool get_doc(const TFilename& file, const TMask & m);
 | |
| 	void add_spesa(TDocumento & doc, const TString & cod, const real & perc);
 | |
|  
 | |
|   TImporta_fatacq_app() {};
 | |
| };
 | |
| 
 | |
| void TImporta_fatacq_app::add_spesa(TDocumento & doc, const TString & cod, const real & perc)
 | |
| {
 | |
| 	if (cod.full() && perc != ZERO)
 | |
| 	{
 | |
| 		TSpesa_prest p(cod);
 | |
| 		TString tiporiga = p.get("S8").left(4);
 | |
| 
 | |
| 		TRiga_documento & row = doc.new_row(tiporiga);
 | |
| 
 | |
| 		row.put(RDOC_CODART, cod);
 | |
| 		row.put(RDOC_CHECKED, "X");
 | |
| 		row.put(RDOC_QTA, perc);
 | |
| 		const TString & ivacli = doc.clifor().vendite().get(CFV_ASSFIS);
 | |
| 		row.put(RDOC_CODIVA, ivacli.full() ? ivacli : p.cod_iva());
 | |
| 	}
 | |
| }
 | |
| 
 | |
| bool TImporta_fatacq_app::get_doc(const TFilename& file, const TMask & m)
 | |
| {
 | |
| 	const TDate datadoc(m.get_date(F_DATAREG));
 | |
| 	TDocumento doc('D', datadoc.year(), m.get(F_CODNUM), 0L);
 | |
|   TVB_recset s(file, ',');
 | |
| 
 | |
|   TProgind pi(s.items(),"Importazione fatture in corso ...",true,true);
 | |
| 
 | |
|   doc.put(DOC_TIPODOC, m.get(F_TIPODOC));
 | |
|   doc.put(DOC_TIPOCF, "F");
 | |
|   doc.put(DOC_CODCF, m.get(F_CODCF));
 | |
|   doc.put(DOC_DATADOC, datadoc);
 | |
| 	doc.cli2doc();
 | |
| 
 | |
| 	int nriga  = 1;  
 | |
| 	TSpesa_prest p("GENPR", 'P');
 | |
| 
 | |
| 	for (bool ok = s.move_first(); ok; ok = s.move_next())
 | |
|   {
 | |
|     if (!pi.addstatus(1)) 
 | |
|       break;
 | |
| 
 | |
| 		TString16 tmp = s.get(1).as_string();
 | |
| 
 | |
| 		tmp.strip(".");
 | |
| 		tmp.replace(',', '.');
 | |
| 
 | |
| 		real imp(tmp);  imp.round(doc.decimals());
 | |
| 		if (imp != ZERO)
 | |
| 		{
 | |
| 			TRiga_documento & row = doc.new_row("A6");
 | |
| 
 | |
| 			row.put(RDOC_CODART, p.codice());
 | |
| 			row.put(RDOC_CHECKED, "X");
 | |
| 			
 | |
| 			row.put(RDOC_QTA, 1);
 | |
| 			row.put(RDOC_UMQTA, p.um());
 | |
| 			row.put(RDOC_PREZZO, imp);
 | |
| 			const TString & ivacli = doc.clifor().vendite().get(CFV_ASSFIS);
 | |
| 			row.put(RDOC_CODIVA, ivacli.full() ? ivacli : p.cod_iva());
 | |
| 
 | |
| 			const TString16 codcom = s.get(0).as_string();
 | |
| 			TCommessa cms(codcom);
 | |
| 			TCommessa_string ankey = cms.cmsstr();    
 | |
| 			TString descr;
 | |
| 
 | |
| 			descr << " Id. Lavoro " << codcom;
 | |
| 		
 | |
| 			row.put(RDOC_DESCR, descr);
 | |
| 			row.put(RDOC_CODCMS, codcom);
 | |
| 			row.put(RDOC_QTAGG1, ankey.gruppo());
 | |
| 			row.put(RDOC_QTAGG2, ankey.conto());
 | |
| 			row.put(RDOC_QTAGG3, ankey.sotco());
 | |
| 		}
 | |
| 	}
 | |
| 	TString16 codsp = m.get(F_CODSP1);
 | |
| 	real perc = m.get(F_PERCSP1);
 | |
| 
 | |
| 	add_spesa(doc, codsp, perc);
 | |
| 	codsp = m.get(F_CODSP2);
 | |
| 	perc = m.get_real(F_PERCSP2);
 | |
| 	add_spesa(doc, codsp, perc);
 | |
| 	codsp = m.get(F_CODSP3);
 | |
| 	perc = m.get_real(F_PERCSP3);
 | |
| 	add_spesa(doc, codsp, perc);
 | |
| 
 | |
|   return doc.write() == NOERR;
 | |
| }
 | |
| 
 | |
| const char* nomeini = "ps0713300fatt.ini";
 | |
| 
 | |
| bool TImporta_fatacq_app::create()
 | |
| {
 | |
|   xvt_fsys_remove_file(nomeini);
 | |
| 
 | |
| 	_msk = new TImporta_fatacq_msk();
 | |
|          
 | |
|   return TSkeleton_application::create();
 | |
| }
 | |
| 
 | |
| bool TImporta_fatacq_app::destroy()
 | |
| {
 | |
| 	delete _msk;
 | |
|   return TApplication::destroy();
 | |
| }
 | |
| 
 | |
| void TImporta_fatacq_app::main_loop()
 | |
| {
 | |
|   if (_msk->run() == K_ENTER)
 | |
|   {
 | |
| 		//genero il nome del file da caricare
 | |
| 		TFilename name = _msk->get(F_PATH);
 | |
| 		TFilename tmp = _msk->get(F_NAME);
 | |
| 		name.add(tmp.name());
 | |
| 		if (get_doc(name, *_msk))
 | |
| 			message_box(TR("Importazione fatture completata"));
 | |
|   }   
 | |
| }
 | |
| 
 | |
| TImporta_fatacq_app& app() { return (TImporta_fatacq_app&) main_app(); }
 | |
| 
 | |
| 
 | |
| int ps0713300 (int argc, char* argv[])
 | |
| {
 | |
|   TImporta_fatacq_app main_app;
 | |
|   main_app.run(argc, argv, TR("Importazione Fatture"));
 | |
|   return true;
 | |
| } |