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