Files
Facilitor/APPL/Shared/kpl_ksrt_validate.inc
Jos Groot Lipman 0b3bc6525b FSN#23111 Overal svn:needlock op, keyword expansion aan en $Modtime vervangen door $Id
svn path=/Website/trunk/; revision=6149
2012-04-15 16:16:32 +00:00

86 lines
2.4 KiB
C++

<% /*
$Revision$
$Id$
File: kpl_ksrt_validate.nic
Description:
Parameters:
Context: Diverse save(!) script controleren.
Note:
*/ %>
<% // Validatie Kostenplaats - Kostensoort
// Result: true als ok, false als niet ok
// JGL: ks_key wordt bijvoorbeeld meegegeven vanuit mld_edit_opdr_save
// als de stdmeldig een specifiekere kostensoort heeft dan de discipline
function kpl_ksrt_validate(kp_key, ks_key, disc_key)
{
ks_key = ks_key || -1;
kp_key = kp_key || -1;
disc_key = disc_key || -1;
// omdat ks niet werd meegegeven, haal ik die hier evt zelf op. Mag vervallen als dat wel gebeurt.
if (ks_key == -1 && disc_key != -1)
{ // bepaal zelf een evt. kostensoort
var sql= "SELECT COALESCE(prs_kostensoort_key, -1) FROM ins_tab_discipline WHERE ins_discipline_key="+disc_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
ks_key = oRs(0).value;
}
oRs.Close();
}
var CombinationOk = false;
// start de afvalrace
if (ks_key == -1 || kp_key == -1)
CombinationOk = true;
if (!CombinationOk)
{
var kostenpltsgrp_key = -1;
var sql= "SELECT prs_kostenplaatsgrp_key FROM prs_kostenplaats WHERE prs_kostenplaats_key = " + kp_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
// het is goed als er geen groep gedefinieerd is
kostenpltsgrp_key = oRs("prs_kostenplaatsgrp_key").value;
CombinationOk = (kostenpltsgrp_key == null);
}
oRs.Close();
}
if (!CombinationOk)
{
// geldt er uberhaupt een restrictie op deze kostensoort?
sql = "SELECT 1"
+ " FROM prs_kostencombinatie kc"
+ " WHERE kc.prs_kostensoort_key = " + ks_key;
oRs = Oracle.Execute(sql);
if (oRs.eof)
{ // geen vermelding, dus ok
CombinationOk = true;
}
oRs.Close();
}
if (!CombinationOk)
{
sql = "SELECT prs_kostencombinatie_key"
+ " FROM prs_kostencombinatie kc"
+ " WHERE kc.prs_kostenplaatsgrp_key = " + kostenpltsgrp_key
+ " AND kc.prs_kostensoort_key = " + ks_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
CombinationOk = true;
}
oRs.Close();
}
return CombinationOk;
}
%>