VEBE#39163 Contract kopiëren toegevoegd

svn path=/Website/trunk/; revision=33490
This commit is contained in:
2017-04-14 07:45:16 +00:00
parent 12b8d8c37f
commit f6c27d65f0
5 changed files with 108 additions and 31 deletions

View File

@@ -1056,6 +1056,9 @@ cnt = { setcontractstatus:
cresult.canChange = (cresult.canChangeFlex && !cnt_info.isAbonnement) ||
(haveCNTMSUrights && (S("cnt_inactivate_mode") == 0 || (S("cnt_inactivate_mode") == 1 && cresult.canMANwrite))) ||
canChangeAbonnement;
cresult.canCopy = (cresult.canMANwrite && cresult.canMANread) || (S("cnt_contract_approval") == 1 && cresult.canUSEwrite && cresult.canUSEread);
cresult.canChangeAlg = cresult.canChange &&
!(actief && cresult.canUSEwrite && !cresult.canMANwrite && !haveCNTMSUrights); // Alleen nog status Actief(0) uitsluiten bij ALLEEN CNTUSE rechten (zie overzicht hierboven).
cresult.canChangeKosten = (cresult.canMANwrite ||
@@ -1109,6 +1112,7 @@ cnt = { setcontractstatus:
cresult.canUSEread = cresult.canRead("WEB_CNTUSE") || cresult.mijncontract;
cresult.canUSEwrite = cresult.canWrite("WEB_CNTUSE");
cresult.canReadAny = cresult.canUSEread || cresult.canMANread;
cresult.canCopy = (cresult.canMANwrite && cresult.canMANread) || (S("cnt_contract_approval") == 1 && cresult.canUSEwrite && cresult.canUSEread);
return cresult;
},

View File

@@ -31,6 +31,7 @@ FCLTHeader.Requires({ plugins: ["suggest","jQuery"],
var verynew = getQParamInt("verynew", 0) == 1;
var cnt_key = getQParamInt("cnt_key", -1);
var copy = (getQParamInt("cnt_copy", 0) == 1);
var transitParam = "";
if (verynew)
@@ -48,7 +49,10 @@ if (cnt_key > 0)
if (oRs.eof)
shared.record_not_found();
hasFactuurschema = (oRs("cnt_disc_params_factuurschema").Value == 1);
tabtitle += " "+ oRs("cnt_contract_nummer_intern").Value + (oRs("cnt_contract_versie").Value ? "."+oRs("cnt_contract_versie").Value : "");
if (copy)
tabtitle = L("lcl_cnt_copy") + " " + tabtitle.toLowerCase();
else
tabtitle += " "+ oRs("cnt_contract_nummer_intern").Value + (oRs("cnt_contract_versie").Value ? "."+oRs("cnt_contract_versie").Value : "");
oRs.close();
}
%>
@@ -72,7 +76,7 @@ if (cnt_key > 0)
}
if (params.keepForm)
return;
<% if (cnt_key == -1)
<% if (cnt_key == -1 || copy)
{ %>
if (params.cancel)
{
@@ -104,7 +108,7 @@ if (cnt_key > 0)
<body>
<%
if (cnt_key == -1)
if (cnt_key == -1 || copy)
{
var page="cnt_edit_contract.asp"; // Maak een nieuw
@@ -189,6 +193,8 @@ if (cnt_key > 0)
</div>
<% }
}
if (copy)
transitParam += "&cnt_copy=1";
}
else
{
@@ -200,7 +206,7 @@ if (cnt_key > 0)
initHeight: "450px",
FcltClose: "contractClose"
} );
if (cnt_key > 0)
if (cnt_key > 0 && !copy)
{
// ===================== CONTRACTNOTES FRAME ============================
// Future extension kan zijn hiervoor WEB_CNTUSE te vereisen,

View File

@@ -30,11 +30,22 @@ FCLTHeader.Requires({plugins:["jQuery"],
var cnt_key = getQParamInt("cnt_key");
var l_cnt_srt = getQParamInt("srtdisc", -1);
var copy = (getQParamInt("cnt_copy", 0) == 1);
var transitParam = "&cnt_key="+cnt_key;
var cnt_copy_key = -1;
if (copy)
{
cnt_copy_key = cnt_key;
cnt_key = -1;
transitParam = "&cnt_key="+cnt_copy_key+"&cnt_copy=1";
}
__DoLog("Koen: " + transitParam);
if (cnt_key > -1)
{
var cnt_info = cnt.cnt_contract_info(cnt_key); // nog heel beperkt
var this_cnt = cnt.func_enabled_contract(cnt_key, cnt_info); // Wat heb ik zoal aan rechten op dit contract?
user.auth_required_or_abort(this_cnt.canChange);
if (!cnt_info.locked_user_key || cnt_info.locked_user_key == user_key)
@@ -45,17 +56,41 @@ if (cnt_key > -1)
}
else // nieuw contract
{
if (S("cnt_contract_approval") == 1)
{ // Als het approval mechanisme actief is mag ik met WEB_CNTUSE rechten ook een contract aanmaken.
var autfunction = ["WEB_CNTUSE", "WEB_CNTMAN"];
var authparams = user.checkAutorisation(autfunction);
if (copy)
{
var cnt_info = cnt.cnt_contract_info(cnt_copy_key);
var this_cnt = cnt.func_enabled_contract(cnt_copy_key, cnt_info);
user.auth_required_or_abort(this_cnt.canCopy);
cnt_info.cnt_key = -1;
cnt_info.nummer_intern = null;
l_cnt_srt = getQParam("srtdisc", -1);
}
else
{
var autfunction = "WEB_CNTMAN";
var authparams = user.checkAutorisation(autfunction);
}
var cnt_info = {contract_status: S("cnt_contract_approval") == 1 ? 2 : 0};
if (S("cnt_contract_approval") == 1)
{ // Als het approval mechanisme actief is mag ik met WEB_CNTUSE rechten ook een contract aanmaken.
var autfunction = ["WEB_CNTUSE", "WEB_CNTMAN"];
var authparams = user.checkAutorisation(autfunction);
}
else
{
var autfunction = "WEB_CNTMAN";
var authparams = user.checkAutorisation(autfunction);
}
var authparamsUSE = user.checkAutorisation("WEB_CNTUSE", true) || {PRSreadlevel: 9, PRSwritelevel: 9};
var this_cnt = {canChangeKosten: true,
canChangeAlg: true,
isAbonnement: false,
// Volgende 4 worden voor de flex gebruikt
canMANread : authparams.PRSreadlevel < 9,
canUSEread : authparamsUSE.PRSreadlevel < 9,
canMANwrite : authparams.PRSwritelevel < 9,
canUSEwrite : authparamsUSE.PRSwritelevel < 9 };
}
var sql = "SELECT dp.cnt_srtcontract_type,"
+ " dp.cnt_disc_params_factuurschema,"
@@ -69,25 +104,15 @@ else // nieuw contract
+ " AND cs.ins_discipline_key = " + l_cnt_srt;
var oRs = Oracle.Execute( sql );
var authparamsUSE = user.checkAutorisation("WEB_CNTUSE", true) || {PRSreadlevel: 9, PRSwritelevel: 9};
cnt_info.srtcontract_type = oRs("cnt_srtcontract_type").value;
cnt_info.discipline_omschrijving = oRs("ins_discipline_omschrijving").value;
cnt_info.discipline_key = l_cnt_srt;
cnt_info.hasfactuurschema = oRs("cnt_disc_params_factuurschema").value == 1;
cnt_info.kostensoort_naam = oRs("kostensoort_naam").value;
var this_cnt = {canChangeKosten: true,
canChangeAlg: true,
isAbonnement: false,
// Volgende4 worden voor de flex gebruikt
canMANread : authparams.PRSreadlevel < 9,
canUSEread : authparamsUSE.PRSreadlevel < 9,
canMANwrite : authparams.PRSwritelevel < 9,
canUSEwrite : authparamsUSE.PRSwritelevel < 9 };
var cnt_info = {contract_status: S("cnt_contract_approval") == 1? 2 : 0,
srtcontract_type: oRs("cnt_srtcontract_type").value,
discipline_omschrijving: oRs("ins_discipline_omschrijving").value,
discipline_key: l_cnt_srt,
hasfactuurschema: oRs("cnt_disc_params_factuurschema").Value == 1,
kostensoort_naam: oRs("kostensoort_naam").Value};
oRs.close();
}
%>
<html>
<head>
@@ -99,7 +124,6 @@ else // nieuw contract
FcltMgr.resized(window)
});
function cnt_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
@@ -184,7 +208,7 @@ else // nieuw contract
</script>
<div id="edit">
<form name="u2"
action="cnt_edit_contract_save.asp?cnt_key=<%=cnt_key%>&srtdisc=<%=cnt_info.discipline_key%>"
action="cnt_edit_contract_save.asp?srtdisc=<%=cnt_info.discipline_key%><%=transitParam%>";
method="post"
target="hidFrameSubmit"
onSubmit="cnt_submit();">
@@ -446,7 +470,7 @@ else // nieuw contract
BLOCK_END();
BLOCK_START("cntFlex"+(S("cnt_flexcolumns")!=1?"2":"") , L("lcl_cnt_flexblok"));
generateFlexKenmerkCode ({cnt_key : cnt_key,
generateFlexKenmerkCode ({cnt_key : copy ? cnt_copy_key : cnt_key,
disc_key : cnt_info.discipline_key,
this_cnt : this_cnt,
flexcolumns: S("cnt_flexcolumns")

View File

@@ -14,11 +14,17 @@ var JSON_Result = true;
<!-- #include file="../Shared/kenmerk_common.inc"-->
<!-- #include file="cnt.inc" -->
<%
protectRequest.validateToken();
var cnt_key = getQParamInt("cnt_key", -1);
var srtdisc_key = getQParamInt("srtdisc");
var copy = (getQParamInt("cnt_copy", 0) == 1);
var cnt_copy_key = -1;
if (copy)
{
cnt_copy_key = cnt_key;
cnt_key = -1;
}
var cnt_kosten = getFParamFloat("cnt_cntkstn", 0);
var isNew = (cnt_key < 0);
@@ -183,6 +189,35 @@ if (!warning)
}
)
if (copy) // copy scope as well
{
var copyPlaatsScopeSql = "INSERT INTO cnt_contract_plaats (cnt_contract_key,"
+ " cnt_alg_plaats_code,"
+ " cnt_alg_plaats_key,"
+ " cnt_contract_plaats_gewicht)"
+ " SELECT " + cnt_key + ","
+ " cnt_alg_plaats_code,"
+ " cnt_alg_plaats_key,"
+ " cnt_contract_plaats_gewicht"
+ " FROM cnt_contract_plaats"
+ " WHERE cnt_contract_key = " + cnt_copy_key
+ " AND cnt_contract_plaats_verwijder IS NULL";
Oracle.Execute(copyPlaatsScopeSql);
var copyObjectScopeSql = "INSERT INTO cnt_contract_object (cnt_contract_key,"
+ " cnt_ins_srtdeel_key,"
+ " cnt_ins_deel_key)"
+ " SELECT " + cnt_key + ","
+ " cnt_ins_srtdeel_key,"
+ " cnt_ins_deel_key"
+ " FROM cnt_contract_object"
+ " WHERE cnt_contract_key = " + cnt_copy_key
+ " AND cnt_contract_object_verwijder IS NULL";
Oracle.Execute(copyObjectScopeSql);
}
if (!isNew && (cntUpd.trackarray.length || flextrack.length))
shared.trackaction("CNTUPD", cnt_key, L("lcl_cnt_is_cntupd") + "\n" + cntUpd.trackarray.concat(flextrack).join("\n"));

View File

@@ -63,6 +63,7 @@ var urlMail = "../shared/queuemail.asp?pcode=CNTMAI&defemail_key=" + defemail_ke
<% FCLTHeader.Generate() %>
<script type="text/javascript">
cnt_key = <%=cnt_key%>;
srtdisc = <%=cnt_info.discipline_key%>;
var cnt_nummer = "<%=safe.jsstring(cnt_info.nummer_intern)%>";
jQuery(document).ready(function()
{
@@ -98,6 +99,11 @@ var urlMail = "../shared/queuemail.asp?pcode=CNTMAI&defemail_key=" + defemail_ke
window.location.href = "cnt_edit_contract.asp?cnt_key=<%=cnt_key%>&embedded=1";
}
function cnt_copy()
{
FcltMgr.openDetail("appl/cnt/cnt_contract.asp?cnt_key=" + cnt_key + "&srtdisc=" + srtdisc + "&cnt_copy=1", L("lcl_cnt_copy") + " " + L("lcl_contract").toLowerCase());
}
function cnt_factuurschema()
{
var url = "appl/cnt/cnt_factuurschema.asp?cnt_key=<%=cnt_key%>";
@@ -202,6 +208,8 @@ var urlMail = "../shared/queuemail.asp?pcode=CNTMAI&defemail_key=" + defemail_ke
{
if (this_cnt.canChange)
buttons.push({title: L("lcl_change"), icon: "wijzigen.png", action:"cnt_change()" });
if (this_cnt.canCopy)
buttons.push({title: L("lcl_copy"), icon: "fa-copy", action: "cnt_copy()"});
if (false && this_cnt.canOrder)
{ // Aanzet tot CONN#17536, maar nog rudimentair
// TODO: heb ik MLD_ORDBOF rechten voor deze cnt_discipline en