KFHT#37609: Overzicht fiatteringsverzoeken.

svn path=/Website/trunk/; revision=32716
This commit is contained in:
Maykel Geerdink
2017-02-06 12:31:45 +00:00
parent ad769fe31d
commit 990f37f92c
2 changed files with 75 additions and 65 deletions

View File

@@ -489,7 +489,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"], js: ["jquery-ui.js"] });
case "CNT": return L("lcl_cnt_contract"); break; case "CNT": return L("lcl_cnt_contract"); break;
case "MLD": case "MLD":
case "GOED": return L("lcl_shared_order") + "<br>" + safe.html(oRs("type").Value); break; case "GOED": return L("lcl_shared_order") + "<br>" + safe.html(oRs("type").Value); break;
case "OFFERTE": return safe.html(oRs("type").Value) + "<br>" + safe.html(oRs("uitvoerende").Value); break; case "OFFERTE": return safe.html(oRs("type").Value); break;
case "FIN": case "FIN":
case "FIN2": return L("lcl_fin_factuur_type") + "<br>" + safe.html(oRs("type").Value); break; case "FIN2": return L("lcl_fin_factuur_type") + "<br>" + safe.html(oRs("type").Value); break;
default: INTERNAL_ERROR; default: INTERNAL_ERROR;
@@ -571,12 +571,14 @@ FCLTHeader.Requires({ plugins: ["jQuery"], js: ["jquery-ui.js"] });
rst.addColumn(new Column({caption: L("lcl_rfo_requestor"), content: "prs_perslid_naam_full", hasActions: true })); rst.addColumn(new Column({caption: L("lcl_rfo_requestor"), content: "prs_perslid_naam_full", hasActions: true }));
rst.addColumn(new Column({caption: L("lcl_rfo_total_sum"), content: prepareTotal, datatype: "currency"})); rst.addColumn(new Column({caption: L("lcl_rfo_total_sum"), content: prepareTotal, datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_rfo_type"), content: prepareModule})); rst.addColumn(new Column({caption: L("lcl_rfo_type"), content: prepareModule}));
rst.addColumn(new Column({caption: L("lcl_handler"), content: "uitvoerende"}));
rst.addColumn(new Column({caption: L("lcl_rfo_category"), content: "categorie"})); rst.addColumn(new Column({caption: L("lcl_rfo_category"), content: "categorie"}));
rst.addColumn(new Column({caption: L("lcl_bes_RFO_status"), content: fncolStatus})); rst.addColumn(new Column({caption: L("lcl_bes_RFO_status"), content: fncolStatus}));
if (user.hasCollegas()) if (user.hasCollegas())
rst.addColumn(new Column({caption: L("lcl_bes_approver"), content: fncolfiatteur})); rst.addColumn(new Column({caption: L("lcl_bes_approver"), content: fncolfiatteur}));
rst.addColumn(new Column({caption: L("lcl_location"), content: "locatie"})); rst.addColumn(new Column({caption: L("lcl_location"), content: "locatie"}));
rst.addColumn(new Column({caption: L("lcl_bld_terra"), content: fncolGebouwTerrein, combine: true})); rst.addColumn(new Column({caption: L("lcl_bld_terra"), content: fncolGebouwTerrein, combine: true}));
rst.addColumn(new Column({caption: L("lcl_descr"), content: "omschrijving"}));
rst.addAction({action: "fac_edit", caption: L("lcl_details"), isDefault: true}); rst.addAction({action: "fac_edit", caption: L("lcl_details"), isDefault: true});
rst.addAction({action: "fac_approve", caption: L("lcl_approve"), enabler: "eApprove", multi: true, multiOnce: true}); rst.addAction({action: "fac_approve", caption: L("lcl_approve"), enabler: "eApprove", multi: true, multiOnce: true});

View File

@@ -78,6 +78,7 @@ function getSqlFiatBes(fiatstatus, prsKeys, params)
+ " , l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')' locatie" + " , l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')' locatie"
+ " , NULL gebouw" + " , NULL gebouw"
+ " , NULL terrein" + " , NULL terrein"
+ " , NULL omschrijving"
+ " FROM prs_v_perslid_fullnames_all p" + " FROM prs_v_perslid_fullnames_all p"
+ " , bes_bestelling b" + " , bes_bestelling b"
+ " , " + v_sql_bestelling_bedrag + " prijs" + " , " + v_sql_bestelling_bedrag + " prijs"
@@ -320,6 +321,7 @@ function getSqlFiatCnt(fiatstatus, prsKeys, params)
+ " ELSE NULL" + " ELSE NULL"
+ " END gebouw" + " END gebouw"
+ " , NULL terrein" + " , NULL terrein"
+ " , c.cnt_contract_omschrijving omschrijving"
+ " FROM prs_v_perslid_fullnames_all p" + " FROM prs_v_perslid_fullnames_all p"
+ " , cnt_v_aanwezigcontract c" + " , cnt_v_aanwezigcontract c"
+ " , ins_tab_discipline td" + " , ins_tab_discipline td"
@@ -423,69 +425,70 @@ function getSqlFiatMld(fiatstatus, prsKeys, params)
+ " END locatie" + " END locatie"
+ " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw" + " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw"
+ " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein") + " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein")
+ " FROM mld_melding m" + " , m.mld_melding_omschrijving omschrijving"
+ " , mld_stdmelding sm" + " FROM mld_melding m"
+ " , mld_opdr op" + " , mld_stdmelding sm"
+ " , mld_typeopdr ot" + " , mld_opdr op"
+ " , prs_v_perslid_fullnames_all pf" + " , mld_typeopdr ot"
+ " , prs_kostenplaats k" + " , prs_v_perslid_fullnames_all pf"
+ " , ins_tab_discipline td" + " , prs_kostenplaats k"
+ " , ins_srtdiscipline sd" + " , ins_tab_discipline td"
+ " , fac_tracking ft" + " , ins_srtdiscipline sd"
+ " , fac_srtnotificatie fno" + " , fac_tracking ft"
+ " , " + fac.getVSqlVerantwoordelijk(prsKeys) + "ver" + " , fac_srtnotificatie fno"
+ (fiatstatus == "open" + " , " + fac.getVSqlVerantwoordelijk(prsKeys) + "ver"
? " , prs_v_perslid_fullnames_all p2" + (fiatstatus == "open"
: "") ? " , prs_v_perslid_fullnames_all p2"
+ " , alg_locatie l" : "")
+ " , alg_v_allonroerendgoed onrg" + " , alg_locatie l"
+ " , alg_v_aanweziggebouw g" + " , alg_v_allonroerendgoed onrg"
+ " , alg_terreinsector t" + " , alg_v_aanweziggebouw g"
+ " WHERE op.mld_melding_key = m.mld_melding_key" + " , alg_terreinsector t"
+ " AND op.mld_typeopdr_key = ot.mld_typeopdr_key" + " WHERE op.mld_melding_key = m.mld_melding_key"
+ " AND COALESCE(op.prs_kostenplaats_key, m.prs_kostenplaats_key) = k.prs_kostenplaats_key" // Indien melding en opdracht geen kostenplaats hebben, dan ook niet fiateren en is de opdrachtstatus al "Uitgegeven" + " AND op.mld_typeopdr_key = ot.mld_typeopdr_key"
+ " AND k.prs_kostenplaats_key = ver.prs_kostenplaats_key(+)" + " AND COALESCE(op.prs_kostenplaats_key, m.prs_kostenplaats_key) = k.prs_kostenplaats_key" // Indien melding en opdracht geen kostenplaats hebben, dan ook niet fiateren en is de opdrachtstatus al "Uitgegeven"
+ " AND pf.prs_perslid_key = m.prs_perslid_key" + " AND k.prs_kostenplaats_key = ver.prs_kostenplaats_key(+)"
+ " AND ft.fac_tracking_refkey = op.mld_opdr_key" + " AND pf.prs_perslid_key = m.prs_perslid_key"
+ " AND ft.fac_srtnotificatie_key = fno.fac_srtnotificatie_key" + " AND ft.fac_tracking_refkey = op.mld_opdr_key"
+ " AND op.mld_melding_key = m.mld_melding_key" + " AND ft.fac_srtnotificatie_key = fno.fac_srtnotificatie_key"
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key" + " AND op.mld_melding_key = m.mld_melding_key"
+ " AND sm.mld_ins_discipline_key = td.ins_discipline_key" + " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND sd.ins_srtdiscipline_key = td.ins_srtdiscipline_key" + " AND sm.mld_ins_discipline_key = td.ins_discipline_key"
+ " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)" + " AND sd.ins_srtdiscipline_key = td.ins_srtdiscipline_key"
+ " AND m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)" + " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)"
+ " AND onrg.alg_gebouw_key = g.alg_gebouw_key(+)" + " AND m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)"
+ " AND onrg.alg_terreinsector_key = t.alg_terreinsector_key(+)" + " AND onrg.alg_gebouw_key = g.alg_gebouw_key(+)"
+ (fiatstatus == "open" + " AND onrg.alg_terreinsector_key = t.alg_terreinsector_key(+)"
? " AND fno.fac_srtnotificatie_code = 'ORDFIA'"// Er moe(s)t uberhaupt gefiatteerd worden + (fiatstatus == "open"
+ " AND op.mld_statusopdr_key = 3" ? " AND fno.fac_srtnotificatie_code = 'ORDFIA'"// Er moe(s)t uberhaupt gefiatteerd worden
// Door gebruik van de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) in het WHERE statement + " AND op.mld_statusopdr_key = 3"
// is de query zeer traag indien er vervangers zijn gedefinieerd (prsKeys bestaat uit meer dan 1 key). // Door gebruik van de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) in het WHERE statement
// Daarom de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) uitgeschreven // is de query zeer traag indien er vervangers zijn gedefinieerd (prsKeys bestaat uit meer dan 1 key).
// fac_tracking en fac_srtnotificatie mee joinen duurder langer als onderstaande oplossing. // Daarom de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) uitgeschreven
/* A1 */ //+ " AND p2.prs_perslid_key = CASE WHEN fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key) IS NULL " // fac_tracking en fac_srtnotificatie mee joinen duurder langer als onderstaande oplossing.
/* A1 */ + " AND p2.prs_perslid_key = CASE WHEN NOT EXISTS" /* A1 */ //+ " AND p2.prs_perslid_key = CASE WHEN fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key) IS NULL "
+ " (SELECT prs_perslid_key" /* A1 */ + " AND p2.prs_perslid_key = CASE WHEN NOT EXISTS"
+ " FROM fac_tracking t" + " (SELECT prs_perslid_key"
+ " , fac_srtnotificatie st" + " FROM fac_tracking t"
+ " WHERE t.fac_srtnotificatie_key = st.fac_srtnotificatie_key" + " , fac_srtnotificatie st"
+ " AND st.fac_srtnotificatie_code = 'ORDFOK'" + " WHERE t.fac_srtnotificatie_key = st.fac_srtnotificatie_key"
+ " AND fac_tracking_refkey = op.mld_opdr_key" + " AND st.fac_srtnotificatie_code = 'ORDFOK'"
+ " )" + " AND fac_tracking_refkey = op.mld_opdr_key"
+ " THEN prs.getkpverantwoordelijke (op.prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1)" + " )"
/* A2 */ + " ELSE ver.prs_perslid_key" + " THEN prs.getkpverantwoordelijke (op.prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1)"
+ " END" /* A2 */ + " ELSE ver.prs_perslid_key"
+ " AND p2.prs_perslid_key IN (" + prsKeys + ")" // Wel ORDFOK tracking aanwezig. Neem kostenplaatsgroepverantwoordelijke + " END"
: " AND fno.fac_srtnotificatie_code = " + (fiatstatus == "close"? "'ORDFOK'" : "'ORDFNO'") // Er is gefiatteerd. + " AND p2.prs_perslid_key IN (" + prsKeys + ")" // Wel ORDFOK tracking aanwezig. Neem kostenplaatsgroepverantwoordelijke
+ " AND ft.prs_perslid_key IN (" + prsKeys + ")") // Gefiatterd door jezelf of waarvoor je vervanger bent : " AND fno.fac_srtnotificatie_code = " + (fiatstatus == "close"? "'ORDFOK'" : "'ORDFNO'") // Er is gefiatteerd.
+ (params.bld_key // sortering op gebouw, locatie of district + " AND ft.prs_perslid_key IN (" + prsKeys + ")") // Gefiatterd door jezelf of waarvoor je vervanger bent
? " AND g.alg_gebouw_key = " + params.bld_key + (params.bld_key // sortering op gebouw, locatie of district
: (params.loc_key_arr ? " AND g.alg_gebouw_key = " + params.bld_key
? " AND l.alg_locatie_key IN (" + params.loc_key_arr.join(",") + ")" : (params.loc_key_arr
: "")) ? " AND l.alg_locatie_key IN (" + params.loc_key_arr.join(",") + ")"
+ (params.opdrtype_key : ""))
? " AND ot.mld_typeopdr_key = " + params.opdrtype_key + (params.opdrtype_key
: ""); ? " AND ot.mld_typeopdr_key = " + params.opdrtype_key
: "");
return sql; return sql;
} }
@@ -507,7 +510,9 @@ function getSqlGoedkeurMld(fiatstatus, prsKeys, params)
+ " , ' ' fiatteur" // dat kunnen er meerdere met WEB_ORDGOE zijn + " , ' ' fiatteur" // dat kunnen er meerdere met WEB_ORDGOE zijn
+ " , NULL bes_bestelling_parentkey" + " , NULL bes_bestelling_parentkey"
+ " , sd.ins_srtdiscipline_prefix prefix" + " , sd.ins_srtdiscipline_prefix prefix"
+ " , NULL uitvoerende" + " , COALESCE((SELECT b.prs_bedrijf_naam FROM prs_bedrijf b WHERE b.prs_bedrijf_key = op.mld_uitvoerende_keys),"
+ " COALESCE((SELECT " + S("prs_pers_string") + " FROM prs_perslid p WHERE p.prs_perslid_key = op.mld_uitvoerende_keys),"
+ " '')) uitvoerende"
+ " , CASE " + " , CASE "
+ " WHEN l.alg_locatie_key IS NULL" + " WHEN l.alg_locatie_key IS NULL"
+ " THEN NULL" + " THEN NULL"
@@ -515,6 +520,7 @@ function getSqlGoedkeurMld(fiatstatus, prsKeys, params)
+ " END locatie" + " END locatie"
+ " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw" + " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw"
+ " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein" + " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein"
+ " , op.mld_opdr_omschrijving omschrijving"
+ " FROM mld_melding m" + " FROM mld_melding m"
+ " , mld_disc_params mdp" + " , mld_disc_params mdp"
+ " , mld_stdmelding sm" + " , mld_stdmelding sm"
@@ -660,6 +666,7 @@ function getSqlAccAfwOff(params)
+ " END locatie" + " END locatie"
+ " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw" + " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw"
+ " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein" + " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein"
+ " , o.mld_opdr_omschrijving omschrijving"
+ " FROM mld_melding m" + " FROM mld_melding m"
+ " , mld_stdmelding sm" + " , mld_stdmelding sm"
+ " , mld_opdr o" + " , mld_opdr o"
@@ -781,6 +788,7 @@ function getSqlFiatFin(fiatstatus, prsKeys, params)
+ " THEN t.alg_terreinsector_code || ' ' || alg_terreinsector_naam" + " THEN t.alg_terreinsector_code || ' ' || alg_terreinsector_naam"
+ " ELSE NULL" // f.bes_bestelopdr_key IS NOT NULL en f.cnt_contract_key IS NOT NULL + " ELSE NULL" // f.bes_bestelopdr_key IS NOT NULL en f.cnt_contract_key IS NOT NULL
+ " END terrein" + " END terrein"
+ " , NULL omschrijving"
+ " FROM (SELECT prs.getkpverantwoordelijke(prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1) budgethouder," + " FROM (SELECT prs.getkpverantwoordelijke(prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1) budgethouder,"
+ " f.* FROM (select fin.getfactuurkostenplaats(f.fin_factuur_key) prs_kostenplaats_key, f.* from fin_factuur f) f) f" + " f.* FROM (select fin.getfactuurkostenplaats(f.fin_factuur_key) prs_kostenplaats_key, f.* from fin_factuur f) f) f"
+ " , prs_v_perslid_fullnames_all pf" + " , prs_v_perslid_fullnames_all pf"