Files
Facilitor/CUST/AKZA/custfunctions.wsc
Suzan Wiegerinck c71eb20481 AKZA#41202
svn path=/Website/branches/v2017.1/; revision=35446
2017-09-26 12:58:29 +00:00

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>