<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
	description="custfunctions"
	progid="custfunction.wsc"
	version="1.00"
	classid="{4F51571C-1DFC-4769-B8DD-37B356378F12}"
>
</registration>

<public>

<!-- properties -->
	<property name="Oracle">
		<put/>
	</property>
	<property name="__Log">
		<put/>
	</property>
	<property name="__DoLog">
		<put/>
	</property>
	<property name="safe">
		<put/>
	</property>

<!-- methods -->
	<method name="res_postsave">
		<PARAMETER name="rsv_ruimte_key"/>
	</method>
</public>

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

/*	properties	*/
function put_Oracle(newValue)	{Oracle		= newValue};
function put___Log(newValue)	{__Log		= newValue};
function put___DoLog(newValue)	{__DoLog	= newValue};
function put_safe(newValue)	    {safe		= newValue};

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

    File:   UWVAcustfunction.wsc

*/

/* Dit zijn de enige drie functies die je mag gebruiken */
var Oracle;
var __Log;
var __DoLog;
var safe;

var HSLE_LetOp_srtkenmerk_key = 101;     // CHARACTER res srtflex to display tekst "Let op!!!: Heeft afgelopen 3 maanden 2x te laat ingeleverd." if in the past 3 months items have been returned too late.
var HSLE_TeLaat_srtkenmerk_key = 102;     // INTEGER/vinkveldje res srtflex to register if item is "Te laat teruggebracht" 


res_postsave = function (rsv_ruimte_key, pResult)
{
    if (HSLE_LetOp_srtkenmerk_key < 0)
        return true;
    var sql = "SELECT rk.res_kenmerk_key, rrr.res_rsv_ruimte_contact_key, rrr.res_activiteit_key "
            + "  FROM res_kenmerk rk, res_rsv_ruimte rrr"
            + " WHERE rk.res_srtkenmerk_key = " + HSLE_LetOp_srtkenmerk_key // Waarschuwing - let op flex kenmerk
            + "   AND rrr.res_rsv_ruimte_key = " + rsv_ruimte_key
            + "   AND rrr.res_activiteit_key = rk.res_activiteit_key";
    var oRs = Oracle.Execute(sql);
    if (oRs.Eof) // deze activiteit heeft geen let-op / waarschuwing-kenmerk
    {
        oRs.Close();
        return true;
    }
    var HSLE_Letop_kenmerk_key = oRs("res_kenmerk_key").Value;
    var HSLE_contact_key = oRs("res_rsv_ruimte_contact_key").Value;
    var HSLE_Act_key = oRs("res_activiteit_key").Value;
    
    oRs.Close();
    
    var sql = "DELETE FROM res_kenmerkwaarde rkw"
          + "   WHERE rkw.res_rsv_ruimte_key = " + rsv_ruimte_key
          + "     AND rkw.res_kenmerk_key = " + HSLE_Letop_kenmerk_key;
    Oracle.Execute(sql);

    
    // Hier komt het criterium waarop we het Let op kenmerk veld gaan vullen, dus in geval van te laat de tekst "Let op!!!: Heeft afgelopen 3 maanden 2x te laat ingeleverd."
    // Criterium/telling is als volgt:
    // 1. Tel het aantal keren dat het kenmerk-soort vinkje met key 102 is aangevinkt (HSLE_TeLaat_srtkenmerk_key)
    // 2. Van dezelfde activiteit-key "Uitleen" (HSLE_Act_key)
    // 3. Van dezelfde contactpersoon/aanvrager
    // 4. Van maximaal 90 dagen (+- 3 maanden) geleden.
       
    
		var sql = " SELECT COUNT(*) AS aantal FROM res_rsv_ruimte rrr, res_kenmerk rk, res_kenmerkwaarde rkw"
						+ " WHERE rk.res_srtkenmerk_key = " +  HSLE_TeLaat_srtkenmerk_key
						+ " AND rk.res_activiteit_key = " + HSLE_Act_key
						+ " AND rkw.res_kenmerk_key = rk.res_kenmerk_key"
						+ "	AND rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key"
						+ "	AND rrr.res_rsv_ruimte_contact_key = " + HSLE_contact_key
						+ "	AND rkw.res_kenmerkreservering_waarde = '1'"
						+ "	AND rrr.res_rsv_ruimte_tot >= (SYSDATE - 90)";
		var oRs = Oracle.Execute(sql);
		var HSLE_Aantal_x_Telaat = oRs("aantal").Value;
    oRs.Close();
    
    if (HSLE_Aantal_x_Telaat > 0)
    {
        var sql = "INSERT INTO res_kenmerkwaarde(res_rsv_ruimte_key, res_kenmerk_key, res_kenmerkreservering_waarde) "
              + "   VALUES (" + rsv_ruimte_key + ", " + HSLE_Letop_kenmerk_key + ", 'Heeft afgelopen 3 maanden " + HSLE_Aantal_x_Telaat + " keer te laat ingeleverd')";
        Oracle.Execute(sql);
    }
    return true;
}


]]>
</script>
</component>
