FSN#35336 functionaliteit toegevoegd, WEB_CNTMSU kan nu de contractsoort wijzigen

svn path=/Website/trunk/; revision=32182
This commit is contained in:
2017-01-03 12:39:00 +00:00
parent 344a6f0d23
commit 80732dafb1
3 changed files with 68 additions and 80 deletions

View File

@@ -23,7 +23,7 @@ cnt = { setcontractstatus:
// Let op: dit moet wellicht niet altijd (aangeroepen na save)
function (cnt_key, ptxt)
{
shared.trackaction("MLDUPD", cnt_key, ptxt);
shared.trackaction("CNTUPD", cnt_key, ptxt);
},
trackcontractverwijderen:
@@ -1089,6 +1089,7 @@ cnt = { setcontractstatus:
cresult.canWriteNotes = cresult.canReadNotes;
cresult.canDelete = ((nieuw || terGoedkeuring) && cresult.canUSEwrite);
cresult.canChangeSrt = haveCNTMSUrights;
if (cnt_info.fase_actief == 0) // Nu - Ingangsdatum (voor Ingangsdatum)
cresult.canDelete = cresult.canDelete ||
((actief || inactief) && cresult.canMANwrite) ||

View File

@@ -3,16 +3,16 @@
/* $Revision$
$Id$
File: cnt_change_opdrtype.asp
File: cnt_change_cnttype.asp
Description: Verander het contract type
TODO Impliciet: mld_opdr.mld_typeopdr_key wordt aangepast
Expliciet: flexkenmerken moeten worden overgezet naar de nieuwe opdrachttype met zijn eigen kenmerk keys (mld_kenmerkopdr.mld_kenmerk_key)
Parameters: Moved from ALG to PRS. Might needs some adjusting
opdr_key Opdracht key
opdr_type_new Nieuwe opdracht type
Impliciet: cnt_info.ins_discipline_key wordt aangepast
Expliciet: flexkenmerken moeten worden overgezet naar het nieuwe contracttype met zijn eigen kenmerk keys (cnt_kenmerkcontract.cnt_kenmerk_key)
Parameters:
cnt_key Contract key
cnt_srt_new_key Nieuwe contract soort
submitting Mode {0=invoer / 1=opslaan}
Context: mld_showopdr.asp wijzigen opdrachttype
Context: cnt_show_contract.asp wijzigen contractsoort
Note:
*/ %>
@@ -30,7 +30,7 @@ FCLTHeader.Requires({ plugins:["jQuery"] })
var cnt_key = getQParamInt("cnt_key");
var this_cnt = cnt.func_enabled_contract(cnt_key);
user.anything_todo_or_abort(true); // TODO
user.anything_todo_or_abort(this_cnt.canChangeSrt);
%>
<html>
@@ -40,66 +40,57 @@ user.anything_todo_or_abort(true); // TODO
if (submitting)
{
protectRequest.validateToken();
var cnt_type_new = getFParamInt("cnt_type_new"); // Nieuwe opdrachttype
var cnt_srt_new_key = getFParamInt("cnt_srt_new_key"); // Nieuwe contractsoort
// Bepaal huidige opdrachttype
var sql = "SELECT cc.ins_discipline_key"
+ " FROM cnt_contract cc"
+ " WHERE cc.cnt_contract_key = " + cnt_key;
oRs = Oracle.Execute(sql);
var cnt_type_current = oRs("ins_discipline_key").value;
var cnt_info = cnt.cnt_contract_info(cnt_key);
var cnt_srt_current_key = cnt_info.discipline_key;
// Documentfolders hernoemen.
if (cnt_type_current != cnt_type_new)
{ // Match de kenmerk keys van de oude en nieuwe type // TODO
if (cnt_srt_current_key != cnt_srt_new_key)
{ // Match de kenmerk keys van de oude en nieuwe type
var flexsql = "SELECT k_old.cnt_kenmerk_key k_old"
+ ", k_new.cnt_kenmerk_key k_new"
+ " FROM cnt_srtkenmerk t"
+ " , cnt_kenmerk k_old"
+ " , cnt_kenmerk k_new"
+ " WHERE t.cnt_srtkenmerk_kenmerktype IN ('C', 'D', 'F', 'L', 'M', 'N', 'Q', 'R', 'S', 'l')" // TODO
+ " AND k_old.cnt_typeopdr_key = " + cnt_type_current
+ " AND k_old.cnt_kenmerk_niveau = 'O'"
+ " WHERE t.cnt_srtkenmerk_kenmerktype IN ('F', 'E', 'M')"
+ " AND k_old.cnt_srtcontract_key = " + cnt_srt_current_key
+ " AND k_old.cnt_kenmerk_niveau = 'S'"
+ " AND k_old.cnt_kenmerk_verwijder IS NULL"
+ " AND k_old.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
+ " AND k_new.cnt_typeopdr_key = " + cnt_type_new
+ " AND k_new.cnt_kenmerk_niveau = 'O'"
+ " AND k_new.cnt_srtcontract_key = " + cnt_srt_new_key
+ " AND k_new.cnt_kenmerk_niveau = 'S'"
+ " AND k_new.cnt_kenmerk_verwijder IS NULL"
+ " AND k_new.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
+ " AND t.cnt_srtkenmerk_verwijder IS NULL"
+ " AND k_old.cnt_kenmerk_groep = k_new.cnt_kenmerk_groep"
var subfolder = "CNT/" + subfolderKey("C", cnt_key) // TODO
RenameFlexFolders(subfolder, flexsql); // TODO
var subfolder = "CNT/" + subfolderKey("C", cnt_key)
RenameFlexFolders(subfolder, flexsql);
}
// TODO van
sql_waarde = " (SELECT v.mld_kenmerkopdr_waarde"
+ " FROM mld_kenmerkopdr v"
+ " , mld_kenmerk vk"
+ " WHERE v.mld_opdr_key = " + opdr_key
+ " AND v.mld_kenmerk_key = vk.mld_kenmerk_key"
+ " AND vk.mld_typeopdr_key = " + opdr_type_current
+ " AND vk.mld_srtkenmerk_key = k.mld_srtkenmerk_key"
+ " AND vk.mld_kenmerk_groep = k.mld_kenmerk_groep)";
sql_waarde = " (SELECT v.cnt_kenmerkcontract_waarde"
+ " FROM cnt_kenmerkcontract v"
+ " , cnt_kenmerk vk"
+ " WHERE v.cnt_contract_key = " + cnt_key
+ " AND v.cnt_kenmerk_key = vk.cnt_kenmerk_key"
+ " AND vk.cnt_srtcontract_key = " + cnt_srt_current_key
+ " AND vk.cnt_srtkenmerk_key = k.cnt_srtkenmerk_key"
+ " AND vk.cnt_kenmerk_groep = k.cnt_kenmerk_groep)";
sql_filter = " mld_typeopdr s"
+ " WHERE s.mld_typeopdr_key = " + opdr_type_new
+ " AND (k.mld_typeopdr_key = s.mld_typeopdr_key"
+ " AND k.mld_kenmerk_niveau = 'O')";
var sql = "SELECT k.mld_kenmerk_key new_kenmerk_key"
+ " , t.mld_srtkenmerk_kenmerktype kenmerk_kenmerktype"
var sql = "SELECT k.cnt_kenmerk_key new_kenmerk_key"
+ " , t.cnt_srtkenmerk_kenmerktype kenmerk_kenmerktype"
+ " , " + sql_waarde + " kenmerk_waarde"
+ " FROM mld_srtkenmerk t"
+ " , mld_kenmerk k"
+ " , " + sql_filter
+ " AND k.mld_kenmerk_verwijder IS NULL"
+ " AND k.mld_srtkenmerk_key=t.mld_srtkenmerk_key"
+ " AND t.mld_srtkenmerk_verwijder IS NULL";
+ " FROM cnt_srtkenmerk t"
+ " , cnt_kenmerk k"
+ " WHERE k.cnt_srtcontract_key = " + cnt_srt_new_key
+ " AND k.cnt_kenmerk_niveau = 'S'"
+ " AND k.cnt_kenmerk_verwijder IS NULL"
+ " AND t.cnt_srtkenmerk_verwijder IS NULL"
+ " AND k.cnt_srtkenmerk_key=t.cnt_srtkenmerk_key";
oRs = Oracle.Execute(sql);
// Verwijder eerst alle kenmerkwaarden van het oude opdrachttype
sql = "DELETE FROM mld_kenmerkopdr"
+ " WHERE mld_opdr_key = " + opdr_key;
// Verwijder eerst alle kenmerkwaarden van de oude contractsoort
sql = "DELETE FROM cnt_kenmerkcontract"
+ " WHERE cnt_contract_key = " + cnt_key;
Oracle.Execute(sql);
while (!oRs.eof)
@@ -109,13 +100,13 @@ user.anything_todo_or_abort(true); // TODO
// Heeft het kenmerk een waarde.
if (kwaarde)
{ // Kenmerkwaarde van het overeenkomende kenmerk opslaan voor het nieuwe opdrachttype
sql = "INSERT INTO mld_kenmerkopdr"
+ "(mld_opdr_key"
+ ", mld_kenmerk_key"
+ ", mld_kenmerkopdr_waarde)"
{ // Kenmerkwaarde van het overeenkomende kenmerk opslaan voor de nieuwe contractsoort
sql = "INSERT INTO cnt_kenmerkcontract"
+ "(cnt_contract_key"
+ ", cnt_kenmerk_key"
+ ", cnt_kenmerkcontract_waarde)"
+ " VALUES "
+ "(" + opdr_key
+ "(" + cnt_key
+ ", " + new_kkey
+ ", " + safe.quoted_sql(kwaarde) + ")";
Oracle.Execute(sql);
@@ -123,28 +114,27 @@ user.anything_todo_or_abort(true); // TODO
oRs.MoveNext();
}
mld_opdr = mld.mld_opdr_info(opdr_key);
var old_omschr = mld_opdr.opdr_type_omschr;
// Nu nog opdrachttype aanpassen.
sql = "UPDATE mld_opdr"
+ " SET mld_typeopdr_key = " + opdr_type_new
+ " WHERE mld_opdr_key = " + opdr_key;
var old_cntsrt = cnt_info.discipline_omschrijving;
// Nu nog de contractsoort aanpassen.
sql = "UPDATE cnt_contract"
+ " SET ins_discipline_key = " + cnt_srt_new_key
+ " WHERE cnt_contract_key = " + cnt_key;
Oracle.Execute(sql);
// Tracking
mld_opdr = mld.mld_opdr_info(opdr_key);
var new_omschr = mld_opdr.opdr_type_omschr;
cnt_info = cnt.cnt_contract_info(cnt_key);
var new_cntsrt = cnt_info.discipline_omschrijving;
var ins_srtdiscipline_prefix = mld.mld_prefix(mld_opdr.mld_key);
var formattedID = ins_srtdiscipline_prefix + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
mld.trackopdrachtupdate(opdr_key, L("lcl_cnt_is_cntupdtrack").format(formattedID) + "\n"
+ L("lcl_cnt_typecnt") + ": " + old_omschr + L("lcl_trackto") + new_omschr);
var formattedID = safe.jsstring(cnt_info.nummer_intern);
cnt.trackcontractupdate(cnt_key, L("lcl_cnt_is_cntupdtrack").format(formattedID) + "\n"
+ L("lcl_cnt_typecnt") + ": " + old_cntsrt + L("lcl_trackto") + new_cntsrt);
%> <script type="text/javascript">
%> <script>
FcltMgr.closeDetail(window, { refresh: true } );
</script>
<% Response.End;
// TODO tot
}
%>
<script type="text/javascript">
@@ -168,9 +158,9 @@ user.anything_todo_or_abort(true); // TODO
method="post"
onSubmit="cnt_submit();">
<%
BLOCK_START("cnttypeInfo", L("lcl_select_typecnt"));
// Contracttype
// Geef een lijst en laat een contracttype selecteren
BLOCK_START("changecntsrt", L("lcl_select_cntsrt"));
// Contractsoort
// Geef een lijst en laat een contractsoort selecteren
// Bepaal eerst cnt_srt_key en cnt_type_key
sql = "SELECT cc.ins_discipline_key"
+ ", dp.cnt_disc_params_key"
@@ -188,14 +178,12 @@ user.anything_todo_or_abort(true); // TODO
+ ", td.ins_discipline_omschrijving"
+ " FROM ins_tab_discipline td"
+ ", cnt_disc_params dp"
+ " WHERE dp.cnt_disc_params_key != " + cnt_disc_params_key
+ " AND td.ins_discipline_module = 'CNT'"
+ " WHERE td.ins_discipline_module = 'CNT'"
+ " AND td.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND dp.cnt_srtcontract_type = " + cnt_type_key;
FCLTselector("cnt_type_new",
FCLTselector("cnt_srt_new_key",
sql_typecnt,
{ emptyOption: L("lcl_select_typecnt"),
required: true,
{ initKey: cnt_srt_key,
label: L("lcl_cnt_srttype")
});
BLOCK_END();

View File

@@ -260,7 +260,7 @@ var urlMail = "../shared/queuemail.asp?pcode=CNTMAI&defemail_key=" + defemail_ke
<label class="selector"><%=L("lcl_cnt_srttype")%>:</label>
<% // Ongebruikelijk weliswaar maar: in showmode een 'edit' knopje tonen voor wisselen opdrachttype
// Wisselen zou te veel impact clientside hebben als het in editmode kan.
if (true) // TODO: permissies toevoegen
if (this_cnt.canChangeSrt)
{
var sql = "SELECT cnt_ins_discipline_key"
+ " FROM cnt_disc_params"
@@ -283,7 +283,6 @@ var urlMail = "../shared/queuemail.asp?pcode=CNTMAI&defemail_key=" + defemail_ke
<td>
<% ROFIELD('flddisc', null, cnt_info.discipline_omschrijving); %>
</tr><%
// ROFIELDTR ("flddisc", L("lcl_cnt_srttype"), cnt_info.discipline_omschrijving);
ROFIELDTR ("fldoms", L("lcl_cnt_descr"), cnt_info.omschrijving);
ROFIELDTR ("fldcntnr", L("lcl_cnt_contractnr"), cnt_info.nummer, {suppressEmpty: true});
if (cnt_info.srtcontract_type != 6 && cnt_info.mantel_key != null)