<%@language="javascript"%> <% /* $Revision$ $Id$ File: prs_dienstloc_list.asp Description: Lijst van geleverde diensten door bedrijf bedrijf_key en/of op locatie locatie_key Parameters: locatie_key (optioneel) bedrijf_key (optioneel) Context: Submit van prs_dienstloc_search.asp Note: */ %> <% var bedrijf_key = getQParamInt("bedrijf_key", -1); var locatie_key = getQParamInt("locatie_key", -1); var dienst_key = getQParamInt("dienst_key", -1); var dloc_key = -1; if (bedrijf_key == -1 && dienst_key == -1) dloc_key = getQParamInt("dloc_key"); FCLTHeader.Requires({plugins:["jQuery"], js: []}) function fnrowData(oRs) { var dloc_key = oRs("prs_bedrijfdienstlocatie_key").value; var bedrijf_key = oRs("prs_bedrijf_key").value; var data = {dloc_key:dloc_key, bedrijf_key : bedrijf_key}; return JSON.stringify(data); } %>
<% FCLTHeader.Generate(); %>
<% var autfunction = 'WEB_PRSMSU'; var authparams = user.checkAutorisation(autfunction); var canChange = (authparams.PRSwritelevel < 9); // SELECT deel voor verwijzing naar locatie en naar gebouw. // Alleen de alg_locatie_key is ingevuld of alleen de alg_gebouw_key of geen van beide. var sql = "SELECT *" + " FROM (SELECT b.prs_bedrijf_key" + " , b.prs_bedrijf_naam" + " , " + lcl.xsqla('d.prs_dienst_omschrijving', 'd.prs_dienst_key') + " , COALESCE(l.alg_locatie_omschrijving, " + safe.quoted_sql(L("lcl_all")) + ") alg_locatie_omschrijving" + " , 'Alle' alg_gebouw_omschrijving" + " , dl.prs_bedrijfdienstlocatie_key" + " , l.alg_locatie_upper" + " , b.prs_bedrijf_naam_upper" + " FROM alg_v_aanweziglocatie l" + " , prs_dienst d" + " , prs_bedrijfdienstlocatie dl" + " , prs_bedrijf b" + " WHERE dl.alg_locatie_key = l.alg_locatie_key(+)" + " AND (dl.alg_locatie_key IS NULL OR l.alg_locatie_key IS NOT NULL)" + " AND dl.alg_gebouw_key IS NULL" + " AND d.prs_dienst_key = dl.prs_dienst_key" + " AND dl.prs_bedrijf_key = b.prs_bedrijf_key" + (bedrijf_key != -1 ? " AND b.prs_bedrijf_key = " + bedrijf_key : "") + (dienst_key != -1 ? " AND d.prs_dienst_key = " + dienst_key : "") + (locatie_key != -1 ? " AND l.alg_locatie_key = " + locatie_key : "") + (dloc_key != -1 ? " AND dl.prs_bedrijfdienstlocatie_key = " + dloc_key : "") + " UNION " + " SELECT b.prs_bedrijf_key" + " , b.prs_bedrijf_naam" + " , " + lcl.xsqla('d.prs_dienst_omschrijving', 'd.prs_dienst_key') + " , COALESCE(l.alg_locatie_omschrijving, " + safe.quoted_sql(L("lcl_all")) + ") alg_locatie_omschrijving" + " , COALESCE(g.alg_gebouw_omschrijving, " + safe.quoted_sql(L("lcl_all")) + ") alg_gebouw_omschrijving" + " , dl.prs_bedrijfdienstlocatie_key" + " , NULL" + " , b.prs_bedrijf_naam_upper" + " FROM alg_v_aanweziglocatie l" + " , alg_v_aanweziggebouw g" + " , prs_dienst d" + " , prs_bedrijfdienstlocatie dl" + " , prs_bedrijf b" + " WHERE dl.alg_gebouw_key = g.alg_gebouw_key(+)" + " AND g.alg_locatie_key = l.alg_locatie_key(+)" + " AND (dl.alg_gebouw_key IS NULL OR g.alg_gebouw_key IS NOT NULL)" + " AND dl.alg_locatie_key IS NULL" + " AND (dl.alg_locatie_key IS NOT NULL OR dl.alg_gebouw_key IS NOT NULL)" // Zowel dl.alg_locatie_key als dl.alg_gebouw_key beiden NULL wordt opgepakt door eerste SELECT. + " AND d.prs_dienst_key = dl.prs_dienst_key" + " AND dl.prs_bedrijf_key = b.prs_bedrijf_key" + (bedrijf_key != -1 ? " AND b.prs_bedrijf_key = " + bedrijf_key : "") + (dienst_key != -1 ? " AND d.prs_dienst_key = " + dienst_key : "") + (locatie_key != -1 ? " AND l.alg_locatie_key = " + locatie_key : "") + (dloc_key != -1 ? " AND dl.prs_bedrijfdienstlocatie_key = " + dloc_key : "") + ")" + " ORDER BY prs_bedrijf_naam_upper, 3, alg_locatie_upper"; var buttons = []; if (canChange) { buttons.push({ icon: "wijzigen.png", title: L("lcl_change"), action: "bdl_change()" }) } var rst = new ResultsetTable({ sql: sql, ID: "contacttable", noPrint:true, title: L("lcl_prs_companies_dienst_title"), rowData: fnrowData, keyColumn: "prs_bedrijfdienstlocatie_key", buttons: buttons }); if (locatie_key == -1) rst.addColumn(new Column({caption: L("lcl_location"), content: "alg_locatie_omschrijving"})); rst.addColumn(new Column({caption: L("lcl_building"), content: "alg_gebouw_omschrijving"})); rst.processResultset(); %>