Files correlati : cg4.exe Ricompilazione Demo : [ ] Commento : Bug 0001523 in caso di ditta che gestisce solo iva esente la liquidazione iva non dettaglia le aliquote git-svn-id: svn://10.65.10.50/trunk@19899 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			162 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
// cglib03.h
 | 
						|
 | 
						|
#ifndef __CGLIB03_H
 | 
						|
#define __CGLIB03_H
 | 
						|
 | 
						|
#ifndef __CG2103_H
 | 
						|
#include "cg2103.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef __TABUTIL_H
 | 
						|
#include <tabutil.h>
 | 
						|
#endif
 | 
						|
 | 
						|
// Defines per TInteressi_IVA_table. Servono per comporre i nomi dei campi
 | 
						|
 | 
						|
#define P_1_TRIMESTRE 0
 | 
						|
#define P_2_TRIMESTRE 1
 | 
						|
#define P_3_TRIMESTRE 2
 | 
						|
#define P_4_TRIMESTRE 3
 | 
						|
#define P_ANNUALE     4
 | 
						|
#define I_PERIODICO   5
 | 
						|
#define I_ANNUALE     6
 | 
						|
#define I_ACCONTOIVA  7
 | 
						|
#define I_INTEGRATIVO 8
 | 
						|
#define I_CESSAZIONE  9
 | 
						|
#define I_ART74       10
 | 
						|
#define B_LIQ_DIFF    11
 | 
						|
#define B_LIQ_NORM    12
 | 
						|
 | 
						|
class TInteressi_IVA_table : public TTable
 | 
						|
{
 | 
						|
public:
 | 
						|
  int  read(int anno, int mese);
 | 
						|
  //int  status() { return _ver->status();}
 | 
						|
  real get(int what);
 | 
						|
  TInteressi_IVA_table();
 | 
						|
  virtual ~TInteressi_IVA_table();
 | 
						|
};
 | 
						|
 | 
						|
struct TDociva : public TObject
 | 
						|
{
 | 
						|
  TString _descrdoc;
 | 
						|
  real _totdociva;
 | 
						|
  int _ndoc;
 | 
						|
 | 
						|
  TDociva(const char* _descrdociva, const real& _importo,const int _natdoc) 
 | 
						|
    :_descrdoc(_descrdociva),_totdociva(_importo),_ndoc(_natdoc) { }
 | 
						|
  virtual ~TDociva() { }
 | 
						|
};
 | 
						|
 | 
						|
class TDociva_array : public TArray
 | 
						|
{
 | 
						|
public:
 | 
						|
  bool add_riga(const char* _descrdociva,const real& _importo,const int _natdoc);
 | 
						|
  TDociva& riga(int i) { return (TDociva&)(*this)[i]; }
 | 
						|
};
 | 
						|
 | 
						|
struct TRigaiva : public TObject
 | 
						|
{
 | 
						|
  real     _imponibile, _imposta;    
 | 
						|
  real     _imponibilep, _impostap;
 | 
						|
  TString4 _codiva;
 | 
						|
  int      _tipodet;
 | 
						|
  int      _tipocr, _tipoatt;
 | 
						|
  bool     _intra;
 | 
						|
 | 
						|
  const TString& descr_det() const;
 | 
						|
  
 | 
						|
  TRigaiva (const real& imponibile, const real& imposta, const real& imponibilep, const real& impostap, 
 | 
						|
            const char* codiva, int tipodet, int tipocr, bool intra, int tipoatt):
 | 
						|
  _imponibile(imponibile),_imposta(imposta),_imponibilep(imponibilep),_impostap(impostap),_codiva(codiva),_tipodet(tipodet),_tipocr(tipocr),_tipoatt(tipoatt),_intra(intra)
 | 
						|
  {}
 | 
						|
};
 | 
						|
 | 
						|
// TRigaiva_array 
 | 
						|
// Tabella per il calcolo degli imponibili Iva
 | 
						|
