<%@ language="javascript" %>

<% /*
     $Revision$
     $Id$

    File:               bes_edit_item_kenmerk_save.asp
    Description:        Sla de wijziging van de kenmerken van een bestel-item op
    Parameters:
        item_key        bes_bestelling_item_key
        item_kenmerken  array van kenmerk_keys en waarden van het item
    Context:            vanuit bes_edit_item_kenmerk.asp als er een item-key aanwezig is
    Note:
*/ %>

<%
var JSON_Result = true;
%>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../bes/bes.inc" -->

<%
//protectRequest.validateToken();

var bes_item_key = getFParamInt("item_key");
var kenmerk_key_array = getFParamIntArray("item_kenmerk_key", []);
var kenmerk_val_array = getFParamArray("item_kenmerk_val", [], true);

var result = { success: true
             , message: ""
             };

// mag gewijzigd worden als gebruiker BESBOF-rechten heeft voor de catalogus van dit artikel.
var sql = "SELECT bes_bestelling_key"
        + "     , bes_srtdeel_key"
        + "  FROM bes_bestelling_item"
        + " WHERE bes_bestelling_item_key = " + bes_item_key;
var oRs = Oracle.Execute(sql);
var bestelling_key = oRs("bes_bestelling_key").Value;
var srtdeel_key = oRs("bes_srtdeel_key").Value;
oRs.Close();
var bresult = bes.func_enabled_bestelitem(bestelling_key, srtdeel_key);

if (bresult.canWrite("WEB_BESBOF"))
{
    for (i=0; i<kenmerk_key_array.length; i++)
    {
        // UPSERT
        var sql = "MERGE INTO bes_kenmerkbesteli t"
                + " USING (SELECT " + bes_item_key + " item_key"
                        + "     , " + kenmerk_key_array[i] + " kenmerk_key"
                        + "     , " + safe.quoted_sql(kenmerk_val_array[i]) + " kenmerk_waarde"
                        + "  FROM DUAL) s"
                + "    ON  (    t.bes_bestelling_item_key = s.item_key"
                        + " AND t.bes_kenmerk_key = s.kenmerk_key"
                        + ")"
                + "  WHEN MATCHED THEN"
                        + " UPDATE SET t.bes_kenmerkbesteli_waarde = s.kenmerk_waarde"
                + "  WHEN NOT MATCHED THEN"
                        + " INSERT ( bes_bestelling_item_key"
                                + ", bes_kenmerk_key"
                                + ", bes_kenmerkbesteli_waarde)"
                        + " VALUES ( s.item_key"
                                + ", s.kenmerk_key"
                                + ", s.kenmerk_waarde)";

        var err = Oracle.Execute(sql, true);
        if (err.friendlyMsg)
        {
            result.message = err.friendlyMsg;
            result.success = false;
        }
    }
}
else
{   // Geen autorisatie
    result.message = L("lcl_no_auth");
    result.success = false;
}

if (result.success)
    result.toaster = L("lcl_mobile_saved");

Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %>
