<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
	description="flexware"
	progid="flexwhere.WSC"
	version="1.00"
	classid="{6D817B6F-9D08-4636-AAD9-8BD7C5EFF56A}"
>
</registration>

<public>

<!-- properties -->

<!-- methods -->
	<method name="initialize">
		<PARAMETER name="params"/>
	</method>
	<method name="transform_filter">
		<PARAMETER name="filter"/>
	</method>
	<method name="transform_outgoing">
		<PARAMETER name="params"/>
		<PARAMETER name="data"/>
	</method>
	<method name="transform_incoming">
		<PARAMETER name="params"/>
		<PARAMETER name="data"/>
	</method>
</public>

<script language="javascript">
<![CDATA[

/*	properties	*/


/*	methods	*/
/*
/*
    $Revision$
    $Id$

    File:   flexwhere.wsc
*/
/* Globals */
var FCLT;

// De omschrijving van de objecten in FACILITOR moet FW1, FW2 etc. zijn
var flexwhere_srtdeel_key = 258418;

function initialize(params)
{
    FCLT = params;
}

function transform_filter(filter)
{
    return { type: flexwhere_srtdeel_key };
}

// We krijgen bijvoorbeeld: {"RMS":[1,-10,-11,-12,-13,-14,-15,-16,-17,2,3,-4,-5,-6,-7,-8,-9]}
// Als het object aan staat wordt de id opgeleverd, anders -id
function transform_incoming(params, data)
{
    var result = [];
    if (!("RMS" in data))
        return null;

    for (var obj in data.RMS)
    {
        var fw = data.RMS[obj];
        var state = fw > 0 ? "1": "0";
        var fw_id = "FW" + String(Math.abs(fw));
        var sql = "SELECT ins_deel_key"
                + "  FROM ins_deel"
                + " WHERE ins_deel_verwijder IS NULL"
                + "   AND ins_srtdeel_key = " + flexwhere_srtdeel_key
                + "   AND ins_deel_omschrijving = " + FCLT.safe.quoted_sql(fw_id);
        var oRs = FCLT.Oracle.Execute(sql);
        if (!oRs.Eof)
        {
            result.push({
                "id": oRs("ins_deel_key").Value,
                "state": state
                //"statedate": "2014-07-08T15:29:31Z",
              })
        }
        oRs.Close()
    }
    return { objects: result };
}
// Als het object aan staat wordt de id opgeleverd, anders -id
// Bijvoorbeeld: {"RMS":[1,-10,-11,-12,-13,-14,-15,-16,-17,2,3,-4,-5,-6,-7,-8,-9]}
function transform_outgoing(params, data)
{
    var result = [];
    for (var obj in data.objects)
    {
        var fw_id = parseInt(data.objects[obj].name.substr(2),10);
        if (parseInt(data.objects[obj].state) > 0)
            result.push(fw_id);
        else
            result.push(-fw_id);
    }
    return { "RMS" : result };
}

]]>
</script>
</component>
