UWVA#36431 Passend mandaat opzoeken in organisatieboom savepoint
svn path=/Website/trunk/; revision=34959
This commit is contained in:
@@ -528,10 +528,7 @@ function model_orders(opdr_key, params)
|
||||
// Eerste fiatteur (pkey) mag niet fiatteren want het zit boven zijn profiel limiet.
|
||||
// De melder van de melding (user_key) mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// tot_kosten > can_selfapprove => user_key als exclude key meegeven.
|
||||
if (tot_kosten > S("can_selfapprove"))
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(kostenplaats_key, user_key);
|
||||
else
|
||||
approver_key = prs.getKpVerantwoordelijke(kostenplaats_key);
|
||||
approver_key = prs.getFiatteur(kostenplaats_key, (tot_kosten > S("can_selfapprove"))?user_key:-1, tot_kosten, disc_key);
|
||||
for_approval = true;
|
||||
}
|
||||
}
|
||||
@@ -826,10 +823,7 @@ function model_orders(opdr_key, params)
|
||||
// Het mandaat is al te hoog voor de melder/aanvrager van de melding.
|
||||
// De melder/aanmaker van de melding mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// tot_kosten > can_selfapprove => mld_info.melder_key als exclude key meegeven.
|
||||
if (tot_kosten > S("can_selfapprove"))
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(kostenplaats_key, mld_info.melder_key);
|
||||
else
|
||||
approver_key = prs.getKpVerantwoordelijke(kostenplaats_key);
|
||||
approver_key = prs.getFiatteur(kostenplaats_key, (tot_kosten > S("can_selfapprove"))?mld_info.melder_key:-1, tot_kosten, mld_info.disc);
|
||||
if (approver_key == -1)
|
||||
abort_with_warning(L("lcl_bes_exceed_limit"));
|
||||
refiat = true;
|
||||
|
||||
@@ -394,12 +394,6 @@
|
||||
|
||||
var staffel_info = bes.staffel_info(srtdeel_arr, amount_arr);
|
||||
|
||||
// Kan ik zelf fiatteren?: true: totaalbedrag <= can_selfapprove
|
||||
// false totaalbedrag > can_selfapprove
|
||||
// deze mag/hoeft niet meer te fiatteren
|
||||
var exclude_fiatter =
|
||||
"COALESCE(b.bes_bestelling_fiat_user, " + (staffel_info.totaalbedrag <= S("can_selfapprove")? -1 : "b.prs_perslid_key") + ") ";
|
||||
|
||||
// Get info of existing BES_BESTELLING
|
||||
var sql = "SELECT b.bes_bestelling_status"
|
||||
+ " , b.bes_bestelling_datum"
|
||||
@@ -417,7 +411,6 @@
|
||||
+ " , m.mld_adres_key"
|
||||
+ " , b.bes_bestelling_leverdatum"
|
||||
+ " , b.bes_bestelling_retourvan_key"
|
||||
+ " , prs.getkpverantwoordelijke (b.prs_kostenplaats_key, " + S("prs_approvemethod") + ", " + exclude_fiatter + ") fiatteur_key"
|
||||
+ " , b.bes_bestelling_fiat_user"
|
||||
+ " , b.bes_bestelling_korting"
|
||||
+ " , b.bes_bestelling_levkosten"
|
||||
@@ -461,7 +454,6 @@
|
||||
afleverruimte : oRs("bes_bestelling_plaats").Value,
|
||||
rfoDeliverydate : new Date(oRs("bes_bestelling_leverdatum").Value),
|
||||
rfoRetourVan : oRs("bes_bestelling_retourvan_key").Value,
|
||||
fiatteur_key : oRs("fiatteur_key").Value, // degene die het moet doen
|
||||
bes_bestelling_fiat_user : oRs("bes_bestelling_fiat_user").Value, // degene die al geweest is
|
||||
rfoBesKosten : oRs("bes_bestelling_korting").Value,
|
||||
rfoLevKosten : oRs("bes_bestelling_levkosten").Value,
|
||||
@@ -479,10 +471,17 @@
|
||||
}
|
||||
oRs.close();
|
||||
|
||||
// Kan ik zelf fiatteren?: true: totaalbedrag <= can_selfapprove
|
||||
// false totaalbedrag > can_selfapprove
|
||||
// deze mag/hoeft niet meer te fiatteren
|
||||
var exclude_fiatter =
|
||||
bes_bestelling.bes_bestelling_fiat_user || (staffel_info.totaalbedrag <= S("can_selfapprove")? -1 : bes_bestelling.perslid_key);
|
||||
|
||||
// Nu de info die indirect uit de bestelaanvraag regels afgeleid moet worden
|
||||
// Merk op dat het datamodel bestellingen uit meerdere catalogi ondersteund maar
|
||||
// de interface niet. Daarom kan hieronder de MAX(bsg.ins_discipline_key) om <20><>n record te krijgen
|
||||
var sql = "SELECT MAX(bsg.ins_discipline_key) ins_discipline_key"
|
||||
+ " , prs.getfiatteur (" + bes_bestelling.kostenplaats_key + ", " + exclude_fiatter + ", " + staffel_info.totaalbedrag + ", MAX(bsg.ins_discipline_key)) fiatteur_key"
|
||||
+ " , SUM(bi.bes_bestelling_item_aantal * bi.bes_bestelling_item_prijs) totaal"
|
||||
+ " , SUM(bi.bes_bestelling_item_aantalontv) aantalontv"
|
||||
+ " , MAX(bsg.bes_srtgroep_key) bes_srtgroep_key" // Wordt gebruikt tbv. singlegroep en dan is er maar eentje
|
||||
@@ -510,10 +509,11 @@
|
||||
if (oRs("ins_discipline_key").Value == null)
|
||||
shared.internal_error("BES: no item lines.");
|
||||
|
||||
bes_bestelling.dis_key = oRs("ins_discipline_key").Value,
|
||||
bes_bestelling.srtgroep = oRs("bes_srtgroep_key").Value,
|
||||
bes_bestelling.singlegroep = oRs("singlegroep").Value == 1,
|
||||
bes_bestelling.inclBTW = oRs("inclBTW").Value || 0,
|
||||
bes_bestelling.dis_key = oRs("ins_discipline_key").Value;
|
||||
bes_bestelling.fiatteur_key = oRs("fiatteur_key").Value; // degene die het moet doen
|
||||
bes_bestelling.srtgroep = oRs("bes_srtgroep_key").Value;
|
||||
bes_bestelling.singlegroep = oRs("singlegroep").Value == 1;
|
||||
bes_bestelling.inclBTW = oRs("inclBTW").Value || 0;
|
||||
bes_bestelling.totaal = oRs("totaal").Value || 0;
|
||||
bes_bestelling.aantalontv = oRs("aantalontv").Value || 0;
|
||||
if (oRs("aantal_bedrijf").Value == 1) // Anders te ingewikkeld
|
||||
@@ -1366,26 +1366,15 @@
|
||||
|
||||
getApprover: function(params)
|
||||
{ // Bepaalde de fiatteur (KP verantwoordelijke of KPG verantwoordlijke).
|
||||
// Levert altijd de eerste fiatteur op maar controleert wel alvast of (als zijn
|
||||
// budget niet echt genoeg is) of de KPG verantwoordelijke wel voldoende budget
|
||||
// heeft. Anders stokt het verderop in het proces.
|
||||
var prs_key = params.prs_key;
|
||||
var prs_key_voor = params.prs_key_voor;
|
||||
var dis_key = params.dis_key;
|
||||
var kp_key = params.kp_key;
|
||||
var totaalbedrag = params.totaalbedrag;
|
||||
|
||||
var bes_bestelling = params.bes_bestelling;
|
||||
var bes_disc_info = params.bes_disc_info;
|
||||
var pgb = bes_disc_info.disc_params_pgb;
|
||||
var autoacceptrfo = bes_disc_info.disc_params_autoacceptrfo;
|
||||
|
||||
var isFE = params.isFE;
|
||||
var oldStatus = params.oldStatus;
|
||||
var act_mode = params.act_mode;
|
||||
|
||||
var approver_key = -1;
|
||||
if (prs_key > 0 && totaalbedrag > S("can_selfapprove"))
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(kp_key, prs_key);
|
||||
else
|
||||
approver_key = prs.getKpVerantwoordelijke(kp_key);
|
||||
var approver_key = prs.getFiatteur(kp_key, totaalbedrag > S("can_selfapprove")?prs_key:-1, totaalbedrag, dis_key);
|
||||
__Log('Eerstgevonden fiatteur: ' + approver_key);
|
||||
if (approver_key == -1) {
|
||||
// geen fiatteur gevonden, bestellen niet mogelijk
|
||||
@@ -1396,7 +1385,7 @@
|
||||
{ // de gevonden fiatteur heeft onvoldoende profiel, is er een hogere (kpngroepverantwoordelijke)
|
||||
// Let wel: alleen controle of hij er bestaat. Wie het is doen we nog niets mee hier.
|
||||
__Log('voldoet niet');
|
||||
var nextapprover_key = prs.getKpVerantwoordelijkeExcept(kp_key, approver_key);
|
||||
var nextapprover_key = prs.getFiatteur(kp_key, approver_key, totaalbedrag, dis_key);
|
||||
__Log('Vervolgensgevonden fiatteur: ' + nextapprover_key);
|
||||
if (nextapprover_key == -1 || budget.exceeds_profiel(totaalbedrag, nextapprover_key, dis_key))
|
||||
{
|
||||
@@ -1529,7 +1518,7 @@
|
||||
upsert_deel: function _upsert_deel(dis_key, params)
|
||||
{
|
||||
if (!("srtdeel_btw" in params))
|
||||
params.srtdeel_btw = 21.0;
|
||||
params.srtdeel_btw = 21.0; // Wordt vaak in custfunctions.wsc/hook bes_punch_receive gecorrigeerd
|
||||
if (!("srtgroep_omschrijving" in params) && params.srtgroep_key > 0)
|
||||
{ // upsert_srtdeel werkt alleen op basis van omschrijving, helaas (nog) niet op srtgroep_key
|
||||
var sql = "SELECT bes_srtgroep_omschrijving"
|
||||
|
||||
@@ -101,7 +101,8 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
// Fiatteringsproces moet gevolgd worden op de naam van de "voor wie" (bestelling voor)
|
||||
// Als bes_disc_params_for_others niet is gezet zijn perslid_key en perslid_key_voor identiek
|
||||
// Haal de kostenplaatsgroep verantwoordelijke/fiatteur op. De kolom b.bes_bestelling_fiat_user is gevuld met de user_key).
|
||||
sql = "SELECT prs.getkpverantwoordelijke (b.prs_kostenplaats_key, 1, COALESCE (b.bes_bestelling_fiat_user, -1)) kpg_fiatteur_key"
|
||||
// Geen methode 3 dus bedrag/ discipline hoeft er niet in
|
||||
sql = "SELECT prs.getfiatteur (b.prs_kostenplaats_key, 1 /*Altijd kpgroep*/, COALESCE (b.bes_bestelling_fiat_user, -1), NULL, NULL) kpg_fiatteur_key"
|
||||
+ " FROM bes_bestelling b"
|
||||
+ " WHERE b.bes_bestelling_key = " + ingesloten[i].bes_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
@@ -1704,11 +1704,11 @@ function bes_list (pautfunction, params)
|
||||
+ " WHERE k.prs_kostenplaats_key = b.prs_kostenplaats_key) budgethouder"
|
||||
+ " , SUM(i.bes_bestelling_item_aantal) aantal"
|
||||
+ " , MAX(bes_bestelopdr_item_key) isordered"
|
||||
+ " , (SELECT " + S("prs_pers_string")
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = prs.getkpverantwoordelijke (b.prs_kostenplaats_key, " + S("prs_approvemethod") + ", " + exclude_fiatter + ")) fiatteur"
|
||||
+ " , (SELECT " + S("prs_pers_string")
|
||||
+ " FROM prs_perslid p"
|
||||
+ " , (SELECT prs_perslid_naam_full"
|
||||
+ " FROM prs_v_perslid_fullnames_all p"
|
||||
+ " WHERE p.prs_perslid_key = prs.getfiatteur (b.prs_kostenplaats_key, " + exclude_fiatter + ", " + totaalbedrag + ", bd.ins_discipline_key)) fiatteur"
|
||||
+ " , (SELECT prs_perslid_naam_full"
|
||||
+ " FROM prs_v_perslid_fullnames_all p"
|
||||
+ " WHERE p.prs_perslid_key = b.bes_bestelling_fiat_user) fiat_user"
|
||||
+ " , bd.ins_discipline_key"
|
||||
+ " , l.alg_locatie_key"
|
||||
|
||||
@@ -56,7 +56,7 @@ function getSqlFiatBes(fiatstatus, prsKeys, params)
|
||||
+ " FROM prs_v_perslid_fullnames_all p2"
|
||||
+ " WHERE p2.prs_perslid_key ="
|
||||
+ (fiatstatus == "open"
|
||||
? " prs.getkpverantwoordelijke (b.prs_kostenplaats_key, " + S("prs_approvemethod") + ", " + exclude_fiatter + "))" // Open. Toon wie de fiatteur is.
|
||||
? " prs.getfiatteur (b.prs_kostenplaats_key, " + exclude_fiatter + ", " + totaalbedrag + ", td.ins_discipline_key))" // Open. Toon wie de fiatteur is.
|
||||
: " b.bes_bestelling_fiat_user)") // Gefiatteerd en afgewezen. Toon wie dat is geweest. (Afwijzer werd voorheen niet opgeslagen, nu wel)
|
||||
|
||||
// Tijdens het uiteindelijk fiatteren wordt gekeken afhankelijk van totaalbedrag of er wellicht na kostenplaatsverantwoordelijke ook nog door kostenplaatsgroepverantwoordelijke moet worden gefiatteerd.
|
||||
@@ -116,7 +116,7 @@ function getSqlFiatBes(fiatstatus, prsKeys, params)
|
||||
+ " ELSE 4"
|
||||
+ " END"
|
||||
/* A1 */ + " AND ((bes_bestelling_fiat_user IS NULL AND"
|
||||
+ " prs.getkpverantwoordelijke (b.prs_kostenplaats_key, " + S("prs_approvemethod") + ", " + exclude_fiatter + ") IN (" + prsKeys + ")" + ")"
|
||||
+ " prs.getfiatteur (b.prs_kostenplaats_key, " + exclude_fiatter + ", " + totaalbedrag + ", td.ins_discipline_key) IN (" + prsKeys + ")" + ")"
|
||||
/* A2 */ + " OR (bes_bestelling_fiat_user IS NOT NULL AND"
|
||||
+ " ver.prs_perslid_key IN (" + prsKeys + ")" + "))"
|
||||
: " AND ft.fac_tracking_refkey = b.bes_bestelling_key"
|
||||
@@ -143,7 +143,8 @@ function getSqlFiatBes(fiatstatus, prsKeys, params)
|
||||
+ " , b.bes_bestelling_fiat_user"
|
||||
+ " , bes_bestelling_parentkey"
|
||||
+ " , l.alg_locatie_omschrijving"
|
||||
+ " , l.alg_locatie_code";
|
||||
+ " , l.alg_locatie_code"
|
||||
+ " , td.ins_discipline_key";
|
||||
return sql;
|
||||
}
|
||||
|
||||
@@ -475,7 +476,7 @@ function getSqlFiatMld(fiatstatus, prsKeys, params)
|
||||
+ " AND st.fac_srtnotificatie_code = 'ORDFOK'"
|
||||
+ " AND fac_tracking_refkey = op.mld_opdr_key"
|
||||
+ " )"
|
||||
+ " THEN prs.getkpverantwoordelijke (op.prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1)"
|
||||
+ " THEN prs.getfiatteur (op.prs_kostenplaats_key, -1, mld_opdr_kosten, td.ins_discipline_key)"
|
||||
/* A2 */ + " ELSE ver.prs_perslid_key"
|
||||
+ " END"
|
||||
+ " AND p2.prs_perslid_key IN (" + prsKeys + ")" // Wel ORDFOK tracking aanwezig. Neem kostenplaatsgroepverantwoordelijke
|
||||
@@ -809,8 +810,7 @@ function getSqlFiatFin(fiatstatus, prsKeys, params)
|
||||
+ " ELSE NULL" // f.bes_bestelopdr_key IS NOT NULL en f.cnt_contract_key IS NOT NULL
|
||||
+ " END terrein"
|
||||
+ " , NULL omschrijving"
|
||||
+ " FROM (SELECT prs.getkpverantwoordelijke(prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1) budgethouder,"
|
||||
+ " f.* FROM (select fin.getfactuurkostenplaats(f.fin_factuur_key) prs_kostenplaats_key, f.* from fin_factuur f) f) f"
|
||||
+ " FROM (SELECT fin.getfiatteur(f.fin_factuur_key) budgethouder, f.* from fin_factuur f) f"
|
||||
+ " , prs_v_perslid_fullnames_all pf"
|
||||
+ " , bes_bestelopdr bo"
|
||||
+ " , mld_opdr o"
|
||||
|
||||
@@ -19,7 +19,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
if (pfin_key > 0)
|
||||
{
|
||||
var fsql = "SELECT f.fin_factuur_statuses_key"
|
||||
+ " , prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), "+S("prs_approvemethod")+", -1) kpverantwoordelijke"
|
||||
+ " , fin.getfiatteur(f.fin_factuur_key) kpverantwoordelijke"
|
||||
+ " , prs_perslid_key_goedkeur"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE fin_factuur_key = " + pfin_key
|
||||
|
||||
@@ -139,16 +139,14 @@ function fin_list (params)
|
||||
sql = "SELECT f.fin_factuur_key factuurnr_intern"
|
||||
+ " , fin_factuur_verwijder"
|
||||
+ " , f.fin_factuur_datum factuur_datum"
|
||||
+ " , COALESCE((SELECT b.prs_bedrijf_naam"
|
||||
+ " FROM prs_bedrijf b"
|
||||
+ " WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)),"
|
||||
+ " , COALESCE(b.prs_bedrijf_naam,"
|
||||
+ " (SELECT " + S("prs_dep_string")
|
||||
+ " FROM prs_v_afdeling d"
|
||||
+ " WHERE d.prs_afdeling_key = c.cnt_prs_afdeling_key),"
|
||||
+ " (SELECT pf.prs_perslid_naam_full"
|
||||
+ " FROM prs_v_perslid_fullnames_all pf"
|
||||
+ " WHERE pf.prs_perslid_key = c.cnt_prs_perslid_key)) uitvoerende"
|
||||
+ " , (SELECT b.prs_leverancier_nr FROM prs_bedrijf b WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)) leverancier_nr"
|
||||
+ " , b.prs_leverancier_nr"
|
||||
+ " , fin_factuur_nr factuurnr_extern"
|
||||
+ " , f.mld_opdr_key "
|
||||
+ " , f.cnt_contract_key "
|
||||
@@ -167,7 +165,7 @@ function fin_list (params)
|
||||
+ " , f.fin_factuur_bron"
|
||||
+ " , f.fin_factuur_totaal + f.fin_factuur_totaal_btw bedrag_incl_BTW"
|
||||
+ " , f.fin_factuur_totaal bedrag_excl_BTW"
|
||||
+ " , f.fin_factuur_boekmaand boekmaand"
|
||||
+ " , f.fin_factuur_boekmaand"
|
||||
+ " , f.fin_factuur_statuses_key"
|
||||
+ " , f.fin_factuur_opmerking"
|
||||
+ " , fin.matchfactuur(f.fin_factuur_key) roodgroen"
|
||||
@@ -236,8 +234,9 @@ function fin_list (params)
|
||||
+ " FROM alg_v_onroerendgoed onrg"
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)) mld_fiat_write";
|
||||
|
||||
sql += " FROM fin_factuur f"
|
||||
+ " LEFT OUTER JOIN mld_opdr o "
|
||||
sql += " FROM (SELECT fin.getfiatteur(f.fin_factuur_key) budgethouder, f.* from fin_factuur f) f"
|
||||
/* Opdrachten */
|
||||
+ " LEFT OUTER JOIN mld_opdr o "
|
||||
+ " ON f.mld_opdr_key = o.mld_opdr_key "
|
||||
+ " LEFT OUTER JOIN mld_melding m "
|
||||
+ " ON o.mld_melding_key = m.mld_melding_key "
|
||||
@@ -247,10 +246,12 @@ function fin_list (params)
|
||||
+ " ON sm.mld_ins_discipline_key = d.ins_discipline_key "
|
||||
+ " LEFT OUTER JOIN ins_srtdiscipline sd "
|
||||
+ " ON d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key "
|
||||
/* Contracten */
|
||||
+ " LEFT OUTER JOIN cnt_contract c "
|
||||
+ " ON f.cnt_contract_key = c.cnt_contract_key "
|
||||
+ " LEFT OUTER JOIN cnt_discipline cd"
|
||||
+ " ON c.ins_discipline_key = cd.ins_discipline_key"
|
||||
/* Bestellingen */
|
||||
+ " LEFT OUTER JOIN bes_bestelopdr bo"
|
||||
+ " ON f.bes_bestelopdr_key = bo.bes_bestelopdr_key "
|
||||
+ " LEFT OUTER JOIN ( SELECT boi.bes_bestelopdr_key, "
|
||||
@@ -269,17 +270,10 @@ function fin_list (params)
|
||||
+ " bbi.bes_bestelopdr_item_key "
|
||||
+ " GROUP BY boi.bes_bestelopdr_key) bb "
|
||||
+ " ON f.bes_bestelopdr_key = bb.bes_bestelopdr_key "
|
||||
+ " LEFT OUTER JOIN (SELECT prs.getkpverantwoordelijke ( "
|
||||
+ " prs_kostenplaats_key, "
|
||||
+ S("prs_approvemethod") + ", "
|
||||
+ " -1) "
|
||||
+ " budgethouder, "
|
||||
+ " kp.* "
|
||||
+ " FROM prs_kostenplaats kp) k "
|
||||
+ " ON k.prs_kostenplaats_key = COALESCE (bb.prs_kostenplaats_key, "
|
||||
+ " c.prs_kostenplaats_key, "
|
||||
+ " o.prs_kostenplaats_key, "
|
||||
+ " m.prs_kostenplaats_key) ";
|
||||
+ " LEFT OUTER JOIN prs_kostenplaats k "
|
||||
+ " ON k.prs_kostenplaats_key = fin.getfactuurkostenplaats(f.fin_factuur_key) "
|
||||
+ " LEFT OUTER JOIN prs_bedrijf b"
|
||||
+ " ON b.prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)";
|
||||
|
||||
sql += " WHERE 1=1"; // Nu de where clause bouwen
|
||||
|
||||
@@ -584,7 +578,7 @@ function fin_list (params)
|
||||
sql += " AND (" + subsql.join(" OR ") + ")";
|
||||
}
|
||||
if (handler_key)
|
||||
sql += " AND COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key) = " + handler_key;
|
||||
sql += " AND b.prs_bedrijf_key = " + handler_key;
|
||||
|
||||
// Maken we gebruik van beperkte relaties?
|
||||
lsql= "SELECT 1 FROM prs_bedrijf_bedrijf WHERE ROWNUM = 1";
|
||||
@@ -603,7 +597,7 @@ function fin_list (params)
|
||||
|
||||
// als ik de leverancier ben: mijn facturen; die route loopt via contactpersoon he.
|
||||
// doet hetzelfde als wanneer de default handler_key is meegegeven maar nu sowieso, wat je ook meegeeft.
|
||||
var sqlL = "(COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key) IN "
|
||||
var sqlL = "(b.prs_bedrijf_key IN "
|
||||
+ "(SELECT cp.prs_bedrijf_key"
|
||||
+ " FROM prs_contactpersoon cp"
|
||||
+ " WHERE cp.prs_perslid_key = " + user_key + "))";
|
||||
@@ -912,12 +906,12 @@ function fin_list (params)
|
||||
buttons: buttons
|
||||
});
|
||||
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_nr"), content: "factuurnr_intern"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_nr"), content: function (oRs) { return safe.html(String(oRs("factuurnr_intern"))) }}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_date"), content: "factuur_datum", datatype: "date", hasActions: true, nowrap: true}));
|
||||
rst.addColumn(new Column({caption: L("lcl_handler"), content: "uitvoerende",
|
||||
purpose:(params.cnt_key||params.opdr_key||params.bes_key ? PRINTING_ONLY : PRINT_AND_VIEW)}));
|
||||
if (outputmode != 0)
|
||||
rst.addColumn(new Column({caption: L("lcl_prs_companies_leverancier_nr"), content: "leverancier_nr"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_prs_companies_leverancier_nr"), content: "prs_leverancier_nr"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_invoice_nr_extern"), content: "factuurnr_extern"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_type"), content: fnOpdrtype,
|
||||
purpose:(params.cnt_key||params.opdr_key||params.bes_key ? PRINTING_ONLY : PRINT_AND_VIEW)}));
|
||||
@@ -936,7 +930,7 @@ function fin_list (params)
|
||||
if (excel)
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_bestelopdr_volledig"), content: fnvolledig}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_note"), content: outputmode==0?fnnote:fnnotedate, combine: outputmode==0}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_divide_period"), content: "boekmaand"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_divide_period"), content: "fin_factuur_boekmaand"}));
|
||||
if (!fin_type || fin_type == "B")
|
||||
rst.addColumn(new Column({caption: L("lcl_fin_besteller"), content: "besteller"}));
|
||||
if (!embedded)
|
||||
|
||||
@@ -36,7 +36,7 @@ var ingesloten = [];
|
||||
// Bepaal de facturen in de selectie die
|
||||
// ook echt gefiatteerd kunnen of mogen worden.
|
||||
var sql = "SELECT fin_factuur_key"
|
||||
+ " , prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) kpverantwoordelijke"
|
||||
+ " , fin.getfiatteur(f.fin_factuur_key) kpverantwoordelijke"
|
||||
+ " , prs_perslid_key_goedkeur"
|
||||
+ " , fin_factuur_statuses_key"
|
||||
+ " FROM fin_factuur f"
|
||||
|
||||
@@ -36,7 +36,7 @@ var ingesloten = [];
|
||||
// Bepaal de facturen in de selectie die
|
||||
// ook echt gefiatteerd kunnen of mogen worden.
|
||||
var sql = "SELECT fin_factuur_key"
|
||||
+ " , prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) kpverantwoordelijke"
|
||||
+ " , fin.getfiatteur(f.fin_factuur_key) kpverantwoordelijke"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE fin_factuur_key IN (" + fin_key_arr.join(",") + ")"
|
||||
+ " AND fin_factuur_verwijder IS NULL"
|
||||
@@ -54,6 +54,7 @@ while (!oRs.eof)
|
||||
}
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
user.anything_todo_or_abort(tobeunrejected > 0); // enkele wel en enkele niet klagen we niet over
|
||||
|
||||
var ingeslotenstr = ingesloten.join(",");
|
||||
@@ -69,7 +70,7 @@ if (tobeunrejected > 0)
|
||||
{
|
||||
shared.trackaction("FINFUN", ingesloten[f]);
|
||||
}
|
||||
oRs = Oracle.Execute(sql);
|
||||
Oracle.Execute(sql);
|
||||
result.success = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -378,10 +378,7 @@ mld = {setmeldingstatus:
|
||||
// Eerste fiatteur (pkey) mag niet fiatteren want het zit boven zijn profiel limiet.
|
||||
// De melder melding of the opdrachtaanmaker van de melding (pkey) mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// totaalbedrag > can_selfapprove => prs_key als exclude key meegeven.
|
||||
if (mld_opdr.t_cost > S("can_selfapprove"))
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(mld_opdr.kp_key, pkey);
|
||||
else
|
||||
approver_key = prs.getKpVerantwoordelijke(mld_opdr.kp_key);
|
||||
approver_key = prs.getFiatteur(mld_opdr.kp_key, (mld_opdr.t_cost > S("can_selfapprove"))?pkey:-1, mld_opdr.t_cost, mld_info.disc);
|
||||
|
||||
if (approver_key > -1)
|
||||
{
|
||||
@@ -2079,7 +2076,7 @@ mld = {setmeldingstatus:
|
||||
+ " , o.fac_activiteit_key"
|
||||
+ " , mu.type"
|
||||
+ " , mu.intern"
|
||||
+ " , p2.prs_perslid_key fiatteur_kp_key"
|
||||
+ " , prs.getfiatteur (o.prs_kostenplaats_key, -1, mld_opdr_kosten, sm.mld_ins_discipline_key) fiatteur_kp_key"
|
||||
+ " , (SELECT kg.prs_perslid_key"
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " , prs_kostenplaatsgrp kg"
|
||||
@@ -2116,7 +2113,6 @@ mld = {setmeldingstatus:
|
||||
+ " , mld_typeopdr mto"
|
||||
+ " , cnt_v_aanwezigcontract c"
|
||||
+ " , mld_v_uitvoerende mu"
|
||||
+ " , prs_v_perslid_fullnames_all p2"
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key"
|
||||
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
|
||||
+ " AND sm.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
@@ -2125,7 +2121,6 @@ mld = {setmeldingstatus:
|
||||
+ " AND o.mld_typeopdr_key = mto.mld_typeopdr_key"
|
||||
+ " AND o.cnt_contract_key = c.cnt_contract_key(+)"
|
||||
+ " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key"
|
||||
+ " AND p2.prs_perslid_key(+) = prs.getkpverantwoordelijke (o.prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1)"
|
||||
+ " AND o.mld_opdr_key = " + opdr_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
@@ -2654,13 +2649,13 @@ mld = {setmeldingstatus:
|
||||
while (!oRs.EOF)
|
||||
{
|
||||
var displaymode = oRs("fac_faq_displaymode").Value;
|
||||
if (displaymode == 0) // Auto
|
||||
if (!(displaymode & 1)) // Pop-up
|
||||
{
|
||||
if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE
|
||||
|| ((S("faq_kennisbank_popup") & 2) && canFAQFOFread)) // Voor FO
|
||||
result.popup_faq = true
|
||||
}
|
||||
else
|
||||
if (displaymode > 0) // Vast in beeld
|
||||
{
|
||||
var data = { question: oRs("fac_faq_question").Value,
|
||||
answer: safe.fclthtml(oRs("fac_faq_answer").Value),
|
||||
@@ -2744,6 +2739,7 @@ mld = {setmeldingstatus:
|
||||
|
||||
var filtWHERE = " AND ff.fac_faq_key = sf.fac_faq_key"
|
||||
+ " AND ff.fac_faq_key = af.fac_faq_key"
|
||||
+ " AND ff.fac_faq_displaymode <> 0"
|
||||
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)"
|
||||
+ " AND ";
|
||||
|
||||
@@ -2783,6 +2779,7 @@ mld = {setmeldingstatus:
|
||||
+ " , alg_v_onroerendgoed og";
|
||||
|
||||
var filtWHERE = " AND ff.fac_faq_key = af.fac_faq_key"
|
||||
+ " AND ff.fac_faq_displaymode <> 0"
|
||||
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)";
|
||||
|
||||
// Stdmfilter
|
||||
@@ -2848,35 +2845,39 @@ mld = {setmeldingstatus:
|
||||
while (!oRs.EOF)
|
||||
{
|
||||
var displaymode = oRs("displaymode").Value;
|
||||
if (displaymode == 0) // Popup
|
||||
|
||||
// Displaymode 0; No fixed display; 1; No pop-up; 2; Show both
|
||||
if (!(displaymode & 1)) // Popup
|
||||
{
|
||||
if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE
|
||||
|| ((S("faq_kennisbank_popup") & 2) && canFAQFOFread)) // Voor FO
|
||||
result.popup_faq = true;
|
||||
}
|
||||
|
||||
// KFNS#38663 -> always 'inline'
|
||||
var data = { faq_key: oRs("fac_faq_key").Value,
|
||||
has_kenm: oRs("aantal_kenm").Value > 0,
|
||||
question: oRs("fac_faq_question").Value,
|
||||
answer: safe.fclthtml(oRs("fac_faq_answer").Value),
|
||||
displaymode: oRs("displaymode").Value };
|
||||
|
||||
data.faq_type = "faq_" + oRs("stdm_type") + oRs("alg_type");
|
||||
|
||||
var fac_url = oRs("fac_faq_url").value;
|
||||
if (fac_url)
|
||||
if (displaymode != 0)
|
||||
{
|
||||
var arr = fac_url.split("|");
|
||||
var hurl = arr[0];
|
||||
data.hlnk = arr.length>1?arr[1]:hurl;
|
||||
var data = { faq_key: oRs("fac_faq_key").Value,
|
||||
has_kenm: oRs("aantal_kenm").Value > 0,
|
||||
question: oRs("fac_faq_question").Value,
|
||||
answer: safe.fclthtml(oRs("fac_faq_answer").Value),
|
||||
displaymode: oRs("displaymode").Value };
|
||||
|
||||
if (hurl.slice(0,4) == "http") // extern
|
||||
data.hurl = hurl;
|
||||
else // in cust subdir
|
||||
data.hurl = custpath + "/" + hurl;
|
||||
data.faq_type = "faq_" + oRs("stdm_type") + oRs("alg_type");
|
||||
|
||||
var fac_url = oRs("fac_faq_url").value;
|
||||
if (fac_url)
|
||||
{
|
||||
var arr = fac_url.split("|");
|
||||
var hurl = arr[0];
|
||||
data.hlnk = arr.length>1?arr[1]:hurl;
|
||||
|
||||
if (hurl.slice(0,4) == "http") // extern
|
||||
data.hurl = hurl;
|
||||
else // in cust subdir
|
||||
data.hurl = custpath + "/" + hurl;
|
||||
}
|
||||
result.fixed_faq.push(data);
|
||||
}
|
||||
result.fixed_faq.push(data);
|
||||
|
||||
oRs.MoveNext();
|
||||
}
|
||||
@@ -3362,7 +3363,7 @@ mld = {setmeldingstatus:
|
||||
+ " , mto.mld_typeopdr_matchtype"
|
||||
+ " , mto.mld_typeopdr_kosten_verplicht"
|
||||
// Als de opdracht geen kostenplaats heeft, ga dan uit van de kostenplaats van de melding
|
||||
+ " , prs.getkpverantwoordelijke (o.prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1) fiatteur_kp_key"
|
||||
+ " , prs.getfiatteur (o.prs_kostenplaats_key, -1, mld_opdr_kosten, sm.mld_ins_discipline_key) fiatteur_kp_key"
|
||||
+ " , (SELECT kg.prs_perslid_key"
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " , prs_kostenplaatsgrp kg"
|
||||
@@ -5002,7 +5003,9 @@ mld = {setmeldingstatus:
|
||||
+ " , o.mld_opdr_verzonden"
|
||||
+ " , t.mld_typeopdr_key" // Voor flexGroupId
|
||||
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
|
||||
+ " , pfiat.prs_perslid_naam_full fiatteur"
|
||||
+ " , (SELECT prs_perslid_naam_full"
|
||||
+ " FROM prs_v_perslid_fullnames_all"
|
||||
+ " WHERE prs_perslid_key = prs.getfiatteur(o.prs_kostenplaats_key, -1, mld_opdr_kosten, std.mld_ins_discipline_key)) fiatteur"
|
||||
+ " , (SELECT COUNT (o.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o "
|
||||
+ " WHERE o.mld_melding_key = mld_melding_key"
|
||||
@@ -5059,13 +5062,11 @@ mld = {setmeldingstatus:
|
||||
: "")
|
||||
// and more here
|
||||
+ " , mld_typeopdr t"
|
||||
+ " , prs_v_perslid_fullnames_all pfiat"
|
||||
+ " , prs_perslid p" // de melder
|
||||
+ (!internuit || !externuit
|
||||
? " , mld_v_uitvoerende mu"
|
||||
: "")
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key" + (urole == 'bgt' ? '(+)' : '')
|
||||
+ " AND pfiat.prs_perslid_key(+) = prs.getkpverantwoordelijke(o.prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1)"
|
||||
+ " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)"
|
||||
+ " AND l.alg_district_key = di.alg_district_key(+)"
|
||||
+ " AND std.mld_ins_discipline_key = md.ins_discipline_key" + (urole == 'bgt' ? '(+)' : '')
|
||||
@@ -5442,11 +5443,9 @@ mld = {setmeldingstatus:
|
||||
+ " fac_faq_url, "
|
||||
+ " fac_faq_level, "
|
||||
+ " (SELECT COUNT (*)"
|
||||
+ " FROM faq_kenmerk k, faq_kenmerkwaarde kw"
|
||||
+ " FROM faq_kenmerk k"
|
||||
+ " WHERE k.faq_kenmerk_verwijder IS NULL"
|
||||
+ " AND k.faq_kenmerk_key = kw.faq_kenmerk_key"
|
||||
+ " AND kw.faq_kenmerkwaarde_verwijder IS NULL"
|
||||
+ " AND kw.fac_faq_key = ff.fac_faq_key) aantal_kenm"
|
||||
+ " OR k.faq_kenmerk_verwijder > SYSDATE) aantal_kenm"
|
||||
+ sqlSelect
|
||||
+ " FROM fac_faq ff"
|
||||
+ sqlFrom
|
||||
|
||||
@@ -274,7 +274,7 @@ for (var u = 0; u < uitvkeyArray.length; u++)
|
||||
// Wie moet op verzoek goedkeuren voor deze kostenplaats, terwijl het bedrag wellicht onbekend is?
|
||||
// Eerste fiatteur (pkey) mag niet fiatteren want het zit boven zijn profiel limiet.
|
||||
// Alleen de melder van de melding mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(kostenplaats_key);
|
||||
approver_key = prs.getFiatteur(kostenplaats_key, -1, tot_kosten, disc_key);
|
||||
for_approval = true;
|
||||
}
|
||||
}
|
||||
@@ -578,10 +578,7 @@ for (var u = 0; u < uitvkeyArray.length; u++)
|
||||
// De oorspronkelijke (laatste) fiatteur of melder van de melding of opdracht aanmaker/user van de melding (pkey)
|
||||
// mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// totaalbedrag > can_selfapprove => prs_key als exclude key meegeven.
|
||||
if (tot_kosten > S("can_selfapprove"))
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(kostenplaats_key, pkey);
|
||||
else
|
||||
approver_key = prs.getKpVerantwoordelijke(kostenplaats_key);
|
||||
approver_key = prs.getFiatteur(kostenplaats_key, (tot_kosten > S("can_selfapprove"))?pkey:-1, tot_kosten, mld_info.disc);
|
||||
if (kp_fiat)
|
||||
{
|
||||
if (approver_key == -1)
|
||||
|
||||
@@ -292,7 +292,7 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
if (pkey == ingesloten[i].fiatteur_kp_key)
|
||||
// De laatste fiatteur was de KP veranwoordelijke. Bepaal de KPG verantwoordelijke.
|
||||
// De KP verantwoordelijke als exlude key meegeven.
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(ingesloten[i].opdr_kp_key, pkey);
|
||||
approver_key = prs.getFiatteur(ingesloten[i].opdr_kp_key, pkey, ingesloten[i].kosten, ingesloten[i].dis_key);
|
||||
else if (pkey == ingesloten[i].fiatteur_kpg_key)
|
||||
// De laatste fiatteur was de KPG veranwoordelijke en de opdracht overschrijdt het mandaat van de KPG verantwoordelijke.
|
||||
approver_key = -1;
|
||||
@@ -301,10 +301,8 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
// Laatste fiatteur of eerste fiatteur (pkey) mag niet fiatteren want het zit boven zijn profiel limiet.
|
||||
// De melder van de melding of opdrachtaanmaker van de melding (pkey) mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// ingesloten[i].kosten > can_selfapprove => pkey als exclude key meegeven.
|
||||
if (pkey > 0 && ingesloten[i].kosten > S("can_selfapprove"))
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(ingesloten[i].opdr_kp_key, pkey);
|
||||
else
|
||||
approver_key = prs.getKpVerantwoordelijke(ingesloten[i].opdr_kp_key);
|
||||
var pexcludekey = (ingesloten[i].kosten > S("can_selfapprove"))? pkey : -1;
|
||||
approver_key = prs.getFiatteur(ingesloten[i].opdr_kp_key, pexcludekey, ingesloten[i].kosten, ingesloten[i].dis_key);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -312,11 +310,8 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
// Laatste fiatteur of eerste fiatteur (pkey) mag niet fiatteren want het zit boven zijn profiel limiet.
|
||||
// Alleen de melder/aanmaker mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// Alleen als de pkey de user_key is moet ik deze als exlude key meegeven (AADB#38785).
|
||||
var pexcludekey = (pkey == user_key)? pkey : -1;
|
||||
if (pexcludekey > 0 && ingesloten[i].kosten > S("can_selfapprove"))
|
||||
approver_key = prs.getKpVerantwoordelijkeExcept(ingesloten[i].opdr_kp_key, pexcludekey);
|
||||
else
|
||||
approver_key = prs.getKpVerantwoordelijke(ingesloten[i].opdr_kp_key);
|
||||
var pexcludekey = (pkey == user_key && ingesloten[i].kosten > S("can_selfapprove"))? pkey : -1;
|
||||
approver_key = prs.getFiatteur(ingesloten[i].opdr_kp_key, pexcludekey, ingesloten[i].kosten, ingesloten[i].dis_key);
|
||||
}
|
||||
|
||||
if (ingesloten[i].opdr_kp_fiat)
|
||||
|
||||
@@ -150,8 +150,7 @@
|
||||
+ " FROM alg_v_onroerendgoed onrg"
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)) mld_fiat_write";
|
||||
|
||||
sql += " FROM (SELECT prs.getkpverantwoordelijke(prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1) budgethouder,"
|
||||
+ " f.* FROM (select fin.getfactuurkostenplaats(f.fin_factuur_key) prs_kostenplaats_key, f.* from fin_factuur f) f) f"
|
||||
sql += " FROM (SELECT fin.getfiatteur(f.fin_factuur_key) budgethouder, f.* from fin_factuur f) f"
|
||||
+ " , prs_kostenplaats k"
|
||||
+ " , mld_opdr o"
|
||||
+ " , mld_melding m"
|
||||
|
||||
@@ -216,18 +216,16 @@ prs =
|
||||
// Levert de prs_perslid_key op van de budgethouder van een kostenplaats.
|
||||
// Kijkt dus niet naar limiet oid, gewoon de budgethouder zoeken volgens de door ons gedefinieerde regels.
|
||||
// Indien geen verantwoordelijke wordt gevonden levert de functie -1 op.
|
||||
getKpVerantwoordelijke: function(kp_key)
|
||||
getFiatteur: function(kp_key, p_except_key, ondergrens, disc_key)
|
||||
{
|
||||
var sql = "SELECT prs.getkpverantwoordelijke (" + kp_key + ", " + S("prs_approvemethod") + ", -1) FROM DUAL";
|
||||
return Oracle.Execute(sql)(0).Value;
|
||||
},
|
||||
if (!(disc_key > 0))
|
||||
INTERNAL_ERROR_MISSING_DISC_KEY;
|
||||
|
||||
// zelfde, maar nu als ik expliciet iemand uit wil sluiten, bijvoorbeeld een budgethouder met te laag profiel
|
||||
// en moet dan de kpngroepverantwoordelijke opleveren
|
||||
getKpVerantwoordelijkeExcept: function(kp_key, p_key)
|
||||
{
|
||||
var sql = "SELECT prs.getkpverantwoordelijke (" + kp_key + ", " + S("prs_approvemethod") + ", " + p_key + ") FROM DUAL";
|
||||
return Oracle.Execute(sql)(0).Value;
|
||||
var sql = "SELECT prs.getfiatteur ({0}, {1}, {2}, {3}}) FROM DUAL".format(kp_key, p_except_key || -1, ondergrens||-1, disc_key);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var res = oRs(0).Value;
|
||||
oRs.Close
|
||||
return res;
|
||||
},
|
||||
|
||||
getLocationSql: function(loc_key, alias)
|
||||
|
||||
Reference in New Issue
Block a user