diff --git a/APPL/API2/model_res_discipline.inc b/APPL/API2/model_res_discipline.inc index dc6dccdbed..13dd8ef7df 100644 --- a/APPL/API2/model_res_discipline.inc +++ b/APPL/API2/model_res_discipline.inc @@ -129,7 +129,7 @@ _model_res_discipline = // Internal only "name" ] }, - "autfunction": "WEB_PRSSYS", + "autfunction": "WEB_RESMGT", "record_title": L("res_v_res_catalogus"), "records_title": L("res_v_res_catalogus_m") } diff --git a/APPL/BES/bes_voorraad_list.inc b/APPL/BES/bes_voorraad_list.inc index 1f93074ace..0edec59d64 100644 --- a/APPL/BES/bes_voorraad_list.inc +++ b/APPL/BES/bes_voorraad_list.inc @@ -148,6 +148,16 @@ function bes_voorraad_list (pautfunction, params) + " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr" + " AND bes_srtdeel_verwijder IS NULL" + " AND bd2.ins_discipline_key = dp.bes_ins_discipline_key_inkoop) bestelveelvoud" // Bestelveelvoud van gekoppelde discipline + + " , (SELECT isd2.bes_srtdeel_eenheid" + + " FROM bes_srtdeel isd2" + + " , bes_srtgroep isg2" + + " , bes_discipline bd2" + + " WHERE isd2.bes_srtgroep_key = isg2.bes_srtgroep_key" + + " AND bd2.ins_discipline_key = isg2.ins_discipline_key" + + " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr" + + " AND bes_srtdeel_verwijder IS NULL" + + " AND bd2.ins_discipline_key = dp.bes_ins_discipline_key_inkoop) bes_srtdeel_eenheid" // Eenheid van gekoppelde discipline + + " , sd.bes_srtdeel_eenheid bes_srtdeel_eenheid_intern" + " FROM bes_discipline bd" + " , bes_v_aanwezigsrtgroep g" + " , bes_v_aanwezigsrtdeel sd" @@ -198,7 +208,8 @@ function bes_voorraad_list (pautfunction, params) + " , bes_srtdeel_voorraadmin" + " , sd.bes_srtdeel_maxbestel" + " , sd.bes_srtdeel_minimum" - + " , sd.bes_srtdeel_veelvoud"; + + " , sd.bes_srtdeel_veelvoud" + + " , sd.bes_srtdeel_eenheid"; // Bestelde artikelen bij de leverancier (extern) // Besteld (status = 5) en Geleverd (status = 6,7) @@ -216,6 +227,16 @@ function bes_voorraad_list (pautfunction, params) + " , sd.bes_srtdeel_maxbestel maxbestel" + " , sd.bes_srtdeel_minimum bestelmin" + " , sd.bes_srtdeel_veelvoud bestelveelvoud" + + " , sd.bes_srtdeel_eenheid" + + " , (SELECT isd2.bes_srtdeel_eenheid" + + " FROM bes_srtdeel isd2" + + " , bes_srtgroep isg2" + + " , bes_disc_params dp2" + + " WHERE isd2.bes_srtgroep_key = isg2.bes_srtgroep_key" + + " AND dp2.bes_ins_discipline_key = isg2.ins_discipline_key" + + " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr" + + " AND bes_srtdeel_verwijder IS NULL" + + " AND dp.bes_ins_discipline_key = dp2.bes_ins_discipline_key_inkoop) bes_srtdeel_eenheid_intern" // Eenheid van gekoppelde discipline + " FROM bes_discipline bd" + " , bes_v_aanwezigsrtgroep g" + " , bes_v_aanwezigsrtdeel sd" @@ -258,6 +279,7 @@ function bes_voorraad_list (pautfunction, params) + " , sd.bes_srtdeel_maxbestel" + " , sd.bes_srtdeel_minimum" + " , sd.bes_srtdeel_veelvoud" + + " , sd.bes_srtdeel_eenheid" + " UNION ALL " + "SELECT sd.bes_srtdeel_nr" + " , sd.bes_srtdeel_key" @@ -273,6 +295,16 @@ function bes_voorraad_list (pautfunction, params) + " , sd.bes_srtdeel_maxbestel maxbestel" + " , sd.bes_srtdeel_minimum bestelmin" + " , sd.bes_srtdeel_veelvoud bestelveelvoud" + + " , sd.bes_srtdeel_eenheid" + + " , (SELECT isd2.bes_srtdeel_eenheid" + + " FROM bes_srtdeel isd2" + + " , bes_srtgroep isg2" + + " , bes_disc_params dp2" + + " WHERE isd2.bes_srtgroep_key = isg2.bes_srtgroep_key" + + " AND dp2.bes_ins_discipline_key = isg2.ins_discipline_key" + + " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr" + + " AND bes_srtdeel_verwijder IS NULL" + + " AND dp.bes_ins_discipline_key = dp2.bes_ins_discipline_key_inkoop) bes_srtdeel_eenheid_intern" // Eenheid van gekoppelde discipline + " FROM bes_discipline bd" + " , bes_v_aanwezigsrtgroep g" + " , bes_v_aanwezigsrtdeel sd" @@ -318,7 +350,8 @@ function bes_voorraad_list (pautfunction, params) + " , bes_srtdeel_voorraadmin" + " , sd.bes_srtdeel_maxbestel" + " , sd.bes_srtdeel_minimum" - + " , sd.bes_srtdeel_veelvoud"; + + " , sd.bes_srtdeel_veelvoud" + + " , sd.bes_srtdeel_eenheid"; var sql_from = sql_from_intern + " UNION ALL " @@ -337,6 +370,8 @@ function bes_voorraad_list (pautfunction, params) + " , bo.maxbestel" + " , bo.bestelmin" + " , bo.bestelveelvoud" + + " , bo.bes_srtdeel_eenheid" + + " , bo.bes_srtdeel_eenheid_intern" + " FROM (" + sql_from + ") bo" + " GROUP BY bo.bes_srtdeel_key" + " , bo.bes_srtdeel_key_inkoop" @@ -348,7 +383,9 @@ function bes_voorraad_list (pautfunction, params) + " , bo.voorraadmin" + " , bo.maxbestel" + " , bo.bestelmin" - + " , bo.bestelveelvoud"; + + " , bo.bestelveelvoud" + + " , bo.bes_srtdeel_eenheid" + + " , bo.bes_srtdeel_eenheid_intern"; var sql_val = "SELECT a.bes_srtdeel_key" + " , a.bes_srtdeel_nr" @@ -364,9 +401,12 @@ function bes_voorraad_list (pautfunction, params) + " , SUM(a.aantal_geleverd) aantal_geleverd" + " , SUM(a.aantal_open_order) aantal_open_order" + " , b.intern_voorraadfactor" - + " , SUM(a.aantal_geleverd) - SUM(CEIL (a.aantal_intern_uit / b.intern_voorraadfactor)) voorraad" + + " , COALESCE(SUM(a.aantal_geleverd), 0) - COALESCE(SUM(CEIL (a.aantal_intern_uit / b.intern_voorraadfactor)), 0) voorraad" + + " , COALESCE(SUM (a.aantal_geleverd * b.intern_voorraadfactor), 0) - COALESCE(SUM (a.aantal_intern_uit), 0) voorraad_intern" + " , b.intern_notitie" + " , b.bes_srtdeel_omschrijving" + + " , a.bes_srtdeel_eenheid eenheid_extern" + + " , a.bes_srtdeel_eenheid_intern eenheid_intern" + " FROM (" + sql_from_all + ") a" + " , (" + sql_srtdeel + ") b" + " WHERE a.bes_srtdeel_nr = b.bes_srtdeel_nr" @@ -389,7 +429,9 @@ function bes_voorraad_list (pautfunction, params) + " , a.bestelveelvoud" + " , b.intern_voorraadfactor" + " , b.intern_notitie" - + " , b.bes_srtdeel_omschrijving"; + + " , b.bes_srtdeel_omschrijving" + + " , a.bes_srtdeel_eenheid" + + " , a.bes_srtdeel_eenheid_intern"; var sql = "SELECT bes_srtdeel_key" + " , bes_srtdeel_nr" @@ -419,7 +461,8 @@ function bes_voorraad_list (pautfunction, params) + " ELSE" + " NULL" + " END tebestellen" - + " , COALESCE (aantal_geleverd, 0) - COALESCE (aantal_extern_uit, 0) voorraad" + + " , voorraad" + + " , voorraad_intern" + " , (SELECT COUNT(*)" + " FROM bes_kenmerk bk" + " , bes_srtdeel sd" @@ -430,6 +473,8 @@ function bes_voorraad_list (pautfunction, params) + " OR bk.bes_srtinstallatie_key = sd.bes_srtdeel_key AND bk.bes_kenmerk_niveau LIKE 'S')" + " AND bk.bes_kenmerk_type = 'I'" + " AND sd.bes_srtdeel_key = l.bes_srtdeel_key) aantalkenmerken" + + " , l.eenheid_extern" + + " , l.eenheid_intern" + " FROM (" + sql_val + ") l"; @@ -444,6 +489,15 @@ function bes_voorraad_list (pautfunction, params) * Callback functies ResultsetTable *********************************/ + // Bepalen of er de interne en externe artikelen zijn die een verschillende eenheid hebben (voorraadfactor > 1) + var eenheidDiff = false; + function fncolVoorraadIntern (oRs) + { + if (oRs("intern_voorraadfactor").Value > 1) + eenheidDiff = true; + return oRs("voorraad_intern").Value; + } + // Aantal artikelen die besteld moeten worden, bijhouden voor de srtdelen (bes_srtdeel_key) zodat deze met 1 druk op de knop besteld kunnen worden. var lijst_srtdeelkey = []; var lijst_tebestellen = []; @@ -527,9 +581,12 @@ function bes_voorraad_list (pautfunction, params) rst.addColumn(new Column({caption: L("lcl_bes_srtdeel_nr"), content: "bes_srtdeel_nr"})); rst.addColumn(new Column({caption: L("lcl_bes_srtdeel"), content: "bes_srtdeel_omschrijving"})); rst.addColumn(new Column({caption: L("lcl_bes_notitie"), content: "bes_srtdeel_notitie"})); + rst.addColumn(new Column({caption: L("lcl_bes_voorraad") + " (" + L("lcl_mld_intern") + ")", content: fncolVoorraadIntern, datatype: "integer", total: true, thClass: "eenheiddiff", columnClass: function(){return "eenheiddiff";}})); + rst.addColumn(new Column({caption: L("lcl_bes_unity"), content: "eenheid_intern", thClass: "eenheiddiff", columnClass: function(){return "eenheiddiff";}})); rst.addColumn(new Column({caption: L("lcl_bes_aantal_in"), content: "aantal_geleverd", datatype: "integer", total: true})); rst.addColumn(new Column({caption: L("lcl_bes_aantal_uit"), content: "aantal_extern_uit", datatype: "integer", total: true})); rst.addColumn(new Column({caption: L("lcl_bes_voorraad"), content: "voorraad", datatype: "integer", total: true})); + rst.addColumn(new Column({caption: L("lcl_bes_unity"), content: "eenheid_extern"})); rst.addColumn(new Column({caption: L("lcl_bes_lopend"), content: "aantal_open_order", datatype: "integer", total: true})); rst.addColumn(new Column({caption: L("lcl_bes_bestellen"), content: fncolTeBestellen, datatype: "integer", total: true})); @@ -542,6 +599,13 @@ function bes_voorraad_list (pautfunction, params) var ps = "<%=lijst_srtdeelkey.join(",")%>"; var pn = "<%=lijst_tebestellen.join(",")%>"; var haskenmerk = <%=lijst_haskenmerken.length%> > 0; + + jQuery(document).ready(function() + { + // Indien voor alle artikelen de voorraadfactor 1 hebben, dan de kolommen m.b.t. interne voorraad niet tonen. + if (<%=!eenheidDiff? 1 : 0%> == 1) + $(".eenheiddiff").hide(); + }); diff --git a/APPL/Localscripts/FcltJquery.js b/APPL/Localscripts/FcltJquery.js index 86ef45d454..f1259f2964 100644 --- a/APPL/Localscripts/FcltJquery.js +++ b/APPL/Localscripts/FcltJquery.js @@ -258,6 +258,7 @@ jQuery.fn.filterByText = function(textbox, selectSingleMatch) { if (selectSingleMatch === true && $(select).children().length === 1) { $(select).children().get(0).selected = true; + $(select).children().trigger("change"); } }); }); diff --git a/APPL/MLD/mld_edit_opdr.asp b/APPL/MLD/mld_edit_opdr.asp index 4a7f523a12..efd2629362 100644 --- a/APPL/MLD/mld_edit_opdr.asp +++ b/APPL/MLD/mld_edit_opdr.asp @@ -441,7 +441,7 @@ oRs.Close(); + " WHERE cnt.cnt_contract_key = co.cnt_contract_key" + " AND co.cnt_ins_deel_key = mo.ins_deel_key" + " AND mo.mld_melding_key = " + mld_key - + " AND cnt.cnt_contract_status IN (0, 1)" + + " AND (cnt.cnt_contract_status IN (0, 1) OR cnt.cnt_contract_key = {0})".format(mld_opdr.contract_key||-1) + (mld_opdr.uitvoerende_key > 0 ? " AND cnt_prs_bedrijf_key = " + mld_opdr.uitvoerende_key : "") @@ -461,7 +461,7 @@ oRs.Close(); + " , cnt_disc_params cpa " + " WHERE cnt.cnt_contract_key = cp.cnt_contract_key" + " AND cnt.ins_discipline_key = cpa.cnt_ins_discipline_key" - + " AND cnt_contract_status = 0" // actief + + " AND (cnt_contract_status = 0 OR cnt.cnt_contract_key = {0})".format(mld_opdr.contract_key||-1) // actief + " AND ((cp.cnt_alg_plaats_key = me.mld_alg_locatie_key" + " AND cp.cnt_alg_plaats_code = 'L')" + " OR (cp.cnt_alg_plaats_key = (SELECT alg_gebouw_key FROM alg_v_onroerendgoed og" diff --git a/APPL/MLD/mld_load_obj_info.asp b/APPL/MLD/mld_load_obj_info.asp index 18ec349c2a..0f348396ca 100644 --- a/APPL/MLD/mld_load_obj_info.asp +++ b/APPL/MLD/mld_load_obj_info.asp @@ -43,10 +43,9 @@ var txt = ''; var sql = "SELECT d.ins_deel_key" + " , d.ins_deel_omschrijving||' ('||" + lcl.xsql('dg.ins_srtdeel_omschrijving', 'dg.ins_srtdeel_key') + "||')' deel" - + " , d.ins_alg_ruimte_key" + + " , d.ins_deel_opmerking" + " , d.ins_alg_ruimte_type" - + " , a.alg_ruimte_nr" - + " , dg.alg_plaatsaanduiding || ' ' || dg.ins_deel_omschrijving || ' ' || d.ins_deel_opmerking tooltip" + + " , dg.alg_plaatsaanduiding" + " FROM ins_v_aanwezigdeel d" + " , alg_v_aanwezigruimte a" + " , ins_v_deel_gegevens dg" @@ -63,8 +62,12 @@ if (!oRs.eof) case 'A': { var lbl = L("lcl_obj_department"); break; } // Afdeling (A) default: { var lbl = L("lcl_obj_position"); break; } // Plaats: Ruimte(R), Terrein(T) of Werkplek(W) } - txt += kenmerkTR(lbl, oRs("tooltip").value); + txt += kenmerkTR(lbl, oRs("alg_plaatsaanduiding").value); + txt += kenmerkTR(L("lcl_obj_identification"), oRs("deel").value); + if (oRs("ins_deel_opmerking").Value) + txt += kenmerkTR(L("lcl_ins_opmerking"), oRs("ins_deel_opmerking").value); } + oRs.close(); var sqlwaarde = " k.ins_kenmerk_default"; diff --git a/APPL/PDA/reports.asp b/APPL/PDA/reports.asp index 55382c7c9e..e6a9ba9f83 100644 --- a/APPL/PDA/reports.asp +++ b/APPL/PDA/reports.asp @@ -4,14 +4,14 @@ <% params = { list: {}, - filter: { - "styling" : 16, // Alleen de mobiele - "ismobile": true, - "showall": (getQParamInt("showall", 0) == 1), - "nolimit": (getQParamInt("showall", 0) == 1) // Doe niets met de waarden qp_maxrows_xxx in model_reports.report_GET() - } + filter: shared.qs2json() }; + params.filter["styling"] = 16; // Alleen de mobiele + params.filter["ismobile"] = true; + params.filter["showall"] = (getQParamInt("showall", 0) == 1); + params.filter["nolimit"] = (getQParamInt("showall", 0) == 1); // Doe niets met de waarden qp_maxrows_xxx in model_reports.report_GET() + var usrrap_key = getQParamInt("usrrap_key", -1); if (mode == "list" && usrrap_key > 0) { diff --git a/APPL/RES/res_close.asp b/APPL/RES/res_close.asp index e8e48e040f..2605343b17 100644 --- a/APPL/RES/res_close.asp +++ b/APPL/RES/res_close.asp @@ -169,7 +169,10 @@ for (var i = 0; i < partres_key_arr.length; i++) // var oRs = Oracle.Execute(sql); if (oRs.Eof) + { + oRs.Close(); continue; // waarschijnlijk net in een ander tabje verwijderd. Niet al te moeilijk over doen. + } var rsv_ruimte_key = oRs("res_rsv_ruimte_key").Value; var status_bo = oRs("res_status_bo_key").Value; diff --git a/APPL/Shared/Shared.inc b/APPL/Shared/Shared.inc index 7db1d723ed..a2455dc74a 100644 --- a/APPL/Shared/Shared.inc +++ b/APPL/Shared/Shared.inc @@ -1051,6 +1051,10 @@ var protectQS = verify: function (params) { params = params || {}; + + if (params.relaxed && Request.QueryString("hmac").Count == 0) + return false; + // vanuit API2 geven we checkqs en checkpath mee omdat die door IIS Rewrite // te veel veranderd zijn var checkurl = params.checkqs || String(Request.QueryString); diff --git a/APPL/Shared/default.csx b/APPL/Shared/default.csx index 6870f7dd3a..63296aabd4 100644 --- a/APPL/Shared/default.csx +++ b/APPL/Shared/default.csx @@ -2547,7 +2547,7 @@ body#mod_resmulti div#show_date_from { height: 250px } #mod_respool {width:600px;} #mod_bes_kenmerk {width:500px;} .modal.scaffolding {width:500px;} -#mod_mldobj #obj_info {height:99px; padding: 4px; border: 0px solid #ccc;} +#mod_mldobj #obj_info {height:150px; padding: 4px; border: 0px solid #ccc;} #mod_mldobj .label { width: 220px !important; } diff --git a/APPL/Shared/default.inc b/APPL/Shared/default.inc index e5a7521598..cd6ea23c92 100644 --- a/APPL/Shared/default.inc +++ b/APPL/Shared/default.inc @@ -9,7 +9,7 @@ Note: Sinds 5.2.2 zitten de settings in de database */ -var FCLTVersion="2015.3b"; +var FCLTVersion="2015.3c"; var FCLTMinDatabaseSchema="27"; var custpath = rooturl + "/cust/" + customerId; // path to customer files diff --git a/APPL/Shared/resultset_table_v2.inc b/APPL/Shared/resultset_table_v2.inc index bb79e48018..bd0bf22392 100644 --- a/APPL/Shared/resultset_table_v2.inc +++ b/APPL/Shared/resultset_table_v2.inc @@ -1061,6 +1061,7 @@ function __rsMakeTableHeader(oRs, oRsFlexData, anyMultiActions) if (columns[i].align) html += " style='text-align:" + columns[i].align + "'"; + sort_class += columns[i].thClass? " " + columns[i].thClass : ""; if (sort_class != null) html += " CLASS='" + sort_class + "' "; if (inlineDetails) @@ -1492,6 +1493,7 @@ function Column(params) this.image = params.image; this.action = params.action; this.tooltip = params.tooltip; + this.thClass = params.thClass; this.columnClass = params.columnClass; this.customSort = params.customSort; this.align = params.align;