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_BIL "B"
|
||||||
#define PROVV_CESP "C"
|
#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
|
// Defines per TInteressi_IVA_table. Servono per comporre i nomi dei campi
|
||||||
|
|
||||||
#define P_1_TRIMESTRE 0
|
#define P_1_TRIMESTRE 0
|
||||||
@ -374,6 +380,7 @@ public:
|
|||||||
const TString & causale_reg_iva() const;
|
const TString & causale_reg_iva() const;
|
||||||
const TString & tipo_doc() const;
|
const TString & tipo_doc() const;
|
||||||
const TString & codice_registro() const { return _rec.get(CAU_REG); }
|
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); }
|
const TRegistro& reg() const { return cached_registro(codice_registro(), _year); }
|
||||||
TipoIVA iva() const { return _iva; }
|
TipoIVA iva() const { return _iva; }
|
||||||
int regime_speciale() const;
|
int regime_speciale() const;
|
||||||
@ -419,23 +426,37 @@ protected:
|
|||||||
|
|
||||||
public: // TObject
|
public: // TObject
|
||||||
virtual bool ok() const { return !empty(); }
|
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); }
|
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& 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 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 & aliquota() const { return get("R0"); }
|
||||||
const TString& tipo() const { return get("S1"); }
|
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 int tipo_IVA_agricola() const { return get_int("I4"); }
|
||||||
const bool is_agricola() const { return tipo_IVA_agricola() != 0; }
|
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& 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
|
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"); }
|
int allegato(char tipocf) const { return get_int(tipocf == 'F' ? "S8" : "S7"); }
|
||||||
bool has_plafond() const { return get_int("S3") > 0; }
|
bool has_plafond() const { return get_int("S3") > 0; }
|
||||||
bool sospeso() const { return get_bool("B2"); }
|
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 escluso_esenti() const { return get_bool("B5"); }
|
||||||
bool numeratore_pro_rata() const { return get_bool("B6"); }
|
bool numeratore_pro_rata() const { return get_bool("B6"); }
|
||||||
bool denominatore_pro_rata() const { return get_bool("B7"); }
|
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 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 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 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() const;
|
||||||
// bool reverse_charge_pubb() const;
|
// bool reverse_charge_pubb() const;
|
||||||
@ -1017,6 +1039,7 @@ public:
|
|||||||
int cg_rows() const { return cg().rows(); }
|
int cg_rows() const { return cg().rows(); }
|
||||||
int iva_rows() const { return iva().rows(); }
|
int iva_rows() const { return iva().rows(); }
|
||||||
bool solo_IVA() const { return iva_rows() > 0 && cg_rows() == 0; }
|
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 readat(TRecnotype nrec, word lockop = _nolock);
|
||||||
virtual int read(word op = _isequal, word lockop = _nolock);
|
virtual int read(word op = _isequal, word lockop = _nolock);
|
||||||
@ -1544,8 +1567,10 @@ public:
|
|||||||
const TRectype & indsp(const int codindsp) const;
|
const TRectype & indsp(const int codindsp) const;
|
||||||
|
|
||||||
char tipo() const { return get_char(CLI_TIPOCF); }
|
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); }
|
int alleg() const { return get_int(CLI_ALLEG); }
|
||||||
|
bool gruppo_IVA() const { return get(CLI_ALLEG) == "G"; }
|
||||||
bool ok() const { return !empty(); }
|
bool ok() const { return !empty(); }
|
||||||
|
|
||||||
virtual int read(const TRectype& rec, word op = _isequal, word lockop = _nolock);
|
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
|
TipoIVA i = nessuna_iva; // Tipo IVA di default
|
||||||
bool c = false; // Corrispettivi di default
|
bool c = false; // Corrispettivi di default
|
||||||
|
|
||||||
const TString& td = tipo_doc();
|
const TString& td = tipo_doc();
|
||||||
|
|
||||||
if (td.full())
|
if (td.full())
|
||||||
{
|
{
|
||||||
const TRectype& tpd = cache().get("%TPD", td);
|
const TRectype& tpd = cache().get("%TPD", td);
|
||||||
@ -362,7 +362,7 @@ void TCausale::calcIVA()
|
|||||||
i = ri;
|
i = ri;
|
||||||
if (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;
|
i = iva_errata;
|
||||||
}
|
}
|
||||||
c = tpd.get_bool("B0"); // B0 flag corrispettivi
|
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;
|
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
|
real TCodiceIVA::scorpora(real& lordo, int ndec, const char* codval) const
|
||||||
{
|
{
|
||||||
round(lordo, ndec, codval); // Arrotondo importo lordo
|
round(lordo, ndec, codval); // Arrotondo importo lordo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user