Patch level : 12.0 862
Files correlati : fp0.exe Commento : Aggiunta importazione f1 per split payment
This commit is contained in:
parent
3b4bd8fb71
commit
7b8755a33a
@ -42,6 +42,7 @@ class TPassive_mask : public TAutomask
|
||||
real imposta;
|
||||
real aliquota;
|
||||
TString4 natura;
|
||||
char esigibilita;
|
||||
};
|
||||
|
||||
TLog_report* _log;
|
||||
@ -79,6 +80,8 @@ protected:
|
||||
int check_err() const;
|
||||
void contabilizza();
|
||||
TDate load_data() const;
|
||||
bool is_doc_split(const vector<iva>& riva) const;
|
||||
const TString& get_tot_imp_riva(const vector<iva>& riva) const;
|
||||
// Handlers
|
||||
static bool causfa_handler(TMask_field& f, KEY k);
|
||||
|
||||
@ -257,7 +260,7 @@ vector<TPassive_mask::iva>& TPassive_mask::get_righe_iva(TToken_string& keys)
|
||||
TString where_q; where_q << "WHERE PL_KEYPRGINVIO = '" << keys.get(0);
|
||||
where_q << "' AND PL_KEYHEADERFATT = '" << keys.get();
|
||||
where_q << "' AND PL_KEYBODYFATT = '" << keys.get() << "'";
|
||||
TString query; query << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA, PL_ALIQUOTAIVA AS ALIQUOTA, PL_NATURA AS NATURA\n" <<
|
||||
TString query; query << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA, PL_ALIQUOTAIVA AS ALIQUOTA, PL_NATURA AS NATURA, PL_ESIGIVA AS ESIGIBILITA\n" <<
|
||||
"FROM PAA2200F \n" << where_q;
|
||||
fp_db().sq_set_exec(query, false);
|
||||
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
||||
@ -265,7 +268,7 @@ vector<TPassive_mask::iva>& TPassive_mask::get_righe_iva(TToken_string& keys)
|
||||
TString imponibile = fp_db().sq_get("IMPONIBILE");
|
||||
TString imposta = fp_db().sq_get("IMPOSTA");
|
||||
if (imponibile != "0" || imposta != "0")
|
||||
riva.insert(riva.end(), { real(imponibile), real(imposta), real(fp_db().sq_get("ALIQUOTA")), fp_db().sq_get("NATURA") });
|
||||
riva.insert(riva.end(), { real(imponibile), real(imposta), real(fp_db().sq_get("ALIQUOTA")), fp_db().sq_get("NATURA"), fp_db().sq_get_char("ESIGIBILITA") });
|
||||
}
|
||||
return riva;
|
||||
}
|
||||
@ -654,7 +657,7 @@ int TPassive_mask::prepara_contab() const
|
||||
{
|
||||
TString prokeys = row->get(sf.cid2index(S_PROKEY));
|
||||
TToken_string keys(prokeys, ';');
|
||||
TString codcaus(get_codcaus(row->get(cid2index(S_TIPODOCSDI)), row->get(cid2index(S_FORNITORE))));
|
||||
const TString codcaus(get_codcaus(row->get(cid2index(S_TIPODOCSDI)), row->get(cid2index(S_FORNITORE))));
|
||||
|
||||
TString tipodoc(row->get(sf.cid2index(S_TIPODOCSDI)));
|
||||
if(tipodoc == "TD01" && !check_causale(codcaus, "FA", true))
|
||||
@ -691,13 +694,19 @@ int TPassive_mask::prepara_contab() const
|
||||
totdoc.cut(0) << imp;
|
||||
}
|
||||
real rit = fppro_db().set_keys(keys).get_ritenute();
|
||||
if(rit != ZERO)
|
||||
if (rit != ZERO)
|
||||
{
|
||||
contab_ini.set("TOTDOC", (abs(real(totdoc)) - rit).string());
|
||||
contab_ini.set("RITFIS", rit.string());
|
||||
}
|
||||
else if (is_doc_split(riva)) // Documento con split
|
||||
{
|
||||
contab_ini.set("TOTDOC", get_tot_imp_riva(riva));
|
||||
}
|
||||
else
|
||||
{
|
||||
contab_ini.set("TOTDOC", abs(real(totdoc)).string());
|
||||
}
|
||||
contab_ini.set("KEYFPPRO", prokeys);
|
||||
|
||||
// Esporto righe iva
|
||||
@ -880,6 +889,27 @@ TDate TPassive_mask::load_data() const
|
||||
return start_date;
|
||||
}
|
||||
|
||||
bool TPassive_mask::is_doc_split(const vector<iva>& riva) const
|
||||
{
|
||||
for (iva const& riga : riva)
|
||||
{
|
||||
if (riga.esigibilita == 'S')
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const TString & TPassive_mask::get_tot_imp_riva(const vector<iva>& riva) const
|
||||
{
|
||||
real tot = ZERO;
|
||||
for (iva const& riga : riva)
|
||||
{
|
||||
if (riga.imposta > ZERO)
|
||||
tot += riga.imponibile;
|
||||
}
|
||||
return get_tmp_string() << abs(tot).string();
|
||||
}
|
||||
|
||||
void TPassive_mask::new_forn()
|
||||
{
|
||||
TSheet_field& sf = sfield(F_ERR);
|
||||
|
Loading…
x
Reference in New Issue
Block a user