From 990f37f92c08dea17c62143ef1b4f10d895ee8e3 Mon Sep 17 00:00:00 2001 From: Maykel Geerdink Date: Mon, 6 Feb 2017 12:31:45 +0000 Subject: [PATCH] KFHT#37609: Overzicht fiatteringsverzoeken. svn path=/Website/trunk/; revision=32716 --- APPL/FAC/fac_fiattering_list.asp | 4 +- APPL/FAC/fac_fiattering_list.inc | 136 ++++++++++++++++--------------- 2 files changed, 75 insertions(+), 65 deletions(-) diff --git a/APPL/FAC/fac_fiattering_list.asp b/APPL/FAC/fac_fiattering_list.asp index fec29583fe..3a71c4f00c 100644 --- a/APPL/FAC/fac_fiattering_list.asp +++ b/APPL/FAC/fac_fiattering_list.asp @@ -489,7 +489,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"], js: ["jquery-ui.js"] }); case "CNT": return L("lcl_cnt_contract"); break; case "MLD": case "GOED": return L("lcl_shared_order") + "
" + safe.html(oRs("type").Value); break; - case "OFFERTE": return safe.html(oRs("type").Value) + "
" + safe.html(oRs("uitvoerende").Value); break; + case "OFFERTE": return safe.html(oRs("type").Value); break; case "FIN": case "FIN2": return L("lcl_fin_factuur_type") + "
" + safe.html(oRs("type").Value); break; 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_total_sum"), content: prepareTotal, datatype: "currency"})); 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_bes_RFO_status"), content: fncolStatus})); if (user.hasCollegas()) 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_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_approve", caption: L("lcl_approve"), enabler: "eApprove", multi: true, multiOnce: true}); diff --git a/APPL/FAC/fac_fiattering_list.inc b/APPL/FAC/fac_fiattering_list.inc index 7738a6936e..8d255b8683 100644 --- a/APPL/FAC/fac_fiattering_list.inc +++ b/APPL/FAC/fac_fiattering_list.inc @@ -78,6 +78,7 @@ function getSqlFiatBes(fiatstatus, prsKeys, params) + " , l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')' locatie" + " , NULL gebouw" + " , NULL terrein" + + " , NULL omschrijving" + " FROM prs_v_perslid_fullnames_all p" + " , bes_bestelling b" + " , " + v_sql_bestelling_bedrag + " prijs" @@ -320,6 +321,7 @@ function getSqlFiatCnt(fiatstatus, prsKeys, params) + " ELSE NULL" + " END gebouw" + " , NULL terrein" + + " , c.cnt_contract_omschrijving omschrijving" + " FROM prs_v_perslid_fullnames_all p" + " , cnt_v_aanwezigcontract c" + " , ins_tab_discipline td" @@ -423,69 +425,70 @@ function getSqlFiatMld(fiatstatus, prsKeys, params) + " END locatie" + " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw" + " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein") - + " FROM mld_melding m" - + " , mld_stdmelding sm" - + " , mld_opdr op" - + " , mld_typeopdr ot" - + " , prs_v_perslid_fullnames_all pf" - + " , prs_kostenplaats k" - + " , ins_tab_discipline td" - + " , ins_srtdiscipline sd" - + " , fac_tracking ft" - + " , fac_srtnotificatie fno" - + " , " + fac.getVSqlVerantwoordelijk(prsKeys) + "ver" - + (fiatstatus == "open" - ? " , prs_v_perslid_fullnames_all p2" - : "") - + " , alg_locatie l" - + " , alg_v_allonroerendgoed onrg" - + " , alg_v_aanweziggebouw g" - + " , alg_terreinsector t" - + " WHERE op.mld_melding_key = m.mld_melding_key" - + " AND op.mld_typeopdr_key = ot.mld_typeopdr_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 k.prs_kostenplaats_key = ver.prs_kostenplaats_key(+)" - + " AND pf.prs_perslid_key = m.prs_perslid_key" - + " AND ft.fac_tracking_refkey = op.mld_opdr_key" - + " AND ft.fac_srtnotificatie_key = fno.fac_srtnotificatie_key" - + " AND op.mld_melding_key = m.mld_melding_key" - + " AND m.mld_stdmelding_key = sm.mld_stdmelding_key" - + " AND sm.mld_ins_discipline_key = td.ins_discipline_key" - + " AND sd.ins_srtdiscipline_key = td.ins_srtdiscipline_key" - + " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)" - + " AND m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)" - + " AND onrg.alg_gebouw_key = g.alg_gebouw_key(+)" - + " AND onrg.alg_terreinsector_key = t.alg_terreinsector_key(+)" - + (fiatstatus == "open" - ? " AND fno.fac_srtnotificatie_code = 'ORDFIA'"// Er moe(s)t uberhaupt gefiatteerd worden - + " AND op.mld_statusopdr_key = 3" - // Door gebruik van de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) in het WHERE statement - // is de query zeer traag indien er vervangers zijn gedefinieerd (prsKeys bestaat uit meer dan 1 key). - // Daarom de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) uitgeschreven - // fac_tracking en fac_srtnotificatie mee joinen duurder langer als onderstaande oplossing. -/* A1 */ //+ " AND p2.prs_perslid_key = CASE WHEN fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key) IS NULL " -/* A1 */ + " AND p2.prs_perslid_key = CASE WHEN NOT EXISTS" - + " (SELECT prs_perslid_key" - + " FROM fac_tracking t" - + " , fac_srtnotificatie st" - + " WHERE t.fac_srtnotificatie_key = st.fac_srtnotificatie_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" - + " END" - + " AND p2.prs_perslid_key IN (" + prsKeys + ")" // Wel ORDFOK tracking aanwezig. Neem kostenplaatsgroepverantwoordelijke - : " AND fno.fac_srtnotificatie_code = " + (fiatstatus == "close"? "'ORDFOK'" : "'ORDFNO'") // Er is gefiatteerd. - + " AND ft.prs_perslid_key IN (" + prsKeys + ")") // Gefiatterd door jezelf of waarvoor je vervanger bent - + (params.bld_key // sortering op gebouw, locatie of district - ? " AND g.alg_gebouw_key = " + params.bld_key - : (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 - : ""); + + " , m.mld_melding_omschrijving omschrijving" + + " FROM mld_melding m" + + " , mld_stdmelding sm" + + " , mld_opdr op" + + " , mld_typeopdr ot" + + " , prs_v_perslid_fullnames_all pf" + + " , prs_kostenplaats k" + + " , ins_tab_discipline td" + + " , ins_srtdiscipline sd" + + " , fac_tracking ft" + + " , fac_srtnotificatie fno" + + " , " + fac.getVSqlVerantwoordelijk(prsKeys) + "ver" + + (fiatstatus == "open" + ? " , prs_v_perslid_fullnames_all p2" + : "") + + " , alg_locatie l" + + " , alg_v_allonroerendgoed onrg" + + " , alg_v_aanweziggebouw g" + + " , alg_terreinsector t" + + " WHERE op.mld_melding_key = m.mld_melding_key" + + " AND op.mld_typeopdr_key = ot.mld_typeopdr_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 k.prs_kostenplaats_key = ver.prs_kostenplaats_key(+)" + + " AND pf.prs_perslid_key = m.prs_perslid_key" + + " AND ft.fac_tracking_refkey = op.mld_opdr_key" + + " AND ft.fac_srtnotificatie_key = fno.fac_srtnotificatie_key" + + " AND op.mld_melding_key = m.mld_melding_key" + + " AND m.mld_stdmelding_key = sm.mld_stdmelding_key" + + " AND sm.mld_ins_discipline_key = td.ins_discipline_key" + + " AND sd.ins_srtdiscipline_key = td.ins_srtdiscipline_key" + + " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)" + + " AND m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)" + + " AND onrg.alg_gebouw_key = g.alg_gebouw_key(+)" + + " AND onrg.alg_terreinsector_key = t.alg_terreinsector_key(+)" + + (fiatstatus == "open" + ? " AND fno.fac_srtnotificatie_code = 'ORDFIA'"// Er moe(s)t uberhaupt gefiatteerd worden + + " AND op.mld_statusopdr_key = 3" + // Door gebruik van de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) in het WHERE statement + // is de query zeer traag indien er vervangers zijn gedefinieerd (prsKeys bestaat uit meer dan 1 key). + // Daarom de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) uitgeschreven + // fac_tracking en fac_srtnotificatie mee joinen duurder langer als onderstaande oplossing. +/* A1 */ //+ " AND p2.prs_perslid_key = CASE WHEN fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key) IS NULL " +/* A1 */ + " AND p2.prs_perslid_key = CASE WHEN NOT EXISTS" + + " (SELECT prs_perslid_key" + + " FROM fac_tracking t" + + " , fac_srtnotificatie st" + + " WHERE t.fac_srtnotificatie_key = st.fac_srtnotificatie_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" + + " END" + + " AND p2.prs_perslid_key IN (" + prsKeys + ")" // Wel ORDFOK tracking aanwezig. Neem kostenplaatsgroepverantwoordelijke + : " AND fno.fac_srtnotificatie_code = " + (fiatstatus == "close"? "'ORDFOK'" : "'ORDFNO'") // Er is gefiatteerd. + + " AND ft.prs_perslid_key IN (" + prsKeys + ")") // Gefiatterd door jezelf of waarvoor je vervanger bent + + (params.bld_key // sortering op gebouw, locatie of district + ? " AND g.alg_gebouw_key = " + params.bld_key + : (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 + : ""); return sql; } @@ -507,7 +510,9 @@ function getSqlGoedkeurMld(fiatstatus, prsKeys, params) + " , ' ' fiatteur" // dat kunnen er meerdere met WEB_ORDGOE zijn + " , NULL bes_bestelling_parentkey" + " , 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 " + " WHEN l.alg_locatie_key IS NULL" + " THEN NULL" @@ -515,6 +520,7 @@ function getSqlGoedkeurMld(fiatstatus, prsKeys, params) + " END locatie" + " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw" + " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein" + + " , op.mld_opdr_omschrijving omschrijving" + " FROM mld_melding m" + " , mld_disc_params mdp" + " , mld_stdmelding sm" @@ -660,6 +666,7 @@ function getSqlAccAfwOff(params) + " END locatie" + " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw" + " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein" + + " , o.mld_opdr_omschrijving omschrijving" + " FROM mld_melding m" + " , mld_stdmelding sm" + " , mld_opdr o" @@ -781,6 +788,7 @@ function getSqlFiatFin(fiatstatus, prsKeys, params) + " 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 + " END terrein" + + " , NULL omschrijving" + " 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" + " , prs_v_perslid_fullnames_all pf"