Files correlati : ve6.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 979 git-svn-id: svn://10.65.10.50/trunk@15623 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			162 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <execp.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <recset.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <reprint.h>
 | 
						|
#include <tabutil.h>
 | 
						|
 | 
						|
#include "../cg/cg2103.h"
 | 
						|
#include "../gv/gvlib.h"
 | 
						|
#include "velib.h"
 | 
						|
#include "velib07.h"
 | 
						|
 | 
						|
#include <nditte.h>
 | 
						|
 | 
						|
#include "ve8.h"
 | 
						|
#include "ve8100a.h"
 | 
						|
 | 
						|
////////////////////////////////////////////////////////
 | 
						|
//	MASCHERA
 | 
						|
////////////////////////////////////////////////////////
 | 
						|
class TListaRitFisc_mask : public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
 | 
						|
public:
 | 
						|
  TListaRitFisc_mask();
 | 
						|
  virtual ~TListaRitFisc_mask() {}
 | 
						|
};
 | 
						|
 | 
						|
bool TListaRitFisc_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{ 
 | 
						|
  bool ok = true;
 | 
						|
	/*
 | 
						|
  switch (o.dlg())
 | 
						|
  {
 | 
						|
	case :
 | 
						|
    if (e == fe_init || e == fe_modify)
 | 
						|
    {
 | 
						|
    }
 | 
						|
    break;
 | 
						|
  default: break;
 | 
						|
  }
 | 
						|
	*/
 | 
						|
  return ok;
 | 
						|
}
 | 
						|
 | 
						|
TListaRitFisc_mask::TListaRitFisc_mask():TAutomask("ve8100")
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
////////////////////////////////////////////////////////
 | 
						|
//	APPLICAZIONE
 | 
						|
////////////////////////////////////////////////////////
 | 
						|
class TListaRitFisc : public TSkeleton_application
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
public:
 | 
						|
	bool crea_righe(const TListaRitFisc_mask& m) const;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
bool TListaRitFisc::crea_righe(const TListaRitFisc_mask& m) const
 | 
						|
{
 | 
						|
  // cerca abi e cab della ditta
 | 
						|
  const TString& abi = m.get(F_CODABI);
 | 
						|
  const TString& cab = m.get(F_CODCAB);
 | 
						|
	const TDate datascad = m.get(F_DATASCAD);
 | 
						|
 | 
						|
	int err=NOERR;
 | 
						|
	TLocalisamfile righe(LF_RIGHEF24);
 | 
						|
	TDocument_recordset rdoc("USE RDOC\nSELECT (TIPORIGA=='04')&&(110@->S10!='')&&(33.NDOC>=#DANUM)&&(33.NDOC<=#ANUM)\nJOIN SPP ALIAS 110 INTO CODTAB=CODART\nJOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\nFROM CODNUM=#NUM\nTO CODNUM=#NUM");
 | 
						|
	TVariant var;
 | 
						|
	var = m.get(F_NUMINI);
 | 
						|
	rdoc.set_var("#DANUM", var);
 | 
						|
	var = m.get(F_NUMFIN);
 | 
						|
	rdoc.set_var("#ANUM", var);
 | 
						|
	var = m.get(F_CODNUM);
 | 
						|
	rdoc.set_var("#NUM", var);
 | 
						|
	// calcolo importo e chiedo conferma all'operatore
 | 
						|
	const TRecordset& curr = rdoc;
 | 
						|
	real totale = ZERO;
 | 
						|
	for (bool ok = rdoc.move_first(); ok; ok = rdoc.move_next())
 | 
						|
		totale += curr.get("RDOC.RITENUTA").as_real();
 | 
						|
	err = NOERR;
 | 
						|
	if (yesno_box("Verranno generate %d righe per un importo di %s euro. Si desidera creare le righe?", rdoc.items(), totale.string()))
 | 
						|
	{
 | 
						|
		long cont = get_next_progr_f24();
 | 
						|
		long numf24 = get_next_f24();
 | 
						|
		// trucco per poter usare la get (nei TDocument_recordset la get ha 2 par. ed e' protected!)
 | 
						|
		for (bool ok1 = rdoc.move_first(); ok1; ok1 = rdoc.move_next())
 | 
						|
		{
 | 
						|
			righe.zero();
 | 
						|
			righe.put("PROGR", cont++);
 | 
						|
			righe.put("F24", numf24++);	
 | 
						|
			righe.put("TRIBUTO", curr.get("SPP.S10").as_string());
 | 
						|
			righe.put("TIPOINTEST", 'C');
 | 
						|
			righe.put("INTEST", curr.get("DOC.CODCF").as_int());
 | 
						|
			righe.put("DESCR", "Riga generata");
 | 
						|
			righe.put("IMPORTODEB", curr.get("RDOC.RITENUTA").as_real());
 | 
						|
			righe.put("ABI", abi);
 | 
						|
			righe.put("CAB", cab);
 | 
						|
			righe.put("DATASCAD", datascad);
 | 
						|
			err = righe.write();
 | 
						|
		}	
 | 
						|
	}
 | 
						|
	return (err==NOERR);
 | 
						|
}
 | 
						|
 | 
						|
void TListaRitFisc::main_loop()
 | 
						|
{
 | 
						|
	TListaRitFisc_mask m;
 | 
						|
  // cerca abi e cab della ditta
 | 
						|
  const TString& abi = prefix().firm().get(NDT_ABIBAN);
 | 
						|
  const TString& cab = prefix().firm().get(NDT_CABBAN);
 | 
						|
	m.set(F_CODABI, abi);
 | 
						|
	m.set(F_CODCAB, cab);
 | 
						|
	KEY key = K_ENTER;
 | 
						|
  while (key != K_QUIT)
 | 
						|
  {
 | 
						|
    key = m.run();
 | 
						|
		switch (key)
 | 
						|
		{
 | 
						|
			case K_SAVE:
 | 
						|
				crea_righe(m);
 | 
						|
			break;
 | 
						|
			case K_QUIT:
 | 
						|
			break;
 | 
						|
			case K_ENTER:
 | 
						|
			{
 | 
						|
				//report e book dei report
 | 
						|
				TDocument_report rep;
 | 
						|
				rep.load("ve8100a");
 | 
						|
				TRecordset * r = rep.recordset();
 | 
						|
				if (r != NULL)
 | 
						|
				{
 | 
						|
					TVariant var;
 | 
						|
					var = m.get(F_NUMINI);
 | 
						|
					r->set_var("#DANUM", var);
 | 
						|
					var = m.get(F_NUMFIN);
 | 
						|
					r->set_var("#ANUM", var);
 | 
						|
					var = m.get(F_CODNUM);
 | 
						|
					r->set_var("#NUM", var);
 | 
						|
				}
 | 
						|
				TReport_book book;
 | 
						|
				book.add(rep);
 | 
						|
				book.print_or_preview();	//stampa il book dei report
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int ve8100(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TListaRitFisc a;
 | 
						|
  a.run(argc, argv, TR("Lista ritenute per F24"));
 | 
						|
  return 0;
 | 
						|
} |