Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1353 git-svn-id: svn://10.65.10.50/trunk@18581 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			102 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.1 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_raggruppabili(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_raggruppabili(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 TString80 art_in = rin.get(RDOC_CODART);
 | |
| 		const TString80 art_out = rout.get(RDOC_CODART);
 | |
| 		return art_in == art_out;
 | |
| 	}
 | |
| 	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;
 | |
| }
 |