MARX#54166 API api_opdrsoap.asp ondersteunt geen type R (referentie kenmerk)

svn path=/Website/trunk/; revision=38932
This commit is contained in:
Alex Tiehuis
2018-08-23 13:58:18 +00:00
parent b2fdc136e5
commit 23e0d8d3d3
2 changed files with 100 additions and 72 deletions

View File

@@ -525,6 +525,53 @@ function getKpn(meld_kpn)
return -1;
}
// read the kenmerk_key in case of <kenmerk> with ref=code or value
function getKenmerkKeyByRef(kenmerkdomein_key, kenmerk_ref, kenmerk_waarde) {
var kenmerk_key = kenmerk_waarde,
fac_omschr_code, udf_omschr_code;
ksql = "SELECT fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_kenmerkdomein_verval, fac_usrtab_key" +
" FROM fac_kenmerkdomein" +
" WHERE fac_kenmerkdomein_key = " + kenmerkdomein_key +
" AND fac_kenmerkdomein_verwijder IS NULL";
var oRs_kd = Oracle.Execute(ksql);
if (!oRs_kd.eof) {
switch (kenmerk_ref) {
case "value":
fac_omschr_code = " AND UPPER(fac_usrdata_omschr)=" + safe.quoted_sql_upper(kenmerk_waarde);
udf_omschr_code = " WHERE UPPER(" + oRs_kd("fac_kenmerkdomein_kolomtxt").value + ") = " + safe.quoted_sql_upper(kenmerk_waarde);
break;
case "code":
fac_omschr_code = " AND UPPER(fac_usrdata_code)=" + safe.quoted_sql_upper(kenmerk_waarde);
udf_omschr_code = " WHERE UPPER(" + oRs_kd("fac_kenmerkdomein_objectnaam").value + "_CODE) = " + safe.quoted_sql_upper(kenmerk_waarde);
break;
default:
oRs_kd.Close;
return kenmerk_key;
}
var kenmerkdomein_verval = oRs_kd("fac_kenmerkdomein_verval").Value;
if (oRs_kd("fac_kenmerkdomein_objectnaam").Value == "FAC_USRDATA" && oRs_kd("fac_usrtab_key").Value) {
ksql = "SELECT fac_usrdata_key" +
" FROM fac_usrdata" +
" WHERE fac_usrtab_key=" + oRs_kd("fac_usrtab_key").Value +
fac_omschr_code +
" AND (fac_usrdata_vervaldatum IS NULL OR fac_usrdata_vervaldatum > SYSDATE)" +
" AND fac_usrdata_verwijder IS NULL";
} else {
ksql = "SELECT " + oRs_kd("fac_kenmerkdomein_kolomnaam").Value + " fac_usrdata_key" +
" FROM " + oRs_kd("fac_kenmerkdomein_objectnaam").Value +
udf_omschr_code +
(kenmerkdomein_verval != null ? " AND ( " + kenmerkdomein_verval + " IS NULL OR " + kenmerkdomein_verval + " > SYSDATE)" : "");
}
}
var oRs_ud = Oracle.Execute(ksql);
if (!oRs_ud.eof) {
kenmerk_key = String(oRs_ud("fac_usrdata_key").Value);
}
oRs_ud.Close;
oRs_kd.Close;
return kenmerk_key;
}
function upsertKenmerk(kenmerken, stdmld_key, mld_key)
{
for (j=0; j < kenmerken.length; j++)
@@ -573,42 +620,9 @@ function upsertKenmerk(kenmerken, stdmld_key, mld_key)
{
// read reference fields
if (kenmerk_waarde != "") {
ksql = "SELECT fac_kenmerkdomein_objectnaam,"
+ "fac_kenmerkdomein_kolomnaam,"
+ "fac_kenmerkdomein_kolomtxt,"
+ "fac_kenmerkdomein_verval,"
+ "fac_usrtab_key"
+ " FROM fac_kenmerkdomein"
+ " WHERE fac_kenmerkdomein_key = " + kenmerkdomein_key
+ " AND fac_kenmerkdomein_verwijder IS NULL";
var oRs_kd = Oracle.Execute(ksql);
if (!oRs_kd.eof) {
var kenmerkdomein_verval = oRs_kd("fac_kenmerkdomein_verval").Value;
if (oRs_kd("fac_kenmerkdomein_objectnaam").Value == "FAC_USRDATA" && oRs_kd("fac_usrtab_key").Value) {
ksql = "SELECT fac_usrdata_key"
+ " FROM fac_usrdata"
+ " WHERE fac_usrtab_key=" + oRs_kd("fac_usrtab_key").Value
+ " AND UPPER(fac_usrdata_omschr)=" + safe.quoted_sql_upper(kenmerk_waarde)
+ " AND (fac_usrdata_vervaldatum IS NULL OR fac_usrdata_vervaldatum > SYSDATE)"
+ " AND fac_usrdata_verwijder IS NULL";
} else {
ksql = "SELECT " + oRs_kd("fac_kenmerkdomein_kolomnaam").Value + " fac_usrdata_key"
+ " FROM " + oRs_kd("fac_kenmerkdomein_objectnaam").Value
+ " WHERE UPPER(" + oRs_kd("fac_kenmerkdomein_kolomtxt").Value + ") = " + safe.quoted_sql_upper(kenmerk_waarde)
+ (kenmerkdomein_verval != null ? " AND ( " + kenmerkdomein_verval + " IS NULL OR " + kenmerkdomein_verval + " > SYSDATE)" : "");
}
var oRs_ud = Oracle.Execute(ksql);
if (!oRs_ud.eof) {
kenmerk_waarde = String(oRs_ud("fac_usrdata_key").Value);
oRs_ud.Close;
} else {
oRs_ud.Close;
break;
}
oRs_kd.Close;
} else {
oRs_kd.Close;
break;
var kenmerk_ref = kenmerken[j].getAttribute("ref");
if (kenmerk_ref) {
kenmerk_waarde = getKenmerkKeyByRef(kenmerkdomein_key, kenmerk_ref, kenmerk_waarde);
}
}
}

View File

@@ -124,6 +124,53 @@ for (param in headerinfo)
}
FCLTElement.appendChild(elmHeader);
// read the kenmerk_key in case of <kenmerk> with ref=code or value
function getKenmerkKeyByRef(kenmerkdomein_key, kenmerk_ref, kenmerk_waarde) {
var kenmerk_key = kenmerk_waarde,
fac_omschr_code, udf_omschr_code;
ksql = "SELECT fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_kenmerkdomein_verval, fac_usrtab_key" +
" FROM fac_kenmerkdomein" +
" WHERE fac_kenmerkdomein_key = " + kenmerkdomein_key +
" AND fac_kenmerkdomein_verwijder IS NULL";
var oRs_kd = Oracle.Execute(ksql);
if (!oRs_kd.eof) {
switch (kenmerk_ref) {
case "value":
fac_omschr_code = " AND UPPER(fac_usrdata_omschr)=" + safe.quoted_sql_upper(kenmerk_waarde);
udf_omschr_code = " WHERE UPPER(" + oRs_kd("fac_kenmerkdomein_kolomtxt").value + ") = " + safe.quoted_sql_upper(kenmerk_waarde);
break;
case "code":
fac_omschr_code = " AND UPPER(fac_usrdata_code)=" + safe.quoted_sql_upper(kenmerk_waarde);
udf_omschr_code = " WHERE UPPER(" + oRs_kd("fac_kenmerkdomein_objectnaam").value + "_CODE) = " + safe.quoted_sql_upper(kenmerk_waarde);
break;
default:
oRs_kd.Close;
return kenmerk_key;
}
var kenmerkdomein_verval = oRs_kd("fac_kenmerkdomein_verval").Value;
if (oRs_kd("fac_kenmerkdomein_objectnaam").Value == "FAC_USRDATA" && oRs_kd("fac_usrtab_key").Value) {
ksql = "SELECT fac_usrdata_key" +
" FROM fac_usrdata" +
" WHERE fac_usrtab_key=" + oRs_kd("fac_usrtab_key").Value +
fac_omschr_code +
" AND (fac_usrdata_vervaldatum IS NULL OR fac_usrdata_vervaldatum > SYSDATE)" +
" AND fac_usrdata_verwijder IS NULL";
} else {
ksql = "SELECT " + oRs_kd("fac_kenmerkdomein_kolomnaam").Value + " fac_usrdata_key" +
" FROM " + oRs_kd("fac_kenmerkdomein_objectnaam").Value +
udf_omschr_code +
(kenmerkdomein_verval != null ? " AND ( " + kenmerkdomein_verval + " IS NULL OR " + kenmerkdomein_verval + " > SYSDATE)" : "");
}
}
var oRs_ud = Oracle.Execute(ksql);
if (!oRs_ud.eof) {
kenmerk_key = String(oRs_ud("fac_usrdata_key").Value);
}
oRs_ud.Close;
oRs_kd.Close;
return kenmerk_key;
}
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
var detected ="?";
@@ -808,42 +855,9 @@ for (i=0; i < opdrachten.length; i++)
{
// read reference fields
if (kenmerk_waarde != "") {
ksql = "SELECT fac_kenmerkdomein_objectnaam,"
+ "fac_kenmerkdomein_kolomnaam,"
+ "fac_kenmerkdomein_kolomtxt,"
+ "fac_kenmerkdomein_verval,"
+ "fac_usrtab_key"
+ " FROM fac_kenmerkdomein"
+ " WHERE fac_kenmerkdomein_key = " + kenmerkdomein_key
+ " AND fac_kenmerkdomein_verwijder IS NULL";
var oRs_kd = Oracle.Execute(ksql);
if (!oRs_kd.eof) {
var kenmerkdomein_verval = oRs_kd("fac_kenmerkdomein_verval").Value;
if (oRs_kd("fac_kenmerkdomein_objectnaam").Value == "FAC_USRDATA" && oRs_kd("fac_usrtab_key").Value) {
ksql = "SELECT fac_usrdata_key"
+ " FROM fac_usrdata"
+ " WHERE fac_usrtab_key=" + oRs_kd("fac_usrtab_key").Value
+ " AND UPPER(fac_usrdata_omschr)=" + safe.quoted_sql_upper(kenmerk_waarde)
+ " AND (fac_usrdata_vervaldatum IS NULL OR fac_usrdata_vervaldatum > SYSDATE)";
+ " AND fac_usrdata_verwijder IS NULL";
} else {
ksql = "SELECT " + oRs_kd("fac_kenmerkdomein_kolomnaam").value + " fac_usrdata_key"
+ " FROM " + oRs_kd("fac_kenmerkdomein_objectnaam").value
+ " WHERE UPPER(" + oRs_kd("fac_kenmerkdomein_kolomtxt").value + ") = " + safe.quoted_sql_upper(kenmerk_waarde)
+ (kenmerkdomein_verval != null ? " AND ( " + kenmerkdomein_verval + " IS NULL OR " + kenmerkdomein_verval + " > SYSDATE)" : "");
}
var oRs_ud = Oracle.Execute(ksql);
if (!oRs_ud.eof) {
kenmerk_waarde = String(oRs_ud("fac_usrdata_key").value);
oRs_ud.Close;
} else {
oRs_ud.Close;
break;
}
oRs_kd.Close;
} else {
oRs_kd.Close;
break;
var kenmerk_ref = opdrkenmerken[j].getAttribute("ref");
if (kenmerk_ref) {
kenmerk_waarde = getKenmerkKeyByRef(kenmerkdomein_key, kenmerk_ref, kenmerk_waarde);
}
}
}