Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1262 git-svn-id: svn://10.65.10.50/trunk@17631 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			112 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <progind.h>
 | 
						|
 | 
						|
#include "../ve/ve6200.h"
 | 
						|
#include "../ve/ve6200a.h"
 | 
						|
 | 
						|
#include <doc.h> 
 | 
						|
class TFatturazione_cooperative : public TFatturazione_bolle
 | 
						|
{ 
 | 
						|
  virtual void campi_raggruppamento_righe(TToken_string& campi_riga) const;
 | 
						|
	virtual void campi_raggruppamento(TToken_string& campi) const;
 | 
						|
	virtual bool doc_raggruppabile(const TDocumento & doc) const { return true; }
 | 
						|
	virtual bool doc_raggruppabile(const TDocumento & doc_in, const TDocumento & doc_out, TToken_string & campi) const;
 | 
						|
	virtual void add_rows(TRiga_documento & rout, TRiga_documento & rin);
 | 
						|
  virtual void create_row(TDocumento& doc_out, const TRiga_documento & rin);
 | 
						|
	virtual const TString & get_tipo_out(const TDocumento & doc_out);
 | 
						|
 | 
						|
 | 
						|
public:
 | 
						|
 	TFatturazione_cooperative(const char* cod) : TFatturazione_bolle(cod) {}
 | 
						|
  virtual ~TFatturazione_cooperative() { }
 | 
						|
};
 | 
						|
 | 
						|
void TFatturazione_cooperative::campi_raggruppamento_righe(TToken_string& campi_riga) const
 | 
						|
{
 | 
						|
	campi_riga = "CODART|UMQTA";  // Uguali sempre
 | 
						|
}
 | 
						|
 | 
						|
void TFatturazione_cooperative::campi_raggruppamento(TToken_string& campi) const
 | 
						|
{
 | 
						|
	campi = "TIPOCF|CODCF|CODVAL|CODLIN";
 | 
						|
}
 | 
						|
 | 
						|
void TFatturazione_cooperative::add_rows(TRiga_documento & rout, TRiga_documento & rin)
 | 
						|
{
 | 
						|
	real valore = rout.get_real(RDOC_PREZZO);
 | 
						|
	real qta = rout.get_real(RDOC_QTA);
 | 
						|
 | 
						|
	valore += rin.doc().get_real("TOTMER")+rin.doc().get_real("SPESMER");
 | 
						|
	valore.round(2);
 | 
						|
	rout.put(RDOC_PREZZO, valore);
 | 
						|
	qta += rin.get_real(RDOC_QTA);
 | 
						|
	rout.put(RDOC_QTA, qta);
 | 
						|
}
 | 
						|
 | 
						|
bool TFatturazione_cooperative::doc_raggruppabile(const TDocumento & doc_in, const TDocumento & doc_out, TToken_string & campi) const
 | 
						|
{
 | 
						|
	if (doc_in.physical_rows() > 0 && doc_out.physical_rows() > 0)
 | 
						|
	{
 | 
						|
		const TRiga_documento & rout = doc_out[1];
 | 
						|
		const TRiga_documento & rin = doc_in[1];
 | 
						|
		const TString art_in = rin.get(RDOC_CODART);
 | 
						|
		const TString art_out = rout.get(RDOC_CODART);
 | 
						|
		bool raggruppa = art_in == art_out;
 | 
						|
 | 
						|
		if (raggruppa)
 | 
						|
		{
 | 
						|
			const TString & art =  rin.get(RDOC_CODARTMAG);
 | 
						|
			const TString & iva_in = cache().get(LF_ANAMAG, art, ANAMAG_USER4);
 | 
						|
			const TString iva_out = rout.get(RDOC_CODIVA);
 | 
						|
 | 
						|
			raggruppa = iva_in == iva_out;
 | 
						|
		}
 | 
						|
		return raggruppa;
 | 
						|
	}
 | 
						|
	return false;
 | 
						|
}
 | 
						|
 | 
						|
void TFatturazione_cooperative::create_row(TDocumento& doc_out, const TRiga_documento & rin)
 | 
						|
{
 | 
						|
	if (rin.get_int(RDOC_NRIGA) == 1)
 | 
						|
	{
 | 
						|
		TFatturazione_bolle::create_row(doc_out, rin);
 | 
						|
		TRiga_documento & rout = doc_out[1];
 | 
						|
		real valore = rin.doc().get_real("TOTMER")+rin.doc().get_real("SPESMER");
 | 
						|
 | 
						|
		valore.round(2);
 | 
						|
		rout.put(RDOC_PREZZO, valore);
 | 
						|
		rout.zero(RDOC_SCONTO);
 | 
						|
		rout.put(RDOC_CODAGG1, "X");
 | 
						|
 | 
						|
		const TString & art =  rout.get(RDOC_CODARTMAG);
 | 
						|
		const TString & codiva= cache().get(LF_ANAMAG, art, ANAMAG_USER4);
 | 
						|
 | 
						|
		if (codiva.full())
 | 
						|
			rout.put(RDOC_CODIVA, codiva);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
const TString & TFatturazione_cooperative::get_tipo_out(const TDocumento & doc_out)
 | 
						|
{
 | 
						|
	const TString & art = doc_out[1].get(RDOC_CODARTMAG);
 | 
						|
	const TString & tipodoc = cache().get(LF_ANAMAG, art, ANAMAG_USER2);
 | 
						|
 | 
						|
	if (tipodoc.full() && !cache().get("%TIP", tipodoc).empty())
 | 
						|
		return tipodoc;
 | 
						|
	else
 | 
						|
	 return get("S8");
 | 
						|
};
 | 
						|
 | 
						|
class TFatturazione_cooperative_app : public TFatturazione_bolle_app
 | 
						|
{ 
 | 
						|
protected:
 | 
						|
	virtual TFatturazione_bolle * elab(const TString & cod) const { return new TFatturazione_cooperative(cod);}
 | 
						|
};
 | 
						|
 | 
						|
int co1400(int argc, char *argv[])
 | 
						|
{
 | 
						|
  TFatturazione_cooperative_app a;
 | 
						|
  a.run (argc, argv, "Fatturazione Conferimenti");
 | 
						|
  return TRUE;
 | 
						|
}
 |