207 lines
8.8 KiB
XML
207 lines
8.8 KiB
XML
<?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>
|
|
<method name="mld_postsave">
|
|
<PARAMETER name="mld_melding"/>
|
|
</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 Poortinstructie 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 poortinstructie bezoeker " + bezkeyArr[i] + " verlopen op "+dvd_verloopdatum+". Opmerking bijwerken.");
|
|
txt_sql = "LET OP: Poortinstructie 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: Poortinstructie 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;
|
|
}
|
|
|
|
|
|
mld_postsave = function (mld_melding, pResult)
|
|
{
|
|
// Nieuwe meldingen waarbij het vinkje 'werkvergunning' (km 441) aan staat en de status is geaccepteerd (4)
|
|
// Of een nieuwe melding 'Werkvergunning aanvragen' (stdmld 1521)
|
|
// Voorlopig alleen Deventer (locatie key = 121)
|
|
var sql = "SELECT 1"
|
|
+ " FROM mld_melding m"
|
|
+ " , mld_kenmerkmelding km"
|
|
+ " , mld_kenmerk k"
|
|
+ " WHERE m.mld_melding_key = km.mld_melding_key(+)"
|
|
+ " AND m.mld_alg_locatie_key= 121"
|
|
+ " AND km.mld_kenmerk_key= k.mld_kenmerk_key(+)"
|
|
+ " AND ((k.mld_srtkenmerk_key = 441 AND m.mld_melding_status=4 )OR (m.mld_stdmelding_key = 1521 AND m.mld_melding_status=2))"
|
|
+ " AND m.mld_melding_key = " + mld_melding ;
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
// Kopieren masterbestand m.b.v. ASP FileSystemObject Object en/of ASP File Object.
|
|
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
|
|
|
// Eerst controleren of de drive, folder en het bestand aanwezig zijn. Anders niet kopieeren.
|
|
// Als het kopie al aanwezig is dan, dan niet opnieuw kopieeren
|
|
if (fso.DriveExists("d:") && fso.FolderExists("d:\\ptw") && fso.FileExists("d:\\ptw\\PTW Master 20170701 (Dutch).xlsm") && !fso.FileExists("d:\\ptw\\ptw-" + mld_melding + ".xlsm"))
|
|
{
|
|
fso.CopyFile("d:\\ptw\\PTW Master 20170701 (Dutch).xlsm", "d:\\ptw\\ptw-" + mld_melding + ".xlsm");
|
|
|
|
// TODO: Kenmerkwaarde werkvergunning (km961) vullen met locatie nieuwe bestand.
|
|
// Controleren of er al een kenmerkmelding record aanwezig is voor kenmerk 961.
|
|
sql = "SELECT 1"
|
|
+ " FROM mld_kenmerkmelding m"
|
|
+ " WHERE m.mld_kenmerk_key IN (SELECT k.mld_kenmerk_key"
|
|
+ " FROM mld_kenmerk k"
|
|
+ " WHERE k.mld_srtkenmerk_key = 961)"
|
|
+ " AND m.mld_melding_key = " + mld_melding;
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
sql = "UPDATE mld_kenmerkmelding m"
|
|
+ " SET m.mld_kenmerkmelding_waarde = 'ms-excel:ofe|u|http://facilitor.akzonobel.intra:81/PTW-' || " + mld_melding + " || '.xlsm'"
|
|
+ " WHERE m.mld_kenmerk_key IN (SELECT k.mld_kenmerk_key"
|
|
+ " FROM mld_kenmerk k"
|
|
+ " WHERE k.mld_srtkenmerk_key = 961)"
|
|
+ " AND m.mld_melding_key = " + mld_melding;
|
|
}
|
|
else
|
|
{
|
|
sql = "INSERT INTO mld_kenmerkmelding"
|
|
+ " (mld_melding_key"
|
|
+ " , mld_kenmerk_key"
|
|
+ " , mld_kenmerkmelding_waarde"
|
|
+ " )"
|
|
+ " VALUES (" + mld_melding
|
|
+ " , (SELECT k.mld_kenmerk_key"
|
|
+ " FROM mld_kenmerk k, mld_stdmelding s, mld_melding m "
|
|
+ " WHERE k.mld_srtkenmerk_key = 961"
|
|
+ " AND ((k.mld_kenmerk_niveau = 'S' AND k.mld_stdmelding_key = s.mld_stdmelding_key)"
|
|
+ " OR (k.mld_kenmerk_niveau = 'D' AND k.mld_stdmelding_key = s.mld_ins_discipline_key))"
|
|
+ " AND s.mld_stdmelding_key = m.mld_stdmelding_key"
|
|
+ " AND m.mld_melding_key = " + mld_melding + ")"
|
|
+ " , 'ms-excel:ofe|u|http://facilitor.akzonobel.intra:81/PTW-' || " + mld_melding + " || '.xlsm'"
|
|
+ " )";
|
|
}
|
|
Oracle.Execute(sql);
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
]]>
|
|
</script>
|
|
</component>
|