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 imposta;
|
||||||
real aliquota;
|
real aliquota;
|
||||||
TString4 natura;
|
TString4 natura;
|
||||||
|
char esigibilita;
|
||||||
};
|
};
|
||||||
|
|
||||||
TLog_report* _log;
|
TLog_report* _log;
|
||||||
@ -79,6 +80,8 @@ protected:
|
|||||||
int check_err() const;
|
int check_err() const;
|
||||||
void contabilizza();
|
void contabilizza();
|
||||||
TDate load_data() const;
|
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
|
// Handlers
|
||||||
static bool causfa_handler(TMask_field& f, KEY k);
|
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);
|
TString where_q; where_q << "WHERE PL_KEYPRGINVIO = '" << keys.get(0);
|
||||||
where_q << "' AND PL_KEYHEADERFATT = '" << keys.get();
|
where_q << "' AND PL_KEYHEADERFATT = '" << keys.get();
|
||||||
where_q << "' AND PL_KEYBODYFATT = '" << 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;
|
"FROM PAA2200F \n" << where_q;
|
||||||
fp_db().sq_set_exec(query, false);
|
fp_db().sq_set_exec(query, false);
|
||||||
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
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 imponibile = fp_db().sq_get("IMPONIBILE");
|
||||||
TString imposta = fp_db().sq_get("IMPOSTA");
|
TString imposta = fp_db().sq_get("IMPOSTA");
|
||||||
if (imponibile != "0" || imposta != "0")
|
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;
|
return riva;
|
||||||
}
|
}
|
||||||
@ -654,7 +657,7 @@ int TPassive_mask::prepara_contab() const
|
|||||||
{
|
{
|
||||||
TString prokeys = row->get(sf.cid2index(S_PROKEY));
|
TString prokeys = row->get(sf.cid2index(S_PROKEY));
|
||||||
TToken_string keys(prokeys, ';');
|
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)));
|
TString tipodoc(row->get(sf.cid2index(S_TIPODOCSDI)));
|
||||||
if(tipodoc == "TD01" && !check_causale(codcaus, "FA", true))
|
if(tipodoc == "TD01" && !check_causale(codcaus, "FA", true))
|
||||||
@ -691,13 +694,19 @@ int TPassive_mask::prepara_contab() const
|
|||||||
totdoc.cut(0) << imp;
|
totdoc.cut(0) << imp;
|
||||||
}
|
}
|
||||||
real rit = fppro_db().set_keys(keys).get_ritenute();
|
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("TOTDOC", (abs(real(totdoc)) - rit).string());
|
||||||
contab_ini.set("RITFIS", 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
|
else
|
||||||
|
{
|
||||||
contab_ini.set("TOTDOC", abs(real(totdoc)).string());
|
contab_ini.set("TOTDOC", abs(real(totdoc)).string());
|
||||||
|
}
|
||||||
contab_ini.set("KEYFPPRO", prokeys);
|
contab_ini.set("KEYFPPRO", prokeys);
|
||||||
|
|
||||||
// Esporto righe iva
|
// Esporto righe iva
|
||||||
@ -880,6 +889,27 @@ TDate TPassive_mask::load_data() const
|
|||||||
return start_date;
|
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()
|
void TPassive_mask::new_forn()
|
||||||
{
|
{
|
||||||
TSheet_field& sf = sfield(F_ERR);
|
TSheet_field& sf = sfield(F_ERR);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user