FSN#35336 opmaak zo goed als af, implementatie moet nog worden veranderd/toegevoegd
svn path=/Website/trunk/; revision=32139
This commit is contained in:
209
APPL/CNT/cnt_change_cnttype.asp
Normal file
209
APPL/CNT/cnt_change_cnttype.asp
Normal file
@@ -0,0 +1,209 @@
|
||||
<%@language = "javascript" %>
|
||||
<%
|
||||
/* $Revision$
|
||||
$Id$
|
||||
|
||||
File: cnt_change_opdrtype.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
|
||||
submitting Mode {0=invoer / 1=opslaan}
|
||||
|
||||
Context: mld_showopdr.asp wijzigen opdrachttype
|
||||
Note:
|
||||
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/save2db.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="./cnt.inc" -->
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
|
||||
<%
|
||||
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
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate();
|
||||
var submitting = getQParamInt("submit", 0) == 1;
|
||||
if (submitting)
|
||||
{
|
||||
protectRequest.validateToken();
|
||||
var cnt_type_new = getFParamInt("cnt_type_new"); // Nieuwe opdrachttype
|
||||
|
||||
// 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;
|
||||
|
||||
// Documentfolders hernoemen.
|
||||
if (cnt_type_current != cnt_type_new)
|
||||
{ // Match de kenmerk keys van de oude en nieuwe type // TODO
|
||||
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'"
|
||||
+ " 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_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
|
||||
}
|
||||
// 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_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"
|
||||
+ " , " + 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";
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
// Verwijder eerst alle kenmerkwaarden van het oude opdrachttype
|
||||
sql = "DELETE FROM mld_kenmerkopdr"
|
||||
+ " WHERE mld_opdr_key = " + opdr_key;
|
||||
Oracle.Execute(sql);
|
||||
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var new_kkey = oRs("new_kenmerk_key").value;
|
||||
var kwaarde = oRs("kenmerk_waarde").value;
|
||||
|
||||
// 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)"
|
||||
+ " VALUES "
|
||||
+ "(" + opdr_key
|
||||
+ ", " + new_kkey
|
||||
+ ", " + safe.quoted_sql(kwaarde) + ")";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
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;
|
||||
Oracle.Execute(sql);
|
||||
// Tracking
|
||||
mld_opdr = mld.mld_opdr_info(opdr_key);
|
||||
var new_omschr = mld_opdr.opdr_type_omschr;
|
||||
|
||||
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);
|
||||
|
||||
|
||||
%> <script type="text/javascript">
|
||||
FcltMgr.closeDetail(window, { refresh: true } );
|
||||
</script>
|
||||
<% Response.End;
|
||||
// TODO tot
|
||||
}
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
function cnt_submit()
|
||||
{
|
||||
document.activeElement.blur(); // trigger laatste onChanges
|
||||
if (!validateForm("u2"))
|
||||
return false;
|
||||
document.forms.u2.submit();
|
||||
}
|
||||
function cnt_cancel()
|
||||
{
|
||||
FcltMgr.closeDetail(window);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="modal" id="mod_changecnttype" style="width:400px">
|
||||
<form name="u2"
|
||||
action="cnt_change_cnttype.asp?submit=1<%=buildTransitParam(["cnt_key"])%>"
|
||||
method="post"
|
||||
onSubmit="cnt_submit();">
|
||||
<%
|
||||
BLOCK_START("cnttypeInfo", L("lcl_select_typecnt"));
|
||||
// Contracttype
|
||||
// Geef een lijst en laat een contracttype selecteren
|
||||
// Bepaal eerst cnt_srt_key en cnt_type_key
|
||||
sql = "SELECT cc.ins_discipline_key"
|
||||
+ ", dp.cnt_disc_params_key"
|
||||
+ ", dp.cnt_srtcontract_type"
|
||||
+ " FROM cnt_contract cc"
|
||||
+ ", cnt_disc_params dp"
|
||||
+ " WHERE cc.ins_discipline_key = dp.cnt_ins_discipline_key"
|
||||
+ " AND cc.cnt_contract_key = " + cnt_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var cnt_disc_params_key = oRs("cnt_disc_params_key").value;
|
||||
var cnt_srt_key = oRs("ins_discipline_key").value;
|
||||
var cnt_type_key = oRs("cnt_srtcontract_type").value;
|
||||
|
||||
sql_typecnt = "SELECT td.ins_discipline_key"
|
||||
+ ", 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'"
|
||||
+ " AND td.ins_discipline_key = dp.cnt_ins_discipline_key"
|
||||
+ " AND dp.cnt_srtcontract_type = " + cnt_type_key;
|
||||
FCLTselector("cnt_type_new",
|
||||
sql_typecnt,
|
||||
{ emptyOption: L("lcl_select_typecnt"),
|
||||
required: true,
|
||||
label: L("lcl_cnt_srttype")
|
||||
});
|
||||
BLOCK_END();
|
||||
|
||||
CreateButtons([{ title: L("lcl_submit"), action: "cnt_submit()"},
|
||||
{ title: L("lcl_cancel"), action: "cnt_cancel()"}]);
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -63,12 +63,21 @@ var urlMail = "../shared/queuemail.asp?pcode=CNTMAI&defemail_key=" + defemail_ke
|
||||
<% FCLTHeader.Generate() %>
|
||||
<script type="text/javascript">
|
||||
cnt_key = <%=cnt_key%>;
|
||||
var cnt_nummer = "<%=safe.jsstring(cnt_info.nummer_intern)%>";
|
||||
jQuery(document).ready(function()
|
||||
{
|
||||
$('textarea').autogrow();
|
||||
FcltMgr.resized(window)
|
||||
});
|
||||
|
||||
function cnt_edit_typecnt(img, cnt_key)
|
||||
{
|
||||
FcltMgr.openModalDetail("../cnt/cnt_change_cnttype.asp?cnt_key=" + cnt_key,
|
||||
L("lcl_shared_contract") + " " + cnt_nummer,
|
||||
{ callback: function(data) { if (data.refresh) FcltMgr.reload() } }
|
||||
);
|
||||
}
|
||||
|
||||
function cnt_delete()
|
||||
{
|
||||
FcltMgr.confirm(L("lcl_cnt_delete").format("<%=safe.jsstring(cnt_info.nummer_intern+(cnt_info.versie?'.'+cnt_info.versie:''))%>"), function() {
|
||||
@@ -246,7 +255,35 @@ var urlMail = "../shared/queuemail.asp?pcode=CNTMAI&defemail_key=" + defemail_ke
|
||||
<% BLOCK_START("cntInfo", L("lcl_cnt_general_info"));
|
||||
ROFIELDTR ("fldcntnr", L("lcl_cnt_intern_nr"), cnt_info.nummer_intern);
|
||||
ROFIELDTR ("fldshort", L("lcl_cnt_versie"), cnt_info.versie, {suppressEmpty: true});
|
||||
ROFIELDTR ("flddisc", L("lcl_cnt_srttype"), cnt_info.discipline_omschrijving);
|
||||
%> <tr>
|
||||
<td class="label">
|
||||
<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
|
||||
{
|
||||
var sql = "SELECT cnt_ins_discipline_key"
|
||||
+ " FROM cnt_disc_params"
|
||||
+ " WHERE cnt_srtcontract_type = " + cnt_info.srtcontract_type
|
||||
+ " AND cnt_ins_discipline_key != " + cnt_info.discipline_key; // Huidige waarde niet laten zien.
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.Eof) // er zijn andere mogelijk
|
||||
{
|
||||
%>
|
||||
<span class="labelextra">
|
||||
<span class="fa fa-fw fa-pencil fa-lg button"
|
||||
title="<%=L("lcl_change")%>"
|
||||
onclick="cnt_edit_typecnt(this, <%=cnt_key%>)">
|
||||
</span>
|
||||
</span>
|
||||
<% }
|
||||
}
|
||||
%>
|
||||
</td>
|
||||
<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)
|
||||
|
||||
@@ -3038,6 +3038,7 @@ body.likemodal {
|
||||
#mod_besretour {min-width:600px;}
|
||||
#mod_besweging {min-width:500px;}
|
||||
#mod_bezcheckin {min-width:600px;}
|
||||
#mod_changecnttype {min-width:450px;}
|
||||
#mod_cntsplit {min-width:500px;}
|
||||
#mod_cntsplit .label {min-width: 180px;}
|
||||
#mod_req_move {min-width:500px;}
|
||||
|
||||
Reference in New Issue
Block a user