Patch level : 12.0 888

Files correlati     : cg0.exe cg0800a.rep cg4.exe cg4b00a.rep
Commento            :

Aggiornate stampe prpgressivi avanzate
corretto errore reverse_charge e causale collegata
This commit is contained in:
Alessandro Bonazzi 2019-10-15 18:41:05 +02:00
parent 8f2aec0049
commit b0ca7088b9
6 changed files with 29 additions and 13 deletions

View File

@ -683,9 +683,9 @@ void TPrimanota_application::init_mask(TMask& m)
}
TEdit_field& rc = m.efield(F_REVCHARGE);
rc.show(cc.iva() == iva_acquisti && cc.reverse_charge());
rc.show(cc.iva() == iva_acquisti && cc.reverse_charge_pubb());
m.efield(F_MOVCOLL).show((cc.iva() == iva_acquisti && cc.reverse_charge()) ||
m.efield(F_MOVCOLL).show((cc.iva() == iva_acquisti && cc.reverse_charge_pubb()) ||
(cc.iva() == iva_vendite && cc.causale_reg_iva()));
// m.efield(F_GOCOLL).show((c.iva() == iva_acquisti && c.reverse_charge()) ||
// (c.iva() == iva_vendite && c.causale_reg_iva()));
@ -858,7 +858,7 @@ bool TPrimanota_application::get_next_key(TToken_string& tmp)
else
tmp.add(m.get(F_DATACOMP));
if (_iva != nessuna_iva)
if (m.find_by_id(F_DATACOMPCR) && _iva != nessuna_iva)
{
tmp.add(F_DATACOMPCR); // Ricopia data competenza
if (m.field(F_DATACOMPCR).empty())
@ -1689,7 +1689,7 @@ int TPrimanota_application::write(const TMask& m)
int TPrimanota_application::rewrite(const TMask& m)
{
if (cached_causale(_rel->file().get(MOV_CODCAUS), _rel->file().get_int(MOV_ANNOES)).reverse_charge())
if (cached_causale(_rel->file().get(MOV_CODCAUS), _rel->file().get_int(MOV_ANNOES)).reverse_charge_pubb())
{
const long movcoll = m.get_long(F_MOVCOLL);

View File

@ -2332,8 +2332,8 @@ bool TPrimanota_application::caus_modify_handler(TMask_field& f, KEY key)
}
if (c.iva() != nessuna_iva && mask_ok)
{
m.efield(F_REVCHARGE).show(c.iva() == iva_acquisti && c.reverse_charge());
m.efield(F_MOVCOLL).show((c.iva() == iva_acquisti && c.reverse_charge()) ||
m.efield(F_REVCHARGE).show(c.iva() == iva_acquisti && c.reverse_charge_pubb());
m.efield(F_MOVCOLL).show((c.iva() == iva_acquisti && c.reverse_charge_pubb()) ||
(c.iva() == iva_vendite && c.causale_reg_iva()));
// m.efield(F_GOCOLL).show((c.iva() == iva_acquisti && c.reverse_charge()) ||
// (c.iva() == iva_vendite && c.causale_reg_iva()));
@ -3084,7 +3084,7 @@ bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
mm.set(F_RITFIS, imposta, true);
}
} else
if (a.causale().reverse_charge())
if (a.causale().reverse_charge_pubb())
{
const real totale = mm.get_real(F_TOTALE) + mm.get_real(F_RITFIS);
const real imposta = codiva.imposta(totale);
@ -3177,7 +3177,7 @@ bool TPrimanota_application::activate_split_payment(TMask& m)
TMask_field* sp = m.find_by_id(F_SPLITPAY);
if (sp != NULL)
{
if (clifo() == "C" && m.get_int(F_ANNOIVA) >= 2015 && !causale().reverse_charge())
if (clifo() == "C" && m.get_int(F_ANNOIVA) >= 2015 && !causale().reverse_charge_pubb())
{
const TRectype& cliente = cache().get_rec(LF_CLIFO, "C", m.get(F_CODCLIFOR));
yes = cliente.get_bool(CLI_SPLITPAY);
@ -3228,7 +3228,7 @@ bool TPrimanota_application::is_split_payment() const
s = 'N';
if (iva() == nessuna_iva)
return false;
if (clifo() == "C" && m.get_int(F_ANNOIVA) >= 2015 && !causale().reverse_charge())
if (clifo() == "C" && m.get_int(F_ANNOIVA) >= 2015 && !causale().reverse_charge_pubb())
{
const TRectype& cliente = cache().get_rec(LF_CLIFO, "C", m.get(F_CODCLIFOR));
if (cliente.get_bool(CLI_SPLITPAY))

View File

@ -174,6 +174,12 @@ bool TCausale::reverse_charge() const
return rsi == 13 || rsi == 50 || rsi == 51; // Reverse charge!
}
bool TCausale::reverse_charge_pubb() const
{
const int rsi = regime_speciale();
return rsi == 13 || rsi == 19 || rsi == 50 || rsi == 51; // Reverse charge!
}
bool TCausale::esclusione_allegati() const
{ return _rec.get_bool(CAU_ALLEG); }

View File

@ -40,7 +40,8 @@ public:
bool intra() const;
bool valintra() const;
bool soloiva() const;
bool reverse_charge() const;
bool reverse_charge() const;
bool reverse_charge_pubb() const;
bool regolarizzazione() const;
bool ril_fat_em_ric() const;
bool datareg_prec() const;

View File

@ -717,8 +717,14 @@ real TCodiceIVA::lordo(const real& imponibile, int ndec, const char* codval) con
bool TCodiceIVA::reverse_charge() const
{
const int rsi = regime_speciale();
return rsi == 13 || rsi == 50 || rsi == 51; // Reverse charge!
const int rsi = regime_speciale();
return rsi == 13 || rsi == 50 || rsi == 51; // Reverse charge!
}
bool TCodiceIVA::reverse_charge_pubb() const
{
const int rsi = regime_speciale();
return rsi == 13 || rsi == 19 || rsi == 50 || rsi == 51; // Reverse charge! con aggiunta dienti pubblici
}
///////////////////////////////////////////////////////////

View File

@ -161,12 +161,15 @@ public: // TObject
bool has_plafond() const { return get_int("S3") > 0; }
bool sospeso() const { return get_bool("B2"); }
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"); }
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
bool reverse_charge() const;
bool reverse_charge() const;
bool reverse_charge_pubb() const;
int regime_speciale() const { return get_int("I5");}
const TString& natura() const { return get("S12"); }