AAIT#35610 -- Extern nummer ook op zoeken om opdracht te vinden.
svn path=/Website/branches/v2016.1/; revision=30349
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user