TWYN#52149 contracten en subnummers (bulkwijzigen opdrachten)

svn path=/Website/branches/v2018.1/; revision=39034
This commit is contained in:
Erik Groener
2018-09-03 14:00:13 +00:00
parent b8683ae3dd
commit aa003a4aee

View File

@@ -551,30 +551,29 @@ obj._is_clone=2 --> nieuwe sub-opdracht
}
// Controle op overschrijden van budget.
if (new_additional == 0)
{
if (v_cur_costtype_key != v_costtype)
{ // Heeft dit contract ook nog subcontracten
/*
var sql = "SELECT COUNT(*) aantal"
+ " so.mld_opdr_key"
+ " , so.prs_kostensoort_key"
+ " , so.mld_opdr_kosten"
+ " , so.mld_opdr_kosten_btw"
+ " FROM mld_opdr co"
+ " , mld_opdr so"
+ " , bgt_v_project_full cp"
+ " , bgt_v_project_full sp"
+ " WHERE co.prs_kostensoort_key = cp.prs_kostensoort_key"
+ " AND so.prs_kostensoort_key = sp.prs_kostensoort_key"
+ " AND co.mld_opdr_ordernr = so.mld_opdr_ordernr"
+ " AND cp.bgt_project_key = sp.bgt_project_key"
+ " AND co.mld_opdr_key = " + key;
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
if (v_cur_costtype_key != v_costtype)
{ // Heeft dit contract ook nog subcontracten
var sql = "SELECT so.mld_opdr_key"
+ " , so.prs_kostensoort_key"
+ " , so.mld_opdr_kosten"
+ " , so.mld_opdr_kosten_btw"
+ " FROM mld_opdr co"
+ " , mld_opdr so"
+ " , bgt_v_project_full cp"
+ " , bgt_v_project_full sp"
+ " WHERE co.prs_kostensoort_key = cp.prs_kostensoort_key"
+ " AND so.prs_kostensoort_key = sp.prs_kostensoort_key"
+ " AND co.mld_opdr_ordernr = so.mld_opdr_ordernr"
+ " AND cp.bgt_project_key = sp.bgt_project_key"
+ " AND co.mld_opdr_key = " + key;
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
var v_cur_opdr_key = oRs("mld_opdr_key").Value;
//
if (v_cur_opdr_key != key)
{
var v_cur_opdr_key = oRs("mld_opdr_key").Value;
//
var v_opdr_exc = 0;
var v_opdr_btw = 0;
var v_budget = getBudget(v_cur_costtype_key);
@@ -587,39 +586,44 @@ obj._is_clone=2 --> nieuwe sub-opdracht
v_datamutatie = checkBudgetoverschrijding(-1, v_budget, v_opdr_exc, v_opdr_btw); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
insertMutatie( v_datamutatie, "AO" );
//
// facturen krijgen ook nieuwe kostensoort.
var sql = "UPDATE fin_factuur"
// subcontracten veranderen van kostensoort
var sql = "UPDATE mld_opdr"
+ " SET prs_kostensoort_key = " + v_costtype
+ " WHERE mld_opdr_key = " + v_cur_opdr_key;
Oracle.Execute(sql);
//
oRs.MoveNext();
// facturen van subcontracten krijgen ook nieuwe kostensoort.
var sql = "UPDATE fin_factuur"
+ " SET prs_kostensoort_key = " + v_costtype
+ " WHERE mld_opdr_key = " + v_cur_opdr_key;
Oracle.Execute(sql);
}
oRs.Close();
*/
/* dit is het originele stuk voor alleen het huidige contract */
// contract verplaatsen naar ander kostensoort
var v_budget_old = getBudget(v_cur_costtype_key);
var v_datamutatie = checkBudgetoverschrijding(id, v_budget_old, 0, 0); // bedrag van deze kostensoort verwijderen
insertMutatie( v_datamutatie, "AO" );
var v_budget_new = getBudget(v_costtype);
var v_datamutatie = checkBudgetoverschrijding(-1, v_budget_new, new_amount, new_vat); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
insertMutatie( v_datamutatie, "AO" );
// facturen krijgen ook nieuwe kostensoort.
var sql = "UPDATE fin_factuur"
+ " SET prs_kostensoort_key = " + v_costtype
+ " WHERE mld_opdr_key = " + key;
Oracle.Execute(sql);
/* einde */
}
else
{
var v_budget_new = getBudget(v_costtype);
var v_datamutatie = checkBudgetoverschrijding(id, v_budget_new, new_amount, new_vat);
insertMutatie( v_datamutatie, "AO" );
oRs.MoveNext();
}
oRs.Close();
/* Alleen het huidige contract */
// contract verplaatsen naar ander kostensoort
var v_budget_old = getBudget(v_cur_costtype_key);
var v_datamutatie = checkBudgetoverschrijding(id, v_budget_old, 0, 0); // bedrag van deze kostensoort verwijderen
insertMutatie( v_datamutatie, "AO" );
var v_budget_new = getBudget(v_costtype);
var v_datamutatie = checkBudgetoverschrijding(-1, v_budget_new, new_amount, new_vat); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
insertMutatie( v_datamutatie, "AO" );
// facturen van opdracht waarop gezocht is krijgen ook nieuwe kostensoort.
var sql = "UPDATE fin_factuur"
+ " SET prs_kostensoort_key = " + v_costtype
+ " WHERE mld_opdr_key = " + key;
Oracle.Execute(sql);
// De opdracht zelf wordt nu aangepast.
}
else
{
var v_budget_new = getBudget(v_costtype);
var v_datamutatie = checkBudgetoverschrijding(id, v_budget_new, new_amount, new_vat);
insertMutatie( v_datamutatie, "AO" );
}
}