class TRigaiva_array : public TArray
 | 
						|
{
 | 
						|
public:
 | 
						|
  bool add_riga(const real& imponibile, const real& imposta, 
 | 
						|
                const real& imponibilep, const real& impostap, 
 | 
						|
                const char* codiva, int tipodet, int tipocr, bool intra, int tipoatt); 
 | 
						|
 | 
						|
  bool add_riga(const TRectype& rmi);
 | 
						|
  
 | 
						|
  TRigaiva& riga(int i) { return (TRigaiva&)(*this)[i]; }
 | 
						|
  const TRigaiva& riga(int i) const { return (const TRigaiva&)(*this)[i]; }
 | 
						|
};
 | 
						|
 | 
						|
struct TTipodoc : public TObject
 | 
						|
{
 | 
						|
  TString4 _tipodoc;
 | 
						|
  TString _descrdoc;
 | 
						|
  real    _totdoc;
 | 
						|
  
 | 
						|
  TTipodoc (const char* tipodoc, const char* descrdoc, const real& totdoc):
 | 
						|
  _tipodoc(tipodoc),_descrdoc(descrdoc),_totdoc(totdoc) {}
 | 
						|
};
 | 
						|
 | 
						|
class TTipodoc_array : public TArray
 | 
						|
{
 | 
						|
public:
 | 
						|
  bool add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc);  
 | 
						|
  const TTipodoc& riga(int i) const { return (TTipodoc&)(*this)[i]; }
 | 
						|
};
 | 
						|
 | 
						|
struct TRiga : public TObject
 | 
						|
{
 | 
						|
  real     _imponibile, _imposta, _implordo;    //totali del periodo
 | 
						|
  real     _imponibilep, _impostap, _implordop; //totali progressivi
 | 
						|
  TString4 _codiva;
 | 
						|
  
 | 
						|
  TRiga (const real& imponibile, const real& imposta, const real& implordo, const real& imponibilep, const real& impostap, const real& implordop, const char* codiva):
 | 
						|
  _imponibile(imponibile),_imposta(imposta),_implordo(implordo),_imponibilep(imponibilep),_impostap(impostap),_implordop(implordop),_codiva(codiva) {} 
 | 
						|
};
 | 
						|
 | 
						|
class TRiga_array : public TArray
 | 
						|
{
 | 
						|
public:
 | 
						|
  bool add_riga(const real& imponibile, const real& imposta, const real& implordo, const real& imponibilep, const real& impostap, const real& implordop, const char* codiva); 
 | 
						|
 | 
						|
  const TRiga& riga(int i) const { return (const TRiga&)(*this)[i]; }
 | 
						|
  TRiga& riga(int i) { return (TRiga&)(*this)[i]; }
 | 
						|
};  
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
// Arrotondamenti IVA
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
 | 
						|
enum TRound_mode { rm_unknown, rm_round, rm_ceil, rm_millelire };
 | 
						|
 | 
						|
class TIva_round : public TObject
 | 
						|
{                
 | 
						|
  static TRound_mode _def_mode;
 | 
						|
  static int _def_decimals;
 | 
						|
  TRound_mode _mode;
 | 
						|
  int _decimals;
 | 
						|
 | 
						|
public: // Low level functions (rare usage)
 | 
						|
  void set_default_mode(TRound_mode m, int d);   
 | 
						|
  void set_mode(TRound_mode m, int d);
 | 
						|
 | 
						|
public: // High level functions (common usage) 
 | 
						|
  virtual bool ok() const { return _mode != rm_unknown; }
 | 
						|
 | 
						|
  // Call this before the first call to round!
 | 
						|
  void set_default_iva_mode(int year, bool declaration = false, long firm = 0L); 
 | 
						|
  
 | 
						|
  void round(real& n) const;
 | 
						|
  TIva_round();
 | 
						|
};
 | 
						|
 | 
						|
real indetraibile_al(const TString& codind, const TCausale& caus, int annodoc,
 | 
						|
										 int& tipodet, const bool is_liq = false);
 | 
						|
int analizza_IVA(const real& imptot, const real& ivatot, const real perc_ind,
 | 
						|
								 const bool corrispettivo, const bool iva_ind_al_costo, const TString& codiva,
 | 
						|
                 real& imp_det, real& iva_det, real& imp_ind, real& iva_ind);
 | 
						|
int get_tipodet_from_rmi(const TRectype& rmi, const TRectype& mv, real& percind, const bool is_liq = false);
 | 
						|
 | 
						|
 | 
						|
#endif
 |