FSN#35336 functionaliteit toegevoegd, WEB_CNTMSU kan nu de contractsoort wijzigen
svn path=/Website/trunk/; revision=32182
This commit is contained in:
@@ -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) ||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user