campo-sirio/cg/cg2103.h
guy cd25e0c500 cg2100.cpp Aggiunto test sulla congruenza del prorata
cg2100.h     Aggiunto F_ADJUST_PRORATA
cg2100c.uml  Aggiunto bottone di correzione prorata
cg2102.h     Aggiunti metodi per test prorata
cg2103.cpp   Aggiunta possibilita' di cambiare il prorata di un registro
cg2106.cpp   Aggiunti metodi per gestire correzione prorata


git-svn-id: svn://10.65.10.50/trunk@4019 c028cbd2-c16b-5b4b-a496-9718f37d4682
1996-12-18 16:17:47 +00:00

171 lines
4.1 KiB
C++
Executable File

#ifndef __CG2103_H
#define __CG2103_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __CONTO_H
#include "conto.h"
#endif
enum TipoIVA
{
iva_errata = -1,
nessuna_iva = 0,
iva_vendite = 1,
iva_acquisti = 2,
libro_giornale = 5,
iva_generica = 9
};
enum TipoConto
{
spr = 'G', // spese e rimborsi
aba = 'A', // abbuoni attivi
abp = 'P', // abbuoni passivi
rpf = 'R', // ritenute professionali
asp = 'L', // altre spese
dfc = 'C', // differenza cambio
tot = 'Z'
};
const char* iva2name(TipoIVA i);
class TRegistro : public TObject
{
bool read_att();
protected:
TRectype _rec, _att;
real _prorata;
public:
bool read(const char* code, int year);
bool reread();
TRegistro& operator =(const TRegistro& r);
virtual bool ok() const { return !_rec.empty(); }
int tipo() const;
TipoIVA iva() const;
bool corrispettivi() const;
bool sospeso() const { return _rec.get_bool("B1");}
const TString& name() const;
int year() const;
TDate last_reg() const { return _rec.get_date("D2"); }
TDate last_print() const { return _rec.get_date("D3"); }
long mese_stampa_ultima_liq() const { return _rec.get_long("I4"); }
long protocol() const { return _rec.get_long("I5"); }
const TString& attivita() const { return _rec.get("S8"); }
bool agenzia_viaggi();
const TString& tipo_attivita();
bool attivita_mista() { const char a = tipo_attivita()[0]; return a == 'E'; }
const real& prorata();
void set_prorata(const real& pro);
bool update(long uprotiva, const TDate& lastreg);
TRegistro(const char* code = "", int year = 0);
virtual ~TRegistro() {}
};
class TLibro_giornale : public TRegistro
{
public:
bool read(int year);
TDate global_last_print() const;
TLibro_giornale(int year = 0);
virtual ~TLibro_giornale() {}
};
class TCodiceIVA : private TRectype
{
public: // TObject
virtual bool ok() const { return !empty(); }
public:
bool read(const char* codice);
const TString& codice() const { return get("CODTAB"); }
real percentuale() const { return get_real("R0"); }
const TString& tipo() const { return get("S1"); }
real scorpora(real& imponibile) const; // Scorpora dall'imponibile l'imposta e la ritorna
TCodiceIVA(const char* codice = NULL);
virtual ~TCodiceIVA() {}
};
class TCausale : public TArray
{
TRectype _rec;
TRegistro _reg;
TipoIVA _iva;
bool _corrisp;
char _sezione_clifo, _sezione_ritsoc;
protected:
const TRectype* row(int num) const { return (const TRectype*)objptr(num); }
void calcIVA();
public: // TObject
virtual bool ok() const;
public:
TBill& bill(int num, TBill& c) const;
const char* codice() const;
const char* descrizione() const;
const char* desc_agg(int num) const;
bool data_doc() const;
bool num_doc() const;
bool apertura() const;
bool chiusura() const;
bool sezionale() const;
bool valuta() const;
bool intra() const;
bool valintra() const;
const TString& causale_inc_imm() const;
const TString& tipo_doc() const;
TRegistro& reg() const { return (TRegistro&)_reg; }
TipoIVA iva() const { return _iva; }
bool corrispettivi() const { return _corrisp; }
// bill deve essere il conto di ricavo
bool IVA2bill(const TCodiceIVA& iva, TBill& bill) const;
int tipomov() const;
bool saldaconto() const;
int link_m770() const;
bool similar(const TCausale& c) const;
char sezione(int riga) const;
char sezione_clifo();
char sezione_ritsoc();
virtual bool read(const char* cod, int year);
TCausale(const char* code = "", int year = 0);
virtual ~TCausale() {}
};
#define RIGA_IVA_DETRAIBILE 3
#define RIGA_IVA_NON_DETRAIBILE 4
#define RIGA_RITENUTE_FISCALI 8
#define RIGA_RITENUTE_SOCIALI 9
#define RIGA_ABBUONI_PASSIVI 9
#define RIGA_ABBUONI_ATTIVI 10
#define RIGA_SPESE 11
#define RIGA_RITENUTE 12
#define RIGA_DIFFCAM 13
#endif