<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
   description="custfunctions"
   progid="custfunction.wsc"
   version="1.00"
   classid="{5B59A501-7A03-47C7-9C02-6025C83C2FAD}"
>
</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="bez_postsave">
      <PARAMETER name="bezkeyArr"/>
   </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  */
/*
    $Id$
*/

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

bez_postsave = function (bezkeyArr, pResult)
{

    for (var i = 0; i < bezkeyArr.length; i++)
    {
      // prs_kenmerk    Veiligheids-DVD      1442
      // prs_kenmerk    Cursusdatum          1462
      var sql = "SELECT TO_CHAR( ADD_MONTHS( fac.safe_to_date(dvd.prs_kenmerklink_waarde,'DD-MM-YYYY'), 12), 'DD-MM-YYYY') dvd_verloopdatum,"
              + "       DECODE(dvd.prs_kenmerklink_waarde,"
              + "              NULL, NULL,"
              + "              SIGN( ADD_MONTHS( fac.safe_to_date(dvd.prs_kenmerklink_waarde,'DD-MM-YYYY'), 12) - a.bez_afspraak_eind) ) dvd_verlopen,"
              + "       TO_CHAR( ADD_MONTHS( fac.safe_to_date(lsr.prs_kenmerklink_waarde,'DD-MM-YYYY'), 36), 'DD-MM-YYYY') lsr_verloopdatum,"
              + "       DECODE(lsr.prs_kenmerklink_waarde,"
              + "              NULL, NULL,"
              + "              SIGN( ADD_MONTHS( fac.safe_to_date(lsr.prs_kenmerklink_waarde,'DD-MM-YYYY'), 36) - a.bez_afspraak_eind) ) lsr_verlopen,"
              + "       b.bez_afspraak_opmerking"
              + "  FROM bez_bezoekers b,"
              + "       (SELECT * FROM prs_kenmerklink"
              + "         WHERE prs_kenmerk_key = 1442"
              + "           AND prs_kenmerklink_verwijder IS NULL) dvd,"
              + "       (SELECT * FROM prs_kenmerklink"
              + "         WHERE prs_kenmerk_key = 1462"
              + "           AND prs_kenmerklink_verwijder IS NULL) lsr,"
              + "       bez_afspraak a"
              + " WHERE b.prs_contactpersoon_key IS NOT NULL"
              + "   AND b.prs_contactpersoon_key = dvd.prs_link_key(+)"
              + "   AND b.prs_contactpersoon_key = lsr.prs_link_key(+)"
              + "   AND a.bez_afspraak_key = b.bez_afspraak_key"
              + "   AND COALESCE(dvd.prs_link_key, lsr.prs_link_key) IS NOT NULL"
              + "   AND b.bez_bezoekers_key = " + bezkeyArr[i];
      var oRs = Oracle.Execute(sql);
      if (!oRs.Eof)
      {
        // xxx_verlopen is <0 als geldigheid verstreken is, >0 als nog niet verlopen, NULL als niet ingevuld
        var dvd_verlopen = oRs("dvd_verlopen").value;
        var dvd_verloopdatum = oRs("dvd_verloopdatum").value;
        var lsr_verlopen = oRs("lsr_verlopen").value;
        var lsr_verloopdatum = oRs("lsr_verloopdatum").value;
        var txt_sql = "";

        if (dvd_verlopen < 0)
        {
            __Log("Geldigheid veiligheids-DVD bezoeker "   + bezkeyArr[i] + " verlopen op "+dvd_verloopdatum+". Opmerking bijwerken.");
            txt_sql = "LET OP: Veiligheids-DVD verlopen op "+dvd_verloopdatum+"!";
        }
        if (lsr_verlopen < 0)
        {
            __Log("Geldigheid Life-saving rules bezoeker " + bezkeyArr[i] + " verlopen op "+lsr_verloopdatum+". Opmerking bijwerken.");
            if (txt_sql != "") {
               // Opmerking is max 50 karakters, dus dan maar iets korts laten zien.
               txt_sql = "LET OP: Veiligheids-DVD en LSR verlopen!";
            } else {
               txt_sql = "LET OP: Life-saving rules verlopen op "+lsr_verloopdatum+"!";
            }
        }
        // Nieuwe tekst vergelijken met oude opmerking en updaten als anders (dan maken we 't veld ook weer leeg)
        if (txt_sql != oRs("bez_afspraak_opmerking").value)
        {
            var sql = "UPDATE bez_bezoekers"
                    + "   SET bez_afspraak_opmerking = " + safe.quoted_sql(txt_sql)
                    + " WHERE bez_bezoekers_key = " + bezkeyArr[i];
            Oracle.Execute(sql);
        }
      }

      // AMB: checken of iemand wel een parkeerplaats mag
      var sql_park = "BEGIN akza_exchange.checkParking(" + bezkeyArr[i] + "); END;";
      Oracle.Execute(sql_park);

      oRs.Close();
    }

    return true;
}

]]>
</script>
</component>
