git-svn-id: svn://10.65.10.50/branches/R_10_00@22678 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			139 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <defmask.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <cfven.h>
 | 
						|
#include "../ve/velib.h"
 | 
						|
 | 
						|
#include "ps0920.h"
 | 
						|
#include "ps0920200a.h"
 | 
						|
 | 
						|
#include <rdoc.h>
 | 
						|
 | 
						|
class TMaskPs09202 : public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
 | 
						|
public:
 | 
						|
  TMaskPs09202();
 | 
						|
  virtual ~TMaskPs09202();
 | 
						|
};
 | 
						|
 | 
						|
TMaskPs09202::TMaskPs09202()
 | 
						|
            : TAutomask("ps0920200a")
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
TMaskPs09202::~TMaskPs09202()
 | 
						|
{  
 | 
						|
}             
 | 
						|
 | 
						|
bool TMaskPs09202::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{
 | 
						|
	const int id = o.dlg();
 | 
						|
	switch (id)
 | 
						|
	{
 | 
						|
		case F_CODCLI:
 | 
						|
			if (e == fe_modify)
 | 
						|
			{
 | 
						|
				TString key; key.format("C|%ld", atol(o.get()));
 | 
						|
				const TRectype & cli = cache().get(LF_CFVEN, key);
 | 
						|
				if (cli.get(CFV_ASSFIS).empty())
 | 
						|
					o.mask().enable(F_CODIVA);
 | 
						|
				else
 | 
						|
				{
 | 
						|
					o.mask().set(F_CODIVA, "");
 | 
						|
					o.mask().disable(F_CODIVA);
 | 
						|
				}
 | 
						|
 | 
						|
			}
 | 
						|
		default:
 | 
						|
			break;
 | 
						|
	}
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
class TAggiornaIVAPs0920 : public TSkeleton_application  
 | 
						|
{
 | 
						|
  TMaskPs09202 * _mask;
 | 
						|
	virtual bool check_autorization() const {return false;}
 | 
						|
  virtual const char * extra_modules() const {return "ve";}
 | 
						|
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
  virtual bool create();
 | 
						|
 | 
						|
public:
 | 
						|
  const TMaskPs09202 & mask() const {return *_mask;}
 | 
						|
  virtual ~TAggiornaIVAPs0920();
 | 
						|
};
 | 
						|
 | 
						|
void TAggiornaIVAPs0920::main_loop()
 | 
						|
{
 | 
						|
  while (_mask->run() == K_ENTER)
 | 
						|
  {
 | 
						|
		TCursor c(new TRelation(LF_DOC));
 | 
						|
		TRectype from(c.curr());
 | 
						|
 | 
						|
		from.put(DOC_PROVV, "D");
 | 
						|
		from.put(DOC_CODNUM, _mask->get(F_NUM));
 | 
						|
		from.put(DOC_ANNO, _mask->get_int(F_ANNO));
 | 
						|
 | 
						|
		TRectype to(from);
 | 
						|
		from.put(DOC_NDOC, _mask->get_int(F_NDOCDA));
 | 
						|
		to.put(DOC_NDOC, _mask->get_int(F_NDOCA));
 | 
						|
		c.setregion(from, to);
 | 
						|
		TString filter; filter.format("CODCF=%ld", _mask->get_long(F_CODCLI));
 | 
						|
		c.setfilter(filter);
 | 
						|
 | 
						|
		TString key; key.format("C|%ld", _mask->get_long(F_CODCLI));
 | 
						|
		const TRectype & cli = cache().get(LF_CFVEN, key);
 | 
						|
		TString codice_IVA(cli.get(CFV_ASSFIS));
 | 
						|
		
 | 
						|
		if (codice_IVA.empty())
 | 
						|
			codice_IVA = _mask->get(F_CODIVA);
 | 
						|
 | 
						|
		const long items = c.items();
 | 
						|
		TString16 iva_orig;
 | 
						|
 | 
						|
		for (c = 0L; c.pos() < items; ++c)
 | 
						|
		{
 | 
						|
			TDocumento doc(c.curr());
 | 
						|
			const int rows = doc.physical_rows();
 | 
						|
 | 
						|
			for (int r = 1 ; r <= rows; r++)
 | 
						|
			{
 | 
						|
				TRiga_documento & riga = doc[r];
 | 
						|
 | 
						|
				iva_orig = riga.get(RDOC_CODIVA);
 | 
						|
 | 
						|
				if (iva_orig.not_empty())
 | 
						|
					riga.put(RDOC_CODIVA, codice_IVA);
 | 
						|
			}
 | 
						|
			doc.rewrite();
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
bool TAggiornaIVAPs0920::create()
 | 
						|
{
 | 
						|
	_mask = new TMaskPs09202;
 | 
						|
	return TSkeleton_application:: create();
 | 
						|
}
 | 
						|
 | 
						|
TAggiornaIVAPs0920::~TAggiornaIVAPs0920()
 | 
						|
{
 | 
						|
	delete _mask;
 | 
						|
}
 | 
						|
 | 
						|
TAggiornaIVAPs0920 & app() { return (TAggiornaIVAPs0920&) main_app();}
 | 
						|
 | 
						|
int ps0920200(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TAggiornaIVAPs0920 a;
 | 
						|
  a.run(argc, argv, "Aggiornamento IVA Documenti");
 | 
						|
  return 0;
 | 
						|
}
 |