FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=36301
This commit is contained in:
@@ -219,14 +219,29 @@ function model_bgt_budgetmutatie()
|
||||
|
||||
if ((!jsondata.amountto || jsondata.amountto == 0) && (!jsondata.vatto || jsondata.vatto == 0))
|
||||
abort_with_warning(L("bgt_budgetmutatie_err2").format(L("bgt_budgetmutatie_bedrag"), L("bgt_budgetmutatie_btwbedrag")));
|
||||
jsondata.amountfrom = -1 * jsondata.amountto;
|
||||
jsondata.vatfrom = -1 * jsondata.vatto;
|
||||
}
|
||||
|
||||
this.hook_pre_put = function (params, jsondata, key)
|
||||
{
|
||||
if ((!jsondata.amountto || jsondata.amountto == 0) && (!jsondata.vatto || jsondata.vatto == 0))
|
||||
abort_with_warning(L("bgt_budgetmutatie_err2").format(L("bgt_budgetmutatie_bedrag"), L("bgt_budgetmutatie_btwbedrag")));
|
||||
jsondata.amountfrom = -1 * jsondata.amountto;
|
||||
jsondata.vatfrom = -1 * jsondata.vatto;
|
||||
}
|
||||
|
||||
var budget_key = getQParamInt("budgetcommon", -1);
|
||||
var mutatie_key = getQParamInt("id", -1);
|
||||
if (budget_key > -1)
|
||||
{
|
||||
var v_where = ( mutatie_key > -1
|
||||
? "bgt_budgetmutatie_key = {0}".format(mutatie_key)
|
||||
: "bgt_budget_key_van = {0} or bgt_budget_key_naar = {0}".format(budget_key)
|
||||
);
|
||||
this.REST_GET = generic_REST_GET(this, {
|
||||
"GET": {
|
||||
"wheres": ["bgt_budget_key_van = {0} or bgt_budget_key_naar = {0}".format(budget_key)]
|
||||
"wheres": [v_where]
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -121,11 +121,23 @@ function model_mld_opdr()
|
||||
"typ": "date"
|
||||
},
|
||||
"estimate": {
|
||||
"dbs": "mld_opdr_kosten_refiat",
|
||||
"dbs": "estimate",
|
||||
"sql": "CASE WHEN mld_statusopdr_key=10 THEN mld_opdr_kosten END",
|
||||
"sqlshow": true,
|
||||
"hidden_fld": true,
|
||||
"label": "Raming",
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"defaultvalue": "0",
|
||||
"total": true
|
||||
},
|
||||
"contracted": {
|
||||
"dbs": "contracted",
|
||||
"sql": "CASE WHEN mld_statusopdr_key<>10 THEN mld_opdr_kosten END",
|
||||
"sqlshow": true,
|
||||
"hidden_fld": true,
|
||||
"label": L("bgt_gecontracteerd"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"amount": {
|
||||
@@ -258,7 +270,8 @@ function model_mld_opdr()
|
||||
if (!obj.sequence && obj.sequence!=0)
|
||||
abort_with_warning("Vul een volgnummer voor het contract in.");
|
||||
|
||||
checkAanwezigBudget(obj.costtype);
|
||||
var v_costtype = (obj.costtype ? obj.costtype : getQParamInt("costtype", -1));
|
||||
checkAanwezigBudget(v_costtype);
|
||||
|
||||
if (parent_key > -1) // Bij kopie van opdracht geen nieuw nummer genereren.
|
||||
{
|
||||
@@ -293,15 +306,17 @@ function model_mld_opdr()
|
||||
// Nieuw contract, dus volgnummer is altijd uniek hierbinnen.
|
||||
}
|
||||
|
||||
checkBudgetoverschrijding(obj);
|
||||
checkBudgetoverschrijding(obj.id, obj.costtype, obj.amount, obj.vat);
|
||||
}
|
||||
|
||||
this.hook_pre_put = function(params, obj, key)
|
||||
{
|
||||
checkAanwezigBudget(obj.costtype);
|
||||
var v_costtype = (obj.costtype ? obj.costtype : getQParamInt("costtype", -1));
|
||||
checkAanwezigBudget(v_costtype);
|
||||
|
||||
// Is de combinatie projectnummer/volgnummer nog steeds uniek?
|
||||
var sql = "SELECT p.bgt_project_key"
|
||||
+ " , o.prs_kostensoort_key"
|
||||
+ " , o.mld_opdr_ordernr"
|
||||
+ " FROM bgt_project p"
|
||||
+ " , bgt_kostenrubriek r"
|
||||
@@ -316,9 +331,37 @@ function model_mld_opdr()
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var v_ordernr = oRs("mld_opdr_ordernr").Value;
|
||||
var v_project_key = oRs("bgt_project_key").Value;
|
||||
var v_cur_costtype_key = oRs("prs_kostensoort_key").Value;
|
||||
oRs.Close();
|
||||
checkUniekContractnummer(key, v_project_key, v_ordernr, obj.sequence);
|
||||
checkBudgetoverschrijding(obj);
|
||||
if (v_cur_costtype_key != obj.costtype)
|
||||
{ // contract verplaatsen naar ander kostensoort
|
||||
checkBudgetoverschrijding(obj.id, v_cur_costtype_key, 0, 0); // bedrag van deze kostensoort verwijderen
|
||||
checkBudgetoverschrijding(-1, obj.costtype, obj.amount, obj.vat); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
|
||||
}
|
||||
else
|
||||
{
|
||||
checkBudgetoverschrijding(obj.id, obj.costtype, obj.amount, obj.vat);
|
||||
}
|
||||
}
|
||||
|
||||
this.hook_pre_delete = function(params, key)
|
||||
{
|
||||
var sql = "SELECT MAX(o.prs_kostensoort_key) kostensoort"
|
||||
+ " , COUNT(f.fin_factuur_key) aantal"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , fin_factuur f"
|
||||
+ " WHERE o.mld_opdr_key = f.mld_opdr_key(+)"
|
||||
+ " AND o.mld_opdr_key = " + key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var aantal_facturen = oRs("aantal").Value;
|
||||
var prs_kostensoort = oRs("kostensoort").Value;
|
||||
oRs.Close();
|
||||
if (aantal_facturen > 0)
|
||||
abort_with_warning("Verwijder eerst de facturen bij dit contract.");
|
||||
|
||||
// Eerst proberen of er automatisch terug geboekt moet worden doot bedrag te muteren naar 0.
|
||||
checkBudgetoverschrijding(key, prs_kostensoort, 0, 0);
|
||||
}
|
||||
|
||||
var gparams = {
|
||||
@@ -374,63 +417,117 @@ function model_mld_opdr()
|
||||
abort_with_warning("Maak eerst een budget aan voor deze kostensoort voordat er contracten aan gekoppeld worden.");
|
||||
}
|
||||
|
||||
function checkBudgetoverschrijding(data)
|
||||
function checkBudgetoverschrijding(data_id, data_costtype, data_amount, data_vat)
|
||||
{
|
||||
var sql = "SELECT MAX(COALESCE(b.bgt_budget_bedrag, 0)) - SUM(COALESCE(o.mld_opdr_kosten, 0)) - NVL(" + data.amount + ",0) over_exc"
|
||||
+ " , MAX(COALESCE(b.bgt_budget_btwbedrag, 0)) - SUM(COALESCE(o.mld_opdr_kosten_btw, 0)) - NVL(" + data.vat + ",0) over_btw"
|
||||
+ " , MAX(c.bgt_budget_key) budget_key_van"
|
||||
+ " , MAX(b.bgt_budget_key) budget_key_naar"
|
||||
var sql = "SELECT MAX(b.bgt_budget_key) budget_s"
|
||||
+ " , MAX(c.bgt_budget_key) budget_r"
|
||||
+ " , MAX(COALESCE(b.bgt_budget_bedrag, 0)) budget_exc"
|
||||
+ " , MAX(COALESCE(b.bgt_budget_btwbedrag, 0)) budget_btw"
|
||||
+ " FROM bgt_budget b"
|
||||
+ " , mld_opdr o"
|
||||
+ " , bgt_budgetmutatie m"
|
||||
+ " , (SELECT r.bgt_project_key"
|
||||
+ " , bgt_budget_key"
|
||||
+ " FROM bgt_budget r"
|
||||
+ " WHERE r.bgt_budget_isreserve = 1"
|
||||
+ " WHERE r.bgt_budget_isreserve = 1"
|
||||
+ " ) c"
|
||||
+ " WHERE b.prs_kostensoort_key = o.prs_kostensoort_key"
|
||||
+ " AND b.bgt_project_key = c.bgt_project_key(+)"
|
||||
+ " AND b.prs_kostensoort_key = " + data.costtype;
|
||||
+ " WHERE b.bgt_project_key = c.bgt_project_key(+)"
|
||||
+ " AND b.prs_kostensoort_key = " + data_costtype;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var over_exc = oRs("over_exc").Value;
|
||||
var over_btw = oRs("over_btw").Value;
|
||||
var budget_key_van = oRs("budget_key_van").Value;
|
||||
var budget_key_naar = oRs("budget_key_naar").Value;
|
||||
var budget_key_res = oRs("budget_r").Value;
|
||||
var budget_key_srt = oRs("budget_s").Value;
|
||||
var budget_exc = oRs("budget_exc").Value;
|
||||
var budget_btw = oRs("budget_btw").Value;
|
||||
oRs.Close();
|
||||
over_exc = (over_exc > 0 ? 0 : over_exc);
|
||||
over_inc = (over_btw > 0 ? 0 : over_btw);
|
||||
|
||||
if (over_exc < 0 || over_btw < 0)
|
||||
var amount_old_exc = 0;
|
||||
var amount_old_btw = 0;
|
||||
if (data_id > -1)
|
||||
{
|
||||
// Door het toe te voegen contract ontstaat er een tekort op het budget.
|
||||
// Boek het te tekort over vanaf de algemene reserve.
|
||||
if (!budget_key_van)
|
||||
abort_with_warning("Het project heeft geen algemeen reserve waaruit de budgetoverschrijding kan worden overgeboekt.");
|
||||
|
||||
var sql_ins = "INSERT INTO bgt_budgetmutatie"
|
||||
+ "( bgt_budgetmutatie_datum"
|
||||
+ ", bgt_budgetmutatie_omschrijving"
|
||||
+ ", prs_perslid_key" // not null!
|
||||
+ ", bgt_budget_key_van"
|
||||
+ ", bgt_budget_bedrag_van"
|
||||
+ ", bgt_budget_btwbedrag_van"
|
||||
+ ", bgt_budget_key_naar"
|
||||
+ ", bgt_budget_bedrag_naar"
|
||||
+ ", bgt_budget_btwbedrag_naar"
|
||||
//2017.3 + ", bgt_budgetmutatie_reserve"
|
||||
+ ") VALUES"
|
||||
+ "( SYSDATE"
|
||||
+ ", 'AO Automatische overboeking'"
|
||||
+ ", " + user_key
|
||||
+ ", " + budget_key_van
|
||||
+ ", " + over_exc
|
||||
+ ", " + over_btw
|
||||
+ ", " + budget_key_naar
|
||||
+ ", " + (-1 * over_exc)
|
||||
+ ", " + (-1 * over_btw)
|
||||
//2017.3 + ", 1"
|
||||
+ ")";
|
||||
Oracle.Execute(sql_ins);
|
||||
var sql = "SELECT COALESCE(t.mld_opdr_kosten, 0) amount_old_exc"
|
||||
+ " , COALESCE(t.mld_opdr_kosten_btw, 0) amount_old_btw"
|
||||
+ " FROM mld_opdr t"
|
||||
+ " WHERE t.prs_kostensoort_key = " + data_costtype
|
||||
+ " AND t.mld_opdr_key = " + data_id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
amount_old_exc = oRs("amount_old_exc").Value;
|
||||
amount_old_btw = oRs("amount_old_btw").Value;
|
||||
oRs.Close();
|
||||
}
|
||||
var sql = "SELECT SUM(o.mld_opdr_kosten) amount_total_exc"
|
||||
+ " , SUM(o.mld_opdr_kosten_btw) amount_total_btw"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE o.prs_kostensoort_key = " + data_costtype;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var amount_sum_exc = oRs("amount_total_exc").Value;
|
||||
var amount_sum_btw = oRs("amount_total_btw").Value;
|
||||
oRs.Close();
|
||||
var sql = "SELECT SUM(m1.bgt_budget_bedrag_van) reserve_exc"
|
||||
+ " , SUM(m1.bgt_budget_btwbedrag_van) reserve_btw"
|
||||
+ " FROM bgt_budget b1"
|
||||
+ " , bgt_budget b2"
|
||||
+ " , bgt_budgetmutatie m1"
|
||||
+ " WHERE b2.bgt_budget_isreserve = 1"
|
||||
+ " AND b1.bgt_project_key = b2.bgt_project_key"
|
||||
+ " AND m1.bgt_budget_key_van = b2.bgt_budget_key"
|
||||
+ " AND m1.bgt_budget_Key_naar = b1.bgt_budget_key"
|
||||
+ " AND b1.prs_kostensoort_key = " + data_costtype;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var reserve_exc = oRs("reserve_exc").Value;
|
||||
var reserve_btw = oRs("reserve_btw").Value;
|
||||
oRs.Close();
|
||||
//
|
||||
var bedrag_exc = 0;
|
||||
var bedrag_btw = 0;
|
||||
|
||||
if (amount_old_exc < data_amount)
|
||||
{
|
||||
// verhoging contractwaarde exc
|
||||
var overschot_exc = budget_exc - amount_sum_exc - (data_amount - amount_old_exc);
|
||||
bedrag_exc = (overschot_exc < 0 ? overschot_exc : 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// verlaging contractwaarde exc
|
||||
var overschot_exc = reserve_exc - (data_amount - amount_old_exc);
|
||||
bedrag_exc = -1 * (overschot_exc > 0 ? reserve_exc : (data_amount - amount_old_exc) );
|
||||
}
|
||||
//
|
||||
if (amount_old_btw < data_vat)
|
||||
{
|
||||
// verhoging contractwaarde btw
|
||||
var overschot_btw = budget_btw - amount_sum_btw - (data_vat - amount_old_btw);
|
||||
bedrag_btw = (overschot_btw < 0 ? overschot_btw : 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// verlaging contractwaarde btw
|
||||
var overschot_btw = reserve_btw - (data_vat - amount_old_btw);
|
||||
bedrag_btw = -1 * (overschot_btw > 0 ? reserve_btw : (data_vat - amount_old_btw) );
|
||||
}
|
||||
|
||||
var sql_m = "INSERT INTO bgt_budgetmutatie"
|
||||
+ "( bgt_budgetmutatie_datum"
|
||||
+ ", bgt_budgetmutatie_omschrijving"
|
||||
+ ", prs_perslid_key" // not null!
|
||||
+ ", bgt_budget_key_van"
|
||||
+ ", bgt_budget_bedrag_van"
|
||||
+ ", bgt_budget_btwbedrag_van"
|
||||
+ ", bgt_budget_key_naar"
|
||||
+ ", bgt_budget_bedrag_naar"
|
||||
+ ", bgt_budget_btwbedrag_naar"
|
||||
//2017.3 + ", bgt_budgetmutatie_reserve"
|
||||
+ ") VALUES"
|
||||
+ "( SYSDATE"
|
||||
+ ", 'AO Automatische overboeking'"
|
||||
+ ", " + user_key
|
||||
+ ", " + budget_key_res
|
||||
+ ", " + bedrag_exc
|
||||
+ ", " + bedrag_btw
|
||||
+ ", " + budget_key_srt
|
||||
+ ", " + (-1 * bedrag_exc)
|
||||
+ ", " + (-1 * bedrag_btw)
|
||||
//2017.3 + ", 1"
|
||||
+ ")";
|
||||
Oracle.Execute(sql_m);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -74,12 +74,14 @@ function model_prs_kostensoort()
|
||||
"label": (S("bgt_enabled") ? L("prs_kostensoort_oms") : L("prs_kostensoort_opmerking")),
|
||||
"typ": "varchar",
|
||||
"required": (S("bgt_enabled") ? false : true),
|
||||
"hidden_fld": (S("bgt_enabled") ? true : false),
|
||||
"filter": "like"
|
||||
},
|
||||
"altcode": {
|
||||
"dbs": "prs_kostensoort_altcode",
|
||||
"label": L("prs_kostensoort_altcode"),
|
||||
"typ": "varchar"
|
||||
"label": (S("bgt_enabled") ? L("prs_kostensoort_oms") : L("prs_kostensoort_altcode")),
|
||||
"typ": "varchar",
|
||||
"required": (S("bgt_enabled") ? true : false)
|
||||
},
|
||||
"refcode": {
|
||||
"dbs": "prs_kostensoort_refcode",
|
||||
|
||||
@@ -206,7 +206,7 @@ var authparamsBGTUSE = user.checkAutorisation("WEB_BGTUSE");
|
||||
{ label: L("lcl_period_to"),
|
||||
initEmpty: true
|
||||
});
|
||||
CHECKBOXTR(L("lcl_fin_total_sum"), "fldbgtinclbtw", "bgt_inclbtw", true);
|
||||
CHECKBOXTR(L("lcl_fin_total_sum"), "fldbgtinclbtw", "bgt_inclbtw", false);
|
||||
%>
|
||||
</table>
|
||||
</td><!-- end column 2-->
|
||||
|
||||
@@ -198,6 +198,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ (bgtrubr_key > 0 ? " AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
|
||||
+ (bgtgrp_key > 0 ? " AND ksg.prs_kostensoortgrp_key = " + bgtgrp_key : "")
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
|
||||
|
||||
sql += " ORDER BY bgt_project_omschrijving"
|
||||
@@ -246,6 +247,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ (bgtrubr_key > 0 ? " AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
|
||||
+ (bgtgrp_key > 0 ? " AND ksg.prs_kostensoortgrp_key = " + bgtgrp_key : "")
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
|
||||
|
||||
sql += " GROUP BY kr.bgt_kostenrubriek_oms,"
|
||||
@@ -293,24 +295,26 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , p.subproject deelproject"
|
||||
+ " , p.kostenrubriek rubriek"
|
||||
+ " , p.kostengroep groep"
|
||||
+ " , p.prs_kostensoortgrp_key"
|
||||
+ " , p.bgt_project_key"
|
||||
+ " , p.bgt_kostenrubriek_key"
|
||||
+ " , p.prs_kostensoortgrp_key"
|
||||
+ " , p.prs_kostensoort_key"
|
||||
+ " , p.kostensoort onderdeel"
|
||||
+ " , p.scode rcode"
|
||||
+ " , p.scode sortcode"
|
||||
+ " , MAX(BGT.getBudgetOpDatum(b.bgt_budget_key, 0, NULL)) budget_origineel"
|
||||
+ " , MAX(BGT.getBudgetOpDatum(b.bgt_budget_key, 0, SYSDATE)) budget_actueel"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, NULL, p.prs_kostensoort_key, 0, 'A', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, NULL, p.prs_kostensoort_key, 0, 'EMR', NULL)) budget_mutatie"
|
||||
+ " , MAX(BGT.getBudgetOpDatum(b.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", NULL)) budget_origineel"
|
||||
+ " , MAX(BGT.getBudgetOpDatum(b.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", SYSDATE)) budget_actueel"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, NULL, p.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'AR', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, NULL, p.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'EM', NULL)) budget_mutatie"
|
||||
+ " FROM bgt_v_project_full p"
|
||||
+ " , bgt_budget b"
|
||||
+ " WHERE p.prs_kostensoort_key = b.prs_kostensoort_key"
|
||||
+ " AND p.bgt_project_verwijder IS NULL"
|
||||
+ " AND b.bgt_budget_isreserve = 0" // reserve bestaat alleen op rubriek
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND p.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ (bgtrubr_key > 0 ? "AND p.bgt_kostenrubriek_key = " + bgtrubr_key : "")
|
||||
+ (bgtgrp_key > 0 ? " AND p.prs_kostensoortgrp_key = " + bgtgrp_key : "")
|
||||
+ " AND p.ins_discipline_key =" + bgtdisc_key;
|
||||
+ " AND p.ins_discipline_key = " + bgtdisc_key;
|
||||
sql1 += " GROUP BY p.kostengroep"
|
||||
+ ", p.prs_kostensoort_key"
|
||||
+ ", p.scode"
|
||||
@@ -342,10 +346,10 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , bd.budget_mutatie"
|
||||
+ " FROM bgt_v_project_full pr"
|
||||
+ " , (SELECT sb.prs_kostensoortgrp_key"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, NULL)) budget_origineel"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, SYSDATE)) budget_actueel"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, sb.prs_kostensoortgrp_key, -1, 0, 'A', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, sb.prs_kostensoortgrp_key, -1, 0, 'EMR', NULL)) budget_mutatie"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", NULL)) budget_origineel"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", SYSDATE)) budget_actueel"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, sb.prs_kostensoortgrp_key, -1, "+ (bgt_inclbtw ? 2 : 0) + ", 'AR', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, sb.prs_kostensoortgrp_key, -1, "+ (bgt_inclbtw ? 2 : 0) + ", 'EM', NULL)) budget_mutatie"
|
||||
+ " FROM bgt_budget sb"
|
||||
+ " WHERE sb.bgt_budget_isreserve = 0" // reserve bestaat alleen op rubriek
|
||||
+ " AND sb.prs_kostensoortgrp_key IS NOT NULL"
|
||||
@@ -355,6 +359,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ " GROUP BY sb.prs_kostensoortgrp_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.prs_kostensoortgrp_key = bd.prs_kostensoortgrp_key"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " UNION "
|
||||
+ "SELECT pr.project" // budget dat op rubriek staat, maar geen algemeen reserve is
|
||||
+ " , pr.subproject deelproject"
|
||||
@@ -374,8 +379,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , (SELECT sb.bgt_kostenrubriek_key"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, NULL)) budget_origineel"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, SYSDATE)) budget_actueel"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, NULL, NULL, 0, 'A', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, NULL, NULL, 0, 'EMR', NULL)) budget_mutatie"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, NULL, NULL, "+ (bgt_inclbtw ? 2 : 0) + ", 'AR', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, NULL, NULL, "+ (bgt_inclbtw ? 2 : 0) + ", 'EM', NULL)) budget_mutatie"
|
||||
+ " FROM bgt_budget sb"
|
||||
+ " WHERE sb.bgt_budget_isreserve = 0"
|
||||
+ " AND sb.prs_kostensoortgrp_key IS NULL "
|
||||
@@ -386,6 +391,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ " GROUP BY sb.bgt_kostenrubriek_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.prs_kostensoortgrp_key IS NULL"
|
||||
+ " AND (bd.budget_actueel <> 0 OR bd.budget_reserve <> 0 OR bd.budget_mutatie <> 0)";
|
||||
}
|
||||
@@ -409,8 +415,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , sb.bgt_kostenrubriek_key"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, NULL)) budget_origineel"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, SYSDATE)) budget_actueel"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, -1, -1, 0, 'A', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, -1, -1, 0, 'EMR', NULL)) budget_mutatie"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, -1, -1, 0, 'AR', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(sb.bgt_kostenrubriek_key, -1, -1, 0, 'EM', NULL)) budget_mutatie"
|
||||
+ " FROM bgt_budget sb"
|
||||
+ " WHERE sb.bgt_kostenrubriek_key IS NOT NULL"
|
||||
+ " AND sb.ins_discipline_key = " + bgtdisc_key
|
||||
@@ -419,6 +425,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , sb.bgt_kostenrubriek_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.bgt_project_key = bd.bgt_project_key"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key";
|
||||
|
||||
if (bgt_inclbtw)
|
||||
@@ -452,6 +459,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , sb.bgt_kostenrubriek_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.bgt_project_key = bd.bgt_project_key"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.rcode = 'R'"
|
||||
+ " AND pr.gcode IS NULL"
|
||||
+ " AND pr.scode IS NULL"
|
||||
@@ -489,7 +497,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , subproject"
|
||||
+ " FROM bgt_v_project_full tp"
|
||||
+ " WHERE tp.ins_discipline_key = " + bgtdisc_key
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND b.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND tp.bgt_project_verwijder IS NULL"
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND tp.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " ) db"
|
||||
+ " WHERE sb.bgt_project_key = db.bgt_project_key"
|
||||
+ " AND sb.bgt_project_key = mb.bgt_project_key"
|
||||
@@ -530,6 +539,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ (date_from ? " AND o.mld_opdr_datumbegin >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND o.mld_opdr_datumbegin < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.ins_discipline_key = " + bgtdisc_key
|
||||
+ " GROUP BY id.ins_discipline_key"
|
||||
+ " , pr.bgt_project_key"
|
||||
@@ -559,6 +569,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ (date_from ? " AND o.mld_opdr_datumbegin >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND o.mld_opdr_datumbegin < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.ins_discipline_key = " + bgtdisc_key
|
||||
+ " GROUP BY pr.ins_discipline_key"
|
||||
+ " , pr.bgt_project_key";
|
||||
@@ -587,6 +598,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ (date_from ? " AND f.fin_factuur_datum >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND f.fin_factuur_datum < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.ins_discipline_key = " + bgtdisc_key
|
||||
+ " GROUP BY id.ins_discipline_key"
|
||||
+ " , pr.bgt_project_key"
|
||||
@@ -618,6 +630,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ (date_from ? " AND f.fin_factuur_datum >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND f.fin_factuur_datum < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.ins_discipline_key = " + bgtdisc_key
|
||||
+ " GROUP BY id.ins_discipline_key"
|
||||
+ " , pr.bgt_project_key";
|
||||
@@ -767,7 +780,7 @@ var transitParam = buildTransitParam([]);
|
||||
{
|
||||
v = "<span class='details"+ (v<0 ? " negative" : "") +"' onclick='FcltMgr.stopPropagation(event); naarbudget({0},{1},{2},{3},{4},this)'>" + v +"</span>";
|
||||
if (groupby == 6)
|
||||
v = (v).format(oRs("bgt_project_key").Value, null, null, null);
|
||||
v = (v).format(bgtdisc_key, oRs("bgt_project_key").Value, null, null, null);
|
||||
else if (groupby == 5)
|
||||
{
|
||||
if (bgtproj_key_arr.length == 1)
|
||||
@@ -776,9 +789,9 @@ var transitParam = buildTransitParam([]);
|
||||
v = (v).format(bgtdisc_key, null, null, null, null);
|
||||
}
|
||||
else if (groupby == 4)
|
||||
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, null);
|
||||
v = (v).format(bgtdisc_key, oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, null);
|
||||
else if (groupby == 3)
|
||||
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, oRs("prs_kostensoort_key").Value);
|
||||
v = (v).format(bgtdisc_key, oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, oRs("prs_kostensoort_key").Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -810,11 +823,11 @@ var transitParam = buildTransitParam([]);
|
||||
v = (v).format(bgtdisc_key, null, null, null, null);
|
||||
}
|
||||
else if (groupby==4) /* opdrachten binnen de groep */
|
||||
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, null);
|
||||
v = (v).format(bgtdisc_key, oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, null);
|
||||
else if (groupby==3) /* opdrachten binnen de kostensoort */
|
||||
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, oRs("prs_kostensoort_key").Value);
|
||||
v = (v).format(bgtdisc_key, oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, oRs("prs_kostensoort_key").Value);
|
||||
else if (groupby==2) /* de opdracht */
|
||||
v = (v).format(null, null, null, oRs("mld_opdr_key").Value);
|
||||
v = (v).format(null, null, null, null, oRs("mld_opdr_key").Value);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ scaffolding(this_model,
|
||||
"reference",
|
||||
"startdate",
|
||||
"estimate",
|
||||
"amount",
|
||||
"contracted",
|
||||
"invoiced",
|
||||
"tobeinvoiced",
|
||||
"additional",
|
||||
|
||||
@@ -39,14 +39,6 @@ var model_params = {
|
||||
"budgetcostcategory",
|
||||
"costtypegroup"
|
||||
]
|
||||
},
|
||||
"list": {
|
||||
"columns": [
|
||||
"costtypegroup",
|
||||
"name",
|
||||
"remark",
|
||||
"altcode"
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
@@ -55,6 +47,13 @@ if (S("bgt_enabled"))
|
||||
model_params.search.requires = {
|
||||
"js": ["../bgt/bgt_budget.js"]
|
||||
};
|
||||
model_params.list = {
|
||||
"columns": [
|
||||
"costtypegroup",
|
||||
"name",
|
||||
"altcode"
|
||||
]
|
||||
};
|
||||
model_params.edit = {
|
||||
"requires": {
|
||||
"js": ["../bgt/bgt_budget.js"]
|
||||
@@ -67,7 +66,14 @@ if (S("bgt_enabled"))
|
||||
}
|
||||
else
|
||||
{
|
||||
model_params.list.columns.push("refcode");
|
||||
model_params.list = {
|
||||
"columns": [
|
||||
"costtypegroup",
|
||||
"name",
|
||||
"altcode",
|
||||
"refcode"
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
scaffolding(this_model, model_params);
|
||||
|
||||
Reference in New Issue
Block a user