YKPN#55794 Melding wordt afgemeld als opdracht geannuleerd wordt

svn path=/Website/branches/v2018.2/; revision=40270
This commit is contained in:
Alex Tiehuis
2018-12-18 10:30:44 +00:00
parent 51b35657a1
commit 2b84f64f03

View File

@@ -157,40 +157,43 @@ var result = { opdr_key: ingesloten.join(","), message: "", success: false };
Oracle.Execute(sql);
}
// De status van de melding zou gewijzigd kunnen moeten worden hierdoor
var sluitmelding = mldClose(mld_opdr.typeopdr_sluitmelding, ingesloten);
result.mld_key = mld_opdr.mld_key;
mld.updatemeldingstatus(mld_opdr.mld_key, 0);
if (sluitmelding > 0 && mld_opdr.typeopdr_isofferte == 0) // misschien melding nu ook? Bij offertes melding nooit automatisch afmelden of de vraag weergeven
{ // Zijn er niet-afgemelde opdrachten bij dezelfde melding?
sql = "SELECT COUNT(*) aantal"
+ " FROM mld_opdr o1"
+ " WHERE o1.mld_melding_key = " + mld_opdr.mld_key
+ " AND o1.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9)";
oRs = Oracle.Execute(sql);
var nn = oRs("aantal").Value;
oRs.Close();
if (nn == 0) // Het was de laatste opdracht van de melding die nog niet afgemeld is
{
reqStatusEmptyMelding = mld.getReqStatusEmptyMelding(reqStatusEmptyMelding, mld_opdr.mld_key, 1); // Melding status "Afgewezen(1)"
if (reqStatusEmptyMelding.length == 0) // Alle verplichte kenmerken en/of verplicht object zijn ingevuld.
if (S("fac_reserved_number1") == 1)
{
var sluitmelding = mldClose(mld_opdr.typeopdr_sluitmelding, ingesloten);
result.mld_key = mld_opdr.mld_key;
if (sluitmelding > 0 && mld_opdr.typeopdr_isofferte == 0) // misschien melding nu ook? Bij offertes melding nooit automatisch afmelden of de vraag weergeven
{ // Zijn er niet-afgemelde opdrachten bij dezelfde melding?
sql = "SELECT COUNT(*) aantal"
+ " FROM mld_opdr o1"
+ " WHERE o1.mld_melding_key = " + mld_opdr.mld_key
+ " AND o1.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9)";
oRs = Oracle.Execute(sql);
var nn = oRs("aantal").Value;
oRs.Close();
if (nn == 0) // Het was de laatste opdracht van de melding die nog niet afgemeld is
{
// Mag ik dan ook de melding afmelden?
var this_mld = mld.func_enabled_melding(mld_opdr.mld_key);
result.canCloseMld = this_mld.canClose; // ondervangt ook de situatie dat hij al is afgemeld.
if (result.canCloseMld && (sluitmelding == 2)) // Autoclose mld
reqStatusEmptyMelding = mld.getReqStatusEmptyMelding(reqStatusEmptyMelding, mld_opdr.mld_key, 1); // Melding status "Afgewezen(1)"
if (reqStatusEmptyMelding.length == 0) // Alle verplichte kenmerken en/of verplicht object zijn ingevuld.
{
writeOpdrOpmToMld();
// Handle workflow actions for completion:
mld.nextworkflowstep(mld_opdr.mld_key, 1); // 1 = completed
mld.setmeldingstatus(mld_opdr.mld_key, 5);
result.canCloseMld = false; // want hij is net afgemeld.
}
else if (!result.canCloseMld && S("mld_add_mldopmerk_on_opdrclose") == 1 && opdr_opm != "")
{ // Afhandelingtekst van de opdracht automatisch kopi<70>ren naar de melding.
writeOpdrOpmToMld();
// Mag ik dan ook de melding afmelden?
var this_mld = mld.func_enabled_melding(mld_opdr.mld_key);
result.canCloseMld = this_mld.canClose; // ondervangt ook de situatie dat hij al is afgemeld.
if (result.canCloseMld && (sluitmelding == 2)) // Autoclose mld
{
writeOpdrOpmToMld();
// Handle workflow actions for completion:
mld.nextworkflowstep(mld_opdr.mld_key, 1); // 1 = completed
mld.setmeldingstatus(mld_opdr.mld_key, 5);
result.canCloseMld = false; // want hij is net afgemeld.
}
else if (!result.canCloseMld && S("mld_add_mldopmerk_on_opdrclose") == 1 && opdr_opm != "")
{ // Afhandelingtekst van de opdracht automatisch kopi<70>ren naar de melding.
writeOpdrOpmToMld();
}
}
// else: Als result.canCloseMld == true dan is sluitmelding == 1 en dan wordt alsnog de vraag gesteld of melding ook moet worden gesloten via callback functie
}
// else: Als result.canCloseMld == true dan is sluitmelding == 1 en dan wordt alsnog de vraag gesteld of melding ook moet worden gesloten via callback functie
}
}
}