Patch level : 12.0 nopatch
Files correlati : Commento : aggiunti metodi a codice IVA e Causale
This commit is contained in:
parent
08e3484a19
commit
72d427f397
@ -84,6 +84,12 @@ class TProgind;
|
||||
#define PROVV_BIL "B"
|
||||
#define PROVV_CESP "C"
|
||||
|
||||
#define IVA_DA_VENTILARE "VE"
|
||||
#define IVA_ESENTE "ES"
|
||||
#define IVA_NON_IMPONIBILE "NI"
|
||||
#define IVA_NON_SOGGETTA "NS"
|
||||
#define REVERSE_CHARGE "RC"
|
||||
|
||||
// Defines per TInteressi_IVA_table. Servono per comporre i nomi dei campi
|
||||
|
||||
#define P_1_TRIMESTRE 0
|
||||
@ -374,6 +380,7 @@ public:
|
||||
const TString & causale_reg_iva() const;
|
||||
const TString & tipo_doc() const;
|
||||
const TString & codice_registro() const { return _rec.get(CAU_REG); }
|
||||
const TString & causale_770() const { return _rec.get(CAU_M770); }
|
||||
const TRegistro& reg() const { return cached_registro(codice_registro(), _year); }
|
||||
TipoIVA iva() const { return _iva; }
|
||||
int regime_speciale() const;
|
||||
@ -419,23 +426,37 @@ protected:
|
||||
|
||||
public: // TObject
|
||||
virtual bool ok() const { return !empty(); }
|
||||
TCodiceIVA& operator =(const TCodiceIVA & iva) { copy(iva) ; return *this;}
|
||||
TCodiceIVA& operator =(const TCodiceIVA & iva) { copy(iva); return *this; }
|
||||
TObject* dup() const { return new TCodiceIVA(*this); }
|
||||
bool read(const char* codice);
|
||||
bool read(const char* codice);
|
||||
const TString& codice() const { return get("CODTAB"); }
|
||||
const TString& descrizione() const { return get("S0"); }
|
||||
const TString& descrizione() const { return get("S0"); }
|
||||
const real percentuale() const { return get_real("R0"); }
|
||||
const real moltiplicatore_percentuale() const { return get_real("R0") / CENTO; }
|
||||
const TString & aliquota() const { return get("R0"); }
|
||||
const TString& tipo() const { return get("S1"); }
|
||||
const TString& IVA11_vendite() const { return get("S2"); }
|
||||
const TString& IVA11_acquisti() const { return get("S9"); }
|
||||
const bool iva_imponibile() const { return tipo().empty() || tipo() == REVERSE_CHARGE; }
|
||||
const bool iva_da_ventilare() const { return tipo() == IVA_DA_VENTILARE; }
|
||||
const bool iva_esente() const { return tipo() == IVA_ESENTE; }
|
||||
const bool iva_non_imponibile() const { return tipo() == IVA_NON_IMPONIBILE; }
|
||||
const bool iva_non_soggetta() const { return tipo() == IVA_NON_SOGGETTA; }
|
||||
const int tipo_IVA_agricola() const { return get_int("I4"); }
|
||||
const bool is_agricola() const { return tipo_IVA_agricola() != 0; }
|
||||
const TString& indetraibilita() const { return get("S4"); } // Codice indetraibilità alfanumerico (ex. 1, 3, 9)
|
||||
const TString& iva_a_cui_ventilare() const { return get("S6"); }
|
||||
const TString& tipo_comunicazione_attive() const { return get("S10"); }
|
||||
int tipo_indetraibilita() const; // Tipo indetraibilità: 1,3,9
|
||||
bool senza_imposta() { return percentuale() == ZERO;}
|
||||
int tipo_agenzie_viaggio() const { return get_int("S5"); }
|
||||
int tipo_plafond() const { return get_int("S3"); }
|
||||
bool senza_imposta() const { return percentuale() == ZERO;}
|
||||
|
||||
int allegato(char tipocf) const { return get_int(tipocf == 'F' ? "S8" : "S7"); }
|
||||
bool has_plafond() const { return get_int("S3") > 0; }
|
||||
bool sospeso() const { return get_bool("B2"); }
|
||||
bool codice_rimborso_infrannuale() const { return get_bool("B3"); }
|
||||
bool escluso_dal_rimborso() const { return get_bool("B4"); }
|
||||
bool escluso_esenti() const { return get_bool("B5"); }
|
||||
bool numeratore_pro_rata() const { return get_bool("B6"); }
|
||||
bool denominatore_pro_rata() const { return get_bool("B7"); }
|
||||
@ -444,6 +465,7 @@ public: // TObject
|
||||
real imposta(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola l'imposta sull'imponibile l'imposta e la ritorna
|
||||
real scorpora(real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Scorpora dall'imponibile l'imposta e la ritorna
|
||||
real lordo(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola il lordo dell'imponibile l'imposta e la ritorna
|
||||
real imponibile(const real& imposta, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola l'imponibile dell'imposta e lo ritorna
|
||||
|
||||
// bool reverse_charge() const;
|
||||
// bool reverse_charge_pubb() const;
|
||||
@ -1017,6 +1039,7 @@ public:
|
||||
int cg_rows() const { return cg().rows(); }
|
||||
int iva_rows() const { return iva().rows(); }
|
||||
bool solo_IVA() const { return iva_rows() > 0 && cg_rows() == 0; }
|
||||
bool is_IVA() const { return iva_rows() > 0; }
|
||||
|
||||
virtual int readat(TRecnotype nrec, word lockop = _nolock);
|
||||
virtual int read(word op = _isequal, word lockop = _nolock);
|
||||
@ -1544,8 +1567,10 @@ public:
|
||||
const TRectype & indsp(const int codindsp) const;
|
||||
|
||||
char tipo() const { return get_char(CLI_TIPOCF); }
|
||||
long codice() const { return get_long(CLI_CODCF); }
|
||||
long codice() const { return get_long(CLI_CODCF); }
|
||||
const TString & str_codice() const { return get(CLI_CODCF); }
|
||||
int alleg() const { return get_int(CLI_ALLEG); }
|
||||
bool gruppo_IVA() const { return get(CLI_ALLEG) == "G"; }
|
||||
bool ok() const { return !empty(); }
|
||||
|
||||
virtual int read(const TRectype& rec, word op = _isequal, word lockop = _nolock);
|
||||
|
@ -348,8 +348,8 @@ void TCausale::calcIVA()
|
||||
{
|
||||
TipoIVA i = nessuna_iva; // Tipo IVA di default
|
||||
bool c = false; // Corrispettivi di default
|
||||
|
||||
const TString& td = tipo_doc();
|
||||
|
||||
if (td.full())
|
||||
{
|
||||
const TRectype& tpd = cache().get("%TPD", td);
|
||||
@ -362,7 +362,7 @@ void TCausale::calcIVA()
|
||||
i = ri;
|
||||
if (i != ri)
|
||||
{
|
||||
error_box(FR("Tipo documento '%s' incompatibile con tipo registro"), (const char*)td);
|
||||
error_box(FR("Tipo documento '%s' incompatibile con tipo registro (registo %s)"), (const char*) td, (const char*) codice_registro());
|
||||
i = iva_errata;
|
||||
}
|
||||
c = tpd.get_bool("B0"); // B0 flag corrispettivi
|
||||
@ -1182,6 +1182,12 @@ real TCodiceIVA::imposta(const real& imponibile, int ndec, const char* codval) c
|
||||
return iva;
|
||||
}
|
||||
|
||||
real TCodiceIVA::imponibile(const real& imposta, int ndec, const char* codval) const
|
||||
{
|
||||
real imp = imposta * CENTO / percentuale() ;
|
||||
round(imp, ndec, codval);
|
||||
return imp;
|
||||
}
|
||||
real TCodiceIVA::scorpora(real& lordo, int ndec, const char* codval) const
|
||||
{
|
||||
round(lordo, ndec, codval); // Arrotondo importo lordo
|
||||
|
Loading…
x
Reference in New Issue
Block a user