campo-sirio/cg/cglib03.h
alex d030bbabe2 Patch level : 4.0 667
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :

Riportata la versione 3.1 patch 766


git-svn-id: svn://10.65.10.50/trunk@14628 c028cbd2-c16b-5b4b-a496-9718f37d4682
2006-12-13 16:22:33 +00:00

153 lines
4.4 KiB
C++
Executable File

// cglib03.h
#ifndef __CGLIB03_H
#define __CGLIB03_H
#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();
};
int codind2tipodet(char codind, real& percind);
int get_tipodet_from_rmi(const TRectype& rmi, real& percind);
#endif