TWYN#52228 foutmelding wijzigen factuurgegevens

svn path=/Website/trunk/; revision=37035
This commit is contained in:
Erik Groener
2018-02-19 09:36:41 +00:00
parent bd75abba8d
commit 6071e359b7

View File

@@ -321,7 +321,7 @@ function model_fin_factuur()
// Gebruik daarvoor die van mld_opdr.
setKostensoort(obj);
// Is het factuurnummer/volgnummer uniek binnen het project?
checkUniekFactuurnummer(-1, obj.budgetproject, obj.invoice);
checkUniekFactuurnummer(-1, obj.budgetdiscipline, obj.invoice);
// Bij een kopiefactuur van een origineel (factuurnummer zonder volgnummer)
// moet het originele factuurnummer de toevoeging "/1" krijgen.
// De vaste factuurnummers echter niet.
@@ -356,22 +356,50 @@ function model_fin_factuur()
setKostensoort(obj);
// Project-key kan als gevolg van de filtering niet aanwezig zijn.
// Haal deze dus maar op met behulp van de factuur-key.
var sql = "SELECT kr.bgt_project_key"
+ " FROM bgt_kostenrubriek kr"
var sql = "SELECT pr.ins_discipline_key"
+ " , kr.bgt_project_key"
+ " , TRUNC(fa.fin_factuur_advies) advies_datum"
+ " FROM bgt_project pr"
+ " , bgt_kostenrubriek kr"
+ " , prs_kostensoortgrp kg"
+ " , prs_kostensoort ks"
+ " , mld_opdr mo"
+ " , fin_factuur fa"
+ " WHERE kr.bgt_kostenrubriek_key = kg.bgt_kostenrubriek_key"
+ " WHERE pr.bgt_project_key = kr.bgt_project_key"
+ " AND kr.bgt_kostenrubriek_key = kg.bgt_kostenrubriek_key"
+ " AND kg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
+ " AND ks.prs_kostensoort_key = mo.prs_kostensoort_key"
+ " AND mo.mld_opdr_key = fa.mld_opdr_key"
+ " AND fa.fin_factuur_key = " + key;
var oRs = Oracle.Execute(sql);
var v_discipline_key = oRs("ins_discipline_key").Value;
var v_project_key = oRs("bgt_project_key").Value;
var v_advies_datum = new Date(oRs("advies_datum").Value);
oRs.Close();
// Is de combinatie factuurnummer/volgnummer nog steeds uniek?
checkUniekFactuurnummer(key, v_project_key, obj.invoice);
checkUniekFactuurnummer(key, v_discipline_key, obj.invoice);
// Zet van alle facturen met hetzelfde factuurnummer binnen het project de adviesdatum gelijk.
var v_old_adviesdatum = toDateString(v_advies_datum, true)
var v_new_adviesdatum = toDateString(obj.advice.midnight(), true);
if (v_old_adviesdatum != v_new_adviesdatum)
{
// alle adviesdatums voor dit factuurnummer aanpassen.
var sql_u = "UPDATE fin_factuur"
+ " SET fin_factuur_advies = " + obj.advice.toSQL()
+ " WHERE fin_factuur_key IN"
+ " (SELECT fin_factuur_key"
+ " FROM fin_factuur f"
+ " , mld_opdr m"
+ " , bgt_v_project_full p"
+ " WHERE f.mld_opdr_key = m.mld_opdr_key"
+ " AND m.prs_kostensoort_key = p.prs_kostensoort_key"
+ " AND p.ins_discipline_key = " + v_discipline_key
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(obj.invoice)
+ " )";
Oracle.Execute(sql_u);
}
}
function setKostensoort(obj)
@@ -400,19 +428,21 @@ function model_fin_factuur()
return vast_factnr;
}
function checkUniekFactuurnummer(p_factuur_key, p_project_key, p_factuurnr)
function checkUniekFactuurnummer(p_factuur_key, p_discipline_key, p_factuurnr)
{
var sql = "SELECT count(*) aantal"
+ " FROM bgt_kostenrubriek r"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " , fin_factuur f"
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " WHERE p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = f.mld_opdr_key"
+ " AND r.bgt_project_key = " + p_project_key
+ " AND p.ins_discipline_key = " + p_discipline_key
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(p_factuurnr)
+ " AND f.fin_factuur_nr NOT IN"
+ " (SELECT d.fac_usrdata_code"