AAIT#35610 -- Extern nummer ook op zoeken om opdracht te vinden.

svn path=/Website/branches/v2016.1/; revision=30349
This commit is contained in:
Arthur Egberink
2016-08-18 11:38:50 +00:00
parent a2ddc8e2c9
commit 38ee7aab1e

View File

@@ -132,8 +132,10 @@ for (i=0; i < opdrachten.length; i++)
var opdraction = opdrachten[i].getAttribute("type").toLowerCase(); // NEW/UPD
var externnr = XMLval(opdrachten[i], "externnr"); // NEW
var externopdrnr = XMLval(opdrachten[i], "externopdrnr");
var plandatum = XMLval(opdrachten[i], "plandatum");
var voor_key = parseInt(XMLval(opdrachten[i], "voor"), 10); // NEW
var voor_email = XMLval(opdrachten[i], "voor_email"); // NEW
var stdm_key = parseInt(XMLval(opdrachten[i], "stdmelding_key"), 10); // NEW
var topdr_key = parseInt(XMLval(opdrachten[i], "typeopdr_key"), 10); // NEW
var uitv_key = parseInt(XMLval(opdrachten[i], "bedrijf_key"), 10); // NEW
@@ -163,7 +165,42 @@ for (i=0; i < opdrachten.length; i++)
{ // Voorkom problemen als externnr-node ontbreekt/leeg!
externnr = '';
}
if (externopdrnr == null)
{ // Voorkom problemen als externopdrnr-node ontbreekt/leeg!
externopdrnr = '';
}
if (voor_email == null)
{ // Voorkom problemen als het emailadres ontbreekt/leeg!
voor_email = '';
}
// Zoek de voorkey op aan de hand van het emailadres
tsql = "SELECT prs_perslid_key "
+ " FROM prs_v_aanwezigperslid "
+ " WHERE UPPER(prs_perslid_email) = UPPER(" + safe.quoted_sql(voor_email) + ")";
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
voor_key = oRs("prs_perslid_key").value;
}
// Kijk of er een opdracht bestaat met dit externe opdracht nummer.
// Ben je bang dat het nummer vaker voorkomt dan kun je deze prefixen in de xsl
tsql = "SELECT MIN(mld_opdr_key) mld_opdr_key, COUNT(*) aantal"
+ " FROM mld_opdr"
+ " WHERE mld_opdr_id ="+ safe.quoted_sql(externopdrnr);
var oRs = Oracle.Execute(tsql);
if (oRs("aantal").value == 1)
{
tsql = "SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr mld_opdr_nr"
+ " FROM mld_opdr"
+ " WHERE mld_opdr_key ="+ oRs("mld_opdr_key").value;
var oRs = Oracle.Execute(tsql);
opdrid = oRs("mld_opdr_nr").value;
// Als het externe opdracht nummer al bestaat weten we zeker dat het om een update gaat.
opdraction = "update";
}
if (opdraction == "insert")
{
// Let op: mld_melding_externnr is niet gegarandeerd uniek: meerdere externe systemen
@@ -323,6 +360,12 @@ for (i=0; i < opdrachten.length; i++)
}
opdr_key = mldIns.sequences["mld_opdr_key"]; // Hier heb ik de geldige opdr_key (igv. insert).
tsql = "UPDATE mld_opdr"
+ " SET mld_opdr_id = " + safe.quoted_sql(externopdrnr)
+ " WHERE mld_opdr_key=" + opdr_key;
Oracle.Execute(tsql);
mld.setopdrachtstatus (opdr_key, 5);
mld.updatemeldingstatus (mld_key, 0);
}