AANX#26646: 5.3.1. - Onduidelijkheden offertetraject.
svn path=/Website/branches/v5.3.1/; revision=17960
This commit is contained in:
@@ -292,10 +292,10 @@ mld = {setmeldingstatus:
|
||||
var sql="";
|
||||
if (mldstatus_str)
|
||||
{
|
||||
// Aantal openstaande opdrachten of offertes (opdracht of offerte doet er niet toe).
|
||||
// Openstaande opdrachten en offertes hebben de status 10, 3, 4, 5 of 6
|
||||
// Openstaande offertes hebben de status 10, 3, 4, 5 of 6 als
|
||||
// Offerte Acceptatie (offerte met een opdracht status 6) ook als open zien
|
||||
// Aantal openstaande opdrachten of offertes
|
||||
// Openstaande opdrachten hebben de status 10, 3, 4 of 5.
|
||||
// Openstaande offertes hebben de status 10, 3, 4, 5 of 6.
|
||||
// Offerte Acceptatie: offerte met een opdracht status 6 ook als open zien.
|
||||
var sql_opdr_be_open = " CASE (SELECT COUNT(o.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE mld_melding_key = m.mld_melding_key)"
|
||||
@@ -307,22 +307,26 @@ mld = {setmeldingstatus:
|
||||
+ " AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9))"
|
||||
+ " END";
|
||||
|
||||
// Aantal niet afgemelde offertes.
|
||||
// a) Aantal offertes die geen status 2 en 6 hebben (Er zijn geen opdrachten) => AND mld_opdr_key > 0
|
||||
// b) Aantal offertes/opdrachten die geen status 2 en 6 hebben (Er zijn opdrachten van eerdere offertes) => AND mld_opdr_key > MAX(o1.mld_opdr_key)
|
||||
var sql_offertes_not_afgemeld = " (SELECT COUNT(o.mld_statusopdr_key)"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , mld_typeopdr mo"
|
||||
+ " WHERE o.mld_typeopdr_key = mo.mld_typeopdr_key"
|
||||
+ " AND o.mld_melding_key = m.mld_melding_key"
|
||||
+ " AND mo.mld_typeopdr_isofferte = 1"
|
||||
+ " AND o.mld_statusopdr_key NOT IN (2, 6)"
|
||||
+ " AND o.mld_opdr_key > COALESCE ((SELECT MAX(o1.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o1"
|
||||
+ " , mld_typeopdr mo1"
|
||||
+ " WHERE o1.mld_typeopdr_key = mo1.mld_typeopdr_key"
|
||||
+ " AND mo1.mld_typeopdr_isofferte = 0"
|
||||
+ " AND o1.mld_melding_key = m.mld_melding_key), 0))";
|
||||
// Aantal afgeronde(9) offertes.
|
||||
// Een offerte die afgemelde, afgekeurde, afgewezen of verwerkte wordt veranderd de status van de melding niet.
|
||||
// Een offerte die afgerond(9) wordt veranderd de status van de melding van "Offerte acceptatie" naar "Offerte geaccepteerd".
|
||||
// a) Aantal afgeronde(9) offertes (die niet status 1, 2, 6 en/of 7 hebben)
|
||||
// (Er zijn geen opdrachten) => AND mld_opdr_key > 0
|
||||
// b) Aantal afgeronde(9) offertes/opdrachten (die geen status 1, 2, 6 en/of 7 hebben)
|
||||
// (Er zijn opdrachten van eerdere offertes) => AND mld_opdr_key > MAX(o1.mld_opdr_key)
|
||||
var sql_offertes_afgerond = " (SELECT COUNT(o.mld_statusopdr_key)"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , mld_typeopdr mo"
|
||||
+ " WHERE o.mld_typeopdr_key = mo.mld_typeopdr_key"
|
||||
+ " AND o.mld_melding_key = m.mld_melding_key"
|
||||
+ " AND mo.mld_typeopdr_isofferte = 1"
|
||||
+ " AND o.mld_statusopdr_key = 9" // AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7)
|
||||
+ " AND o.mld_opdr_key > COALESCE ((SELECT MAX(o1.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o1"
|
||||
+ " , mld_typeopdr mo1"
|
||||
+ " WHERE o1.mld_typeopdr_key = mo1.mld_typeopdr_key"
|
||||
+ " AND mo1.mld_typeopdr_isofferte = 0"
|
||||
+ " AND o1.mld_melding_key = m.mld_melding_key), 0))";
|
||||
|
||||
// Is de laatste opdracht bij de melding een offerte?
|
||||
var sql_last_is_offertes = " COALESCE((SELECT 1"
|
||||
@@ -379,7 +383,7 @@ mld = {setmeldingstatus:
|
||||
// En daarnaast geldt:
|
||||
// Opdrachten: De laatste opdracht is geen offerte.
|
||||
// Offertes: Offertes met niet afgemelde (6) offertes niet tonen (laatste opdracht is een offerte).
|
||||
+ " OR ((" + sql_opdr_be_open + " = 0 AND (" + sql_offertes_not_afgemeld + " != 0 OR " + sql_last_is_offertes + " = 0))"
|
||||
+ " OR ((" + sql_opdr_be_open + " = 0 AND (" + sql_offertes_afgerond + " != 0 OR " + sql_last_is_offertes + " = 0))"
|
||||
+ " AND (m.mld_melding_status = 4)))";
|
||||
}
|
||||
else
|
||||
@@ -387,7 +391,7 @@ mld = {setmeldingstatus:
|
||||
// En daarnaast geldt:
|
||||
// Opdrachten: De laatste opdracht is geen offerte.
|
||||
// Offertes: Offertes met niet afgemelde (6) offertes niet tonen (laatste opdracht is een offerte).
|
||||
sql = " AND (" + sql_opdr_be_open + " = 0 AND (" + sql_offertes_not_afgemeld + " != 0 OR " + sql_last_is_offertes + " = 0))"
|
||||
sql = " AND (" + sql_opdr_be_open + " = 0 AND (" + sql_offertes_afgerond + " != 0 OR " + sql_last_is_offertes + " = 0))"
|
||||
+ " AND (m.mld_melding_status = 4)";
|
||||
}
|
||||
}
|
||||
@@ -406,14 +410,14 @@ mld = {setmeldingstatus:
|
||||
// Voor meldingstatus 4 geldt.
|
||||
// Opdrachten: Er zijn geen opdrachten.
|
||||
// Offertes: Alle offertes staan ter acceptatie (zijn afgemeld (6)) (laatste opdracht is een offerte)
|
||||
+ " OR ((" + sql_opdr_be_open + " = -1 OR (" + sql_offertes_not_afgemeld + " = 0 AND " + sql_last_is_offertes + " = 1))"
|
||||
+ " OR ((" + sql_opdr_be_open + " = -1 OR (" + sql_offertes_afgerond + " = 0 AND " + sql_last_is_offertes + " = 1))"
|
||||
+ " AND (m.mld_melding_status = 4)))";
|
||||
}
|
||||
else
|
||||
{ // Voor meldingstatus 4 geldt.
|
||||
// Opdrachten: Er zijn geen opdrachten.
|
||||
// Offertes: Alle offertes staan ter acceptatie (zijn afgemeld (6)) (laatste opdracht is een offerte)
|
||||
sql = " AND (" + sql_opdr_be_open + " = -1 OR (" + sql_offertes_not_afgemeld + " = 0 AND " + sql_last_is_offertes + " = 1))"
|
||||
sql = " AND (" + sql_opdr_be_open + " = -1 OR (" + sql_offertes_afgerond + " = 0 AND " + sql_last_is_offertes + " = 1))"
|
||||
+ " AND (m.mld_melding_status = 4))";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user