FCLT#82594: Melding 'opdelen' in deelmeldingen.

svn path=/Website/branches/v2024.2/; revision=65306
This commit is contained in:
Maykel Geerdink
2024-06-27 06:53:31 +00:00
parent 8b9579040b
commit 35456a159d
6 changed files with 215 additions and 152 deletions

View File

@@ -5388,7 +5388,7 @@ mld = {
mresult.canPlaatsChange = true;
mresult.canAflChange = true;
mresult.canPersChange = mresult.canWrite("WEB_MLDFOF");
mresult.canPrioChange = (planbaar == 0 && planbaarfe == 00 && mresult.canWrite("WEB_MLDFOF") || (mresult.canFEwrite && frontendprio));
mresult.canPrioChange = (planbaar == 0 && planbaarfe == 0 && mresult.canWrite("WEB_MLDFOF") || (mresult.canFEwrite && frontendprio));
mresult.canTerugzet = (is_fo_melding && mresult.canWrite("WEB_MLDBOF") && !is_planned_action && !is_conceptmelding);
mresult.canForwardTeam = ((S("mld_fo_can_assign_team") == 1 && mresult.canWrite("WEB_MLDFOF")) || mresult.canWrite("WEB_MLDBOF")) && hasTeams;
// Alleen FO en FE kan melding aanpassen. BOF/BO3 toevoegen heeft voor volgende twee geen zin
@@ -5454,7 +5454,6 @@ mld = {
}
/* Waarden hierna gelden dus voor zowel 4 als 7 */
mresult.canPersChange = mresult.canWrite("WEB_MLDFOF");
// FO kan alleen omschrijving aanpassen
mresult.canChange = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDFOF"));
mresult.canChangeKenmerkBlok = userIsBlokbehandelaar;
mresult.canChangeUrole = mresult.canWrite("WEB_MLDBOF") || userIsBlokbehandelaar ? 'bo' : 'fo';

View File

@@ -882,15 +882,15 @@ SUBFRAME_START();
emptyOption: "",
filtercode: "A",
autlevel: (this_mld.authparams(autfunction)? this_mld.authparams(autfunction).ALGreadlevel : 9),
readonly: (mld_melding.deladdress_key > 0 && mld_key > 0 && !this_mld.canAflChange),
readonly: (mld_melding.deladdress_key > 0 && mld_key > 0 && !this_mld.canAflChange) || (mld_key > 0 && !this_mld.canChange && this_mld.canChangeKenmerkBlok),
required: mld_melding.afleveradres_verplicht
});
}
/* Global variables (spanning multiple BLOCK's) */
var personEditable = (mld_key > 0 && this_mld.canPersChange) || (mld_key < 0 && !frontend);
var personEditable = (mld_key > 0 && this_mld.canPersChange && this_mld.canChange) || (mld_key < 0 && !frontend);
var personForExist = (S("mld_allow_for_others") == 1 || S("mld_allow_for_others") == 2) &&
(mld_key < 0 || this_mld.canKostChange || mld_melding.melder_key != mld_melding.perslid_key_voor) && !cont;
(mld_key < 0 || (this_mld.canKostChange && this_mld.canChange) || mld_melding.melder_key != mld_melding.perslid_key_voor) && !cont;
/* \Global variables */
/* In deze functie staan alle blokken */
@@ -901,7 +901,7 @@ SUBFRAME_START();
if (id == "mldCaller")
{
var personForEditable = (mld_key > 0 && this_mld.canKostChange) || (mld_key < 0);
var personForEditable = (lBestaandeMelding && this_mld.canKostChange && this_mld.canChange) || lNieuweMelding;
if (((S("mld_allow_for_others") == 1 || S("mld_allow_for_others") == 2) && (personForEditable || (mld_melding.melder_key != mld_melding.perslid_key_voor))) ||
!frontend || !stdm_info.hide_kostenplaats || mld_melding.kostenpl_key > 0 || S("mld_use_department") == 1)
{
@@ -950,7 +950,7 @@ SUBFRAME_START();
label: L("lcl_mld_afdeling"),
autlevel: authparams.PRSwritelevel,
filtercode: "INCL",
readonly: (mld_key > 0 && !this_mld.canDeptChange),
readonly: (mld_key > 0 && !(this_mld.canDeptChange && this_mld.canChange)),
required: true,
suppressJustOne: true,
moreinfo: !frontend
@@ -989,12 +989,12 @@ SUBFRAME_START();
extracode: "M",
filtercode: "AA", // Alleen actieve kostenplaatsen kunnen selecteren "All Active". Huidige waarde als initi<74>le waarde kan bij kostenplaatsen altijd.
urlAdd: urlAdd_account,
readonly: (mld_key > 0 && !this_mld.canKostChange),
readonly: (mld_key > 0 && !(this_mld.canKostChange && this_mld.canChange)),
kptoggle: { ischecked: (mld_melding.mld_kk == 1),
readonly: (mld_key > 0 && !this_mld.canKostChange),
readonly: (mld_key > 0 && !(this_mld.canKostChange && this_mld.canChange)),
onChange: "onChangeKostenklant();",
hidden: (urole == "fe") },
required: (!(mld_key > 0 && !this_mld.canKostChange)? mld_melding.kpnverplicht : false)
required: (!(mld_key > 0 && !(this_mld.canKostChange && this_mld.canChange))? mld_melding.kpnverplicht : false)
});
if (frontend && !mld_melding.mld_kk)
{ // Indien frontend en kostenklant vinkje is uit, dan moet alleen de kostenplaats van het geselecteerde gebouw gekozen kunnen worden.
@@ -1012,7 +1012,7 @@ SUBFRAME_START();
if (S("show_ordernr") != 0)
{
RWFIELDTR("ordernr", "fldshort", L("lcl_mld_inf_Ordernr"), mld_melding.mld_ordernr, {readonly: (mld_key > 0 && !this_mld.canKostChange), maxlength: 30});
RWFIELDTR("ordernr", "fldshort", L("lcl_mld_inf_Ordernr"), mld_melding.mld_ordernr, {readonly: (mld_key > 0 && !(this_mld.canKostChange && this_mld.canChange)), maxlength: 30});
}
}
@@ -1065,7 +1065,7 @@ SUBFRAME_START();
// 1 = vakgroep readonly
// 2 = alleen melding
var vakg_readonly = !cont && (disc_key > 0 ||
((mld_key > 0 && !this_mld.canVakgChange) || stdm_info.is_kto_antwoord) ||
((mld_key > 0 && !(this_mld.canVakgChange && this_mld.canChange)) || stdm_info.is_kto_antwoord) ||
(frontend && (S("mld_selector_mode") == 1 || S("mld_selector_mode") == 2)) ||
(lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt != 0));
var urlAdd = [];
@@ -1113,7 +1113,7 @@ SUBFRAME_START();
|| (frontend && S("mld_selector_mode") == 2 && isurl_disc) // Als frontend en setting mld_selector_mode =2 en disc_key via url, dan stdmelding wel afhankelijk van discipline.
)
urlAdd.push({urlParam: "disc_key", field: "disc"});
var stdm_readonly = ((mld_defaultstdmelding_key > 0 && !cont) || (mld_key > 0 && !this_mld.canStdmChange) || (lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt != 0));
var stdm_readonly = ((mld_defaultstdmelding_key > 0 && !cont) || (mld_key > 0 && !(this_mld.canStdmChange && this_mld.canChange)) || (lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt != 0));
var res =
FCLTstdmeldingselector("stdm",
"sgStdm",
@@ -1312,7 +1312,7 @@ SUBFRAME_START();
</script>
<%
if (!lBestaandeMelding && mld_defaultstdmelding_key == -1 && !lAllThirdparty)
if (lNieuweMelding && mld_defaultstdmelding_key == -1 && !lAllThirdparty)
{
RWFIELDTR("naam_ext", "fld", L("lcl_mld_naam_ext"), mld_melding.naam_ext, {maxlength: 60});
RWFIELDTR("email_ext", "fld", L("lcl_mld_email_ext"), mld_melding.email_ext, {maxlength: 100});
@@ -1335,7 +1335,7 @@ SUBFRAME_START();
datum : mld_melding.melddatum,
minFuture : (frontend ? 0 : -1),
onChange: "onChangeStartdatum();",
readonly: !this_mld.canWriteDatums && mld_melding.show_start_date, // Als hij verborgen is hoeftie niet readonly
readonly: !this_mld.canWriteDatums && (lNieuweMelding || (lBestaandeMelding && !this_mld.canChange)) && mld_melding.show_start_date, // Als hij verborgen is hoeftie niet readonly
required: true,
trhidden: mld_key > 0 && !mld_melding.show_start_date, // De hele tr moet hidden en niet alleen het inputveld
volgnr: 1,
@@ -1343,7 +1343,7 @@ SUBFRAME_START();
});
// We hebben hier het veld startdate nodig voor de functie get_mld_info_ajax(calc_einddatum, ..)
// Ook als deze readonly is, dus dan alsnog toevoegen. Let op: startdate MOET een integer zijn!
if (!this_mld.canWriteDatums && mld_melding.show_start_date)
if (!this_mld.canWriteDatums && (lNieuweMelding || (lBestaandeMelding && !this_mld.canChange)) && mld_melding.show_start_date)
{ %>
<input type="hidden" name="startdate" id="startdate" value="<%=mld_melding.melddatum.valueOf()%>">
<% }
@@ -1363,7 +1363,7 @@ SUBFRAME_START();
startTime : S("fac_t_startofworkday"),
endTime : S("fac_t_endofworkday"),
onChange : "onChangeActiondate();",
readonly : frontend || (mld_key > 0 && !this_mld.canWriteDatums),
readonly : frontend || (mld_key > 0 && !(this_mld.canWriteDatums && this_mld.canChange)),
trclass : "tractiondate" + (actiondate_is_today? " today" : ""),
trhidden : !stdm_info.show_actiedatum, // De hele tr moet hidden en niet alleen het inputveld als in FE mode readonly
volgnr : 2,
@@ -1386,7 +1386,7 @@ SUBFRAME_START();
startTime: S("fac_t_startofworkday"),
endTime : S("fac_t_endofworkday"),
onChange : "onChangeEnddate();",
readonly : mld_key > 0 && !this_mld.canWriteDatums,
readonly : mld_key > 0 && !(this_mld.canWriteDatums && this_mld.canChange),
required : true,
trclass : "trenddate",
trhidden : einddatumHidden, // De hele tr moet hidden en niet alleen het inputveld als in FE mode readonly
@@ -1432,7 +1432,7 @@ SUBFRAME_START();
onVerCascade: "getObjectInfo(true);",
onRuiCascade: "getObjectInfo(true);",
moreinfo: (this_mld.canBOwrite || this_mld.canFOwrite) && !frontend,
readonly: (mld_key > 0 && !this_mld.canPlaatsChange),
readonly: (mld_key > 0 && !(this_mld.canPlaatsChange && this_mld.canChange)),
filtercode: mld_melding.alg_level <= 2 ? null : "FACMLD", /*strict genomen alleen voor FE/FO, maar readonly maakt dit vanzelf goed toch? */
suppressEmpty: true,
eindlevel: (mld_melding.alg_level ? mld_melding.alg_level : 2), // Minimaal Locatie
@@ -1451,7 +1451,7 @@ SUBFRAME_START();
{ urlParam: "issuer_search", field: "issuer_search" }]
}); // Minstens locatie
if (mld_melding.show_bes && mld.nextBlock() == "mldBes")
if (mld_melding.show_bes && mld.nextBlock() == "mldBes" && !(mld_key > 0 && !this_mld.canChange && this_mld.canChangeKenmerkBlok && !mld_melding.deladdress_key))
{
injectAdresselector();
blockPrinted["mldBes"] = true; // Zorgt ervoor dat het mldBes block overgeslagen wordt
@@ -1461,7 +1461,7 @@ SUBFRAME_START();
} // \mldAlg
else if (id == "mldBes")
{
if (mld_melding.show_bes)
if (mld_melding.show_bes && !(mld_key > 0 && !this_mld.canChange && this_mld.canChangeKenmerkBlok && !mld_melding.deladdress_key))
{
BLOCK_START(id, L("lcl_aflevergegevens"), {icon: "fa-address-card"});
injectAdresselector();
@@ -1533,7 +1533,7 @@ SUBFRAME_START();
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
suppressEmpty: true,
readonly: !this_mld.canAfhandChange,
readonly: !(this_mld.canAfhandChange && this_mld.canChange),
required: (mld_melding.primaire_behandelaar == 2),
filtercode: (mld_melding.mld_status == 0 ? "BEHF" : "BEHB")
});
@@ -1558,7 +1558,7 @@ SUBFRAME_START();
else
ROFIELDTR("fld", L("lcl_mld_externr"), mld_melding.externnr, {suppressEmpty: true});
if (stdm_info.slabewaken && this_mld.canSLAChange)
if (stdm_info.slabewaken && this_mld.canSLAChange && this_mld.canChange)
{
sql = "SELECT 'U', " + safe.quoted_sql(L("lcl_mld_hours")) + " FROM DUAL"
+ " UNION SELECT 'D', " + safe.quoted_sql(L("lcl_mld_days")) + " FROM DUAL"
@@ -1574,10 +1574,10 @@ SUBFRAME_START();
RWFIELDTR("respijt", "fld", L("lcl_mld_respijt"), mld_melding.respijt? Math.round(mld_melding.respijt * 1000) / 1000 : "", {maxlength: 8, datatype: "float", selector: selectparams});
RWCHECKBOXTR("indult", "fldafr", L("lcl_mld_indult"), mld_melding.indult);
}
if (this_mld.canAfrond)
if (this_mld.canAfrond && this_mld.canChange)
RWCHECKBOXTR("afgerond", "fldafr", L("lcl_mld_afgerond"), mld_melding.mld_afgerond, { "html": "onChange='onChangeAfgerond(this)'" });
if ((mld_melding.kto_opt & 2) == 2 && mld_melding.kto_verstuurd == null && this_mld.canClose)
if ((mld_melding.kto_opt & 2) == 2 && mld_melding.kto_verstuurd == null && this_mld.canClose && this_mld.canChange) // Bij nieuwe meldingen is this_mld.canClose false.
RWCHECKBOXTR("ktoself", "fldkto", L("lcl_mld_kto_invite"), mld_melding.kto);
else
ROCHECKBOXTR("fldkto", L("lcl_mld_kto_invite"), mld_melding.kto, { suppressEmpty: true });
@@ -1605,7 +1605,7 @@ SUBFRAME_START();
{
if (canUseTeams)
{
var hideSelectors = !this_mld.canBOwrite;
var hideSelectors = !this_mld.canBOwrite && (lNieuweMelding || (lBestaandeMelding && !this_mld.canChange));
var initHideProcessingBlock = lNieuweMelding || hideSelectors || !(mld_melding.srtgroep & 4); // Voor cost is deze waarde altijd true (lNieuweMelding is true).
BLOCK_START(id, L("lcl_mld_processing_details"), {icon: "fa-wrench", hidden: initHideProcessingBlock});
var urlAdd = [{ urlParam: "disc", field: "disc", init: mld_melding.disc_key }];
@@ -1686,8 +1686,8 @@ SUBFRAME_START();
var objparams = { module: "M",
mld_key: mld_key,
ins_key: ins_key,
canPlaatsChange: copy_or_cont && !multi? this_mld_copy.canPlaatsChange : this_mld.canPlaatsChange,
canClose: copy_or_cont && !multi? this_mld_copy.canClose : this_mld.canClose,
canPlaatsChange: copy_or_cont && !multi? this_mld_copy.canPlaatsChange : !(this_mld.canPlaatsChange && (lNieuweMelding || (lBestaandeMelding && this_mld.canChange))),
canClose: copy_or_cont && !multi? this_mld_copy.canClose : this_mld.canClose && this_mld.canChange, // Bij nieuwe meldingen is this_mld.canClose false.
hasMultiObj: thereAreMultipleObjects,
init_obj_key: (mld_melding.room_obj_arr && mld_melding.room_obj_arr.length == 1? mld_melding.room_obj_arr[0].ins_key : -1),
srtinst_verplichtstatus: mld_melding.srtinst_verplichtstatus,
@@ -1710,7 +1710,9 @@ SUBFRAME_START();
oRs.Close();
}
show_obj_fld = (ins_key < 0 && (mld_key <= 0 || this_mld.canPlaatsChange)) || (thereAreObjects && (lNieuweMelding || this_mld.canChange)) || (this_mld.canClose && status_ojb_verplicht == 5);
show_obj_fld = (ins_key < 0 && (lNieuweMelding || (this_mld.canPlaatsChange && this_mld.canChange))) ||
(thereAreObjects && (lNieuweMelding || this_mld.canChange)) ||
(this_mld.canClose && this_mld.canChange && status_ojb_verplicht == 5); // Bij nieuwe meldingen is this_mld.canClose false.
} // if (mld_melding.show_ins)
var show_any_ref = (mld_melding.rsv_ruimte_key && mld_melding.res_key) // Reservering referentie
@@ -1770,7 +1772,7 @@ SUBFRAME_START();
// Geen omschrijving indien mld_stdmelding_freetext == 0 en mld_stdmelding_subject == 0
BLOCK_START(id, L("lcl_txt"), { wide: true, icon: "fa-comment-lines", hidden: (mld_melding.freetext == 0 && mld_melding.subject == 0) });
var oms_readonly = !(this_mld.canOmsChange || mld_key < 0) || txtreado;
var oms_readonly = (mld_key > 0 && !(this_mld.canOmsChange && this_mld.canChange)) || txtreado;
if (S("mld_omschrijving_restrict_edit") == 1)
oms_readonly = oms_readonly || !((S("mld_rejected_is_open") == 1 && mld_melding.mld_status == 1) || mld_melding.mld_status == 2 || mld_melding.mld_status == -1);
@@ -1778,7 +1780,7 @@ SUBFRAME_START();
if (mld_melding.subject != 0 /* Onzichtbaar */ && !(mld_melding.subject == 3 && mld_key < 0) /* AI will generate */ && !(oms_readonly && !mld_melding.mld_onderwerp))
{
RWFIELDTR("melding_onderwerp",
"fld" + ((mld_melding.subject == 2 && (this_mld.canOmsChange || mld_key < 0) && !txtreado)? " required" : ""), /* prepared, 3=future value */
"fld" + ((mld_melding.subject == 2 && (mld_key < 0 || (this_mld.canOmsChange && this_mld.canChange)) && !txtreado)? " required" : ""), /* prepared, 3=future value */
L("lcl_mld_subject"),
mld_melding.mld_onderwerp,
{ maxlength: 80, readonly: oms_readonly });
@@ -1788,7 +1790,7 @@ SUBFRAME_START();
{
// Complaint text description
RWTEXTAREATR( "melding_omschrijving",
"fldtxt" + ((mld_melding.freetext == 2 && (this_mld.canOmsChange || mld_key < 0) && !txtreado)? " required" : ""),
"fldtxt" + ((mld_melding.freetext == 2 && (mld_key < 0 || (this_mld.canOmsChange && this_mld.canChange)) && !txtreado)? " required" : ""),
L("lcl_mld_inf_Omschrijving"),
mld_melding.mld_omschr,
{ html: "rows='5'", readonly: oms_readonly, bb_codes: true, maxlength: S("mld_melding_oms_maxlen") });
@@ -1802,6 +1804,7 @@ SUBFRAME_START();
if ((!prsautlevel || prsautlevel == 9) && this_mld.canChangeKenmerkBlok) {
prsautlevel = -1;
}
var flexParams = {stdm_arr: mld_melding.stdm_key > 0? [mld_melding.stdm_key] : [],
mld_key: mld_copy_key > 0? mld_copy_key : mld_key,
copy: mld_copy_key > 0,
@@ -1814,7 +1817,7 @@ SUBFRAME_START();
srtdisc: S("mld_processing_group_all")? [] : [mld_melding.srtdisc_key],
disc: mld_melding.disc_key, // Initiele waarde primaire Vakgroep/Behandelteam.
prsautlevel: prsautlevel,
hideteams: (!canUseTeams || !this_mld.canBOwrite || !(fronto || backo)),
hideteams: (!canUseTeams || !this_mld.canBOwrite),
show_alg: mld_melding.show_alg,
loc_key: mld_melding.loc_key,
this_mld: this_mld
@@ -1823,7 +1826,7 @@ SUBFRAME_START();
} // \mldFlex
else if (id == "mldAfhandel")
{
if (lBestaandeMelding && (this_mld.canBOwrite || this_mld.canFOwrite))
if (lBestaandeMelding && (this_mld.canBOwrite || this_mld.canFOwrite) && this_mld.canChange)
{
if (S("mld_afhandeling_restrict_edit") == 0 || mld_melding.remark)
{ // Mag ik kennisbank raadplegen en standaard-antwoorden knippen/plakken

View File

@@ -481,18 +481,16 @@ function getFlexKenmerkBlockSql(params)
+ (afd_key > 0
? " , CASE"
// Waarde behandelblok voor nieuwe melding (mld_key == -1)
// 0) Geen (default) behandelteam ingevuld: Afhankelijk van pvolgnummer.
// 1) Default behandelteam ingevuld en user zit in het team: Blok altijd tonen.
// 2) Default behandelteam ingevuld en user zit NIET in het team: Blok niet tonen.
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van pvolgnummer.
// 1) Default behandelteam ingevuld en user zit in het team: Blok altijd tonen.
// 2) Default behandelteam ingevuld en user zit NIET in het team of geen (default) behandelteam ingevuld: Blok niet tonen.
+ " WHEN t.mld_srtkenmerk_kenmerktype != 'b'"
+ " THEN 0"
+ " WHEN k.ins_discipline_key IS NULL"
+ " THEN 0"
+ " WHEN " + user_key + " IN (" + sql_prs_in_team + ")"
+ " THEN 1"
+ " ELSE 2"
+ " END"
: ", 0") + " behandelblok"
: ", 2") + " behandelblok"
// Bestaande melding.
: " , kbm.ins_discipline_key blokbehandelteam"
+ " , kbm.prs_perslid_key blokbehandelaar"
@@ -500,13 +498,11 @@ function getFlexKenmerkBlockSql(params)
+ ((changeMelding || newMelding) && afd_key > 0
? " , CASE"
// Waarde behandelblok voor beataande melding (mld_key > 0)
// 0) Geen behandelteam ingevuld: Afhankelijk van pvolgnummer.
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen.
// 2) Behandelteam ingevuld en user zit NIET in het team: Blok niet tonen.
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van pvolgnummer.
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen.
// 2) Behandelteam ingevuld en user zit NIET in het team of geen behandelteam ingevuld: Blok niet tonen.
+ " WHEN t.mld_srtkenmerk_kenmerktype != 'b'"
+ " THEN 0"
+ " WHEN kbm.ins_discipline_key IS NULL"
+ " THEN 0"
+ " WHEN " + user_key + " IN (" + sql_prs_in_team + ")"
+ " THEN 1"
+ " ELSE 2"
@@ -673,10 +669,15 @@ function getFlexKenmerkBlockSql(params)
if (changeMelding || newMelding) // Advanced zoeken (advancedOpdracht) is nooit readonly
{ // Als de user een behandelaar van het blok is die niet is afgemeld, dan zijn de bijbehorende kenmerken altijd door de user te wijzigen.
if (behandelblok == 1 && !blokisafgemeld)
// 0) Kenmerk valt NIET onder een behandelbaar blok: Afhankelijk van pvolgnummer.
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen.
// 2) Behandelteam ingevuld en user zit NIET in het team of geen behandelteam ingevuld: Blok niet tonen.
if ((behandelblok == 1) && !blokisafgemeld)
return false;
// Als de user een behandelaar van het blok is die is afgemeld, dan de bijbehorende kenmerken readonly tonen.
else if (blokisafgemeld)
else if (behandelblok > 0 && blokisafgemeld)
return true;
// als ik alleen rechten op een kenmerkenblok had en geen canFlexChange rechten heb, dan het kenmerk readonly tonen.
else if (mld_key > 0 && !(my_mldrechten.canFlexChange))
@@ -745,26 +746,19 @@ function getFlexKenmerkBlockSql(params)
// In plaats van dit met de query te regelen, doen we dat hier via de functie isInvisible.
// Ik weet namelijk pas m.b.v. de query of ik een behandelbaar blok moet behandelen.
// Waarde behandelblok voor nieuwe melding (mld_key == -1)
// 0) Geen (default) behandelteam ingevuld: Afhankelijk van pvolgnummer
// 1) Default behandelteam ingevuld en user zit in het team: Blok altijd tonen
// 2) Default behandelteam ingevuld en user zit NIET in het team: Blok niet tonen
// Waarde behandelblok voor beataande melding (mld_key > 0)
// 0) Geen behandelteam ingevuld: Afhankelijk van pvolgnummer
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen
// 2) Behandelteam ingevuld en user zit NIET in het team: Blok niet tonen
// 0) Kenmerk valt NIET onder een behandelbaar blok: Afhankelijk van pvolgnummer.
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen.
// 2) Behandelteam ingevuld en user zit NIET in het team of geen behandelteam ingevuld: Blok niet tonen.
if (!my_mldrechten.canRead("WEB_MLDBOF") &&
((behandelblok == 0 && pvolgnummer > 900) ||
(behandelblok == 2)))
behandelblok == 2)
// Alleen met WEB_MLDBOF rechten mag ik melding flexkenmerken boven de 900 zien.
return true;
if (!my_mldrechten.canRead("WEB_MLDBOF") && !my_mldrechten.canRead("WEB_MLDFOF") &&
!my_mldrechten.canRead("WEB_MLDBO2") && !my_mldrechten.canRead("WEB_MLDBO3") &&
!my_mldrechten.canRead("WEB_MLDORD") && !my_mldrechten.canRead("WEB_MLDBAC") &&
((behandelblok == 0 && pvolgnummer > 800) ||
(behandelblok == 2)))
behandelblok == 2)
// Met alleen WEB_MLDUSE rechten mag ik kenmerken tussen 800 en 900 niet zien
return true;
}

View File

@@ -289,6 +289,7 @@ oRs.close();
if (treat)
{
sqln = "SELECT DISTINCT m.mld_melding_key"
+ " , m.mld_melding_onderwerp"
+ " , sd.ins_srtdiscipline_prefix"
+ sql_mld_prefix
+ " , " + (showgekoppeld? "m.mld_melding_parentkey" : "NULL") + " mld_melding_parentkey"
@@ -298,11 +299,12 @@ oRs.close();
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END"
+ " || " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
+ " , " + lcl.xsqla('std.mld_stdmelding_omschrijving', 'std.mld_stdmelding_key')
+ " , k.mld_kenmerk_key kenmerk_key"
+ " , COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + lcl.xsql("sk.mld_srtkenmerk_omschrijving", "sk.mld_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " , CASE WHEN kbm.mld_kenmerkblokmelding_afmelddatum IS NULL THEN 0 ELSE 1 END blokafgemeld";
+ " , " + lcl.xsqla('std.mld_stdmelding_omschrijving', 'std.mld_stdmelding_key')
+ ", stdg.mld_stdmeldinggroep_naam"
+ " , k.mld_kenmerk_key kenmerk_key"
+ " , COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + lcl.xsql("sk.mld_srtkenmerk_omschrijving", "sk.mld_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " , CASE WHEN kbm.mld_kenmerkblokmelding_afmelddatum IS NULL THEN 0 ELSE 1 END blokafgemeld";
}
else
{
@@ -605,6 +607,15 @@ oRs.close();
sqln += ", m.mld_melding_kto_type"
+ ", m.mld_melding_kto_key";
}
if (treat)
{
sqln += ", k.mld_kenmerk_key kenmerk_key"
+ ", COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + lcl.xsql("sk.mld_srtkenmerk_omschrijving", "sk.mld_srtkenmerk_key") + ") kenmerk_omschrijving"
+ ", CASE WHEN kbm.mld_kenmerkblokmelding_afmelddatum IS NULL THEN 0 ELSE 1 END blokafgemeld";
}
}
// Voeg aan de sql het FROM en WHERE gedeelte toe
@@ -686,7 +697,7 @@ oRs.close();
else
{
sqln = "SELECT /*+ CURSOR_SHARING_EXACT OPT_PARAM('optimizer_features_enable','11.2.0.4') */ * FROM (" + sqln + ") rec2 ORDER BY"
+ (excel ? " UPPER("+lcl.xsql('ins_discipline_omschrijving', 'ins_discipline_key')+"), mld_stdmelding_volgnr, mld_stdmelding_omschrijving," : "");
+ (excel? " UPPER(" + lcl.xsql('ins_discipline_omschrijving', 'ins_discipline_key') + "), mld_stdmelding_volgnr, mld_stdmelding_omschrijving," : "");
// merk op: mld_melding_einddatum wordt afh van mld_stdmelding_planbaar soms niet getoond in de lijst
// dan is sortering 0 verrassend/onbepaald, daar zou je de lege waarden bij elkaar willen, dat is de reden voor mld_stdmelding_planbaar
// waarbij 0: einddatum wordt berekend, 1: de einddatum van de melding is default leeg, 2: veld is verborgen, +4 show_actiedatum, MNNL#65934
@@ -1478,7 +1489,7 @@ oRs.close();
// Als we een subframe onder ins_show_deel zijn dan vooralsnog hier geen toevoeg knop.
// Misschien mag je dat namelijk helemaal niet voor dat object en daar staat wel een
// toverstafje die veel nauwkeuriger werkt.
if (canAdd && !params.deel_key && !params.deelsrtcont_key && !(params.mldgroup_key > 0 ))
if (!treat && canAdd && !params.deel_key && !params.deelsrtcont_key && !(params.mldgroup_key > 0 ))
{
var addurl = "appl/mld/mld_melding.asp?urole=" + (backo ? "fo" : urole); // backo mag niet toevoegen
if (params.srtdisc_key_arr.length === 1)
@@ -1520,11 +1531,19 @@ oRs.close();
var rst = new ResultsetTable({ keyColumn: "mld_melding_key",
sql: sqln,
ID: "treatmenttable",
tabs_code: "mld_list-" + urole,
flexModule: "MLD",
flexId: "mld_melding_key",
flexGroupId: "mld_stdmelding_key", // Kenmerken zijn ook op stdmelding niveau gedefinieerd
flexParentGroupId: "ins_discipline_key", // Kenmerken zijn ook op stdmelding niveau gedefinieerd
flexChangeNiveau: "S", // Niveau voor extra headers (met kenmerken) in excel
flexParams: (urole=="fe" && (print || excel)) ? fnrowFlexParams : null,
filterParams: params,
outputmode: outputmode,
title: (params.mldgroup_key > 0 ? L("lcl_mld_groeperingmeldingen") : L("lcl_complains")),
endText: fnendText,
showAll: showall
showAll: showall,
buttons: buttons
});
else
var rst = new ResultsetTable({ keyColumn: "mld_melding_key",
@@ -1561,8 +1580,10 @@ oRs.close();
if (treat)
{
rst.addColumn(new Column({caption: L("lcl_mld_number"), datatype: "number", content: fncolKey, colName: "fncolKey" }));
rst.addColumn(new Column({caption: L("lcl_mld_meldinggroep"), content: "mld_stdmeldinggroep_naam"}));
rst.addColumn(new Column({caption: L("lcl_vakgroup"), content: "ins_discipline_omschrijving", combine: false}));
rst.addColumn(new Column({caption: L("lcl_mld_complain"), content: "mld_stdmelding_omschrijving", combine: false }));
rst.addColumn(new Column({caption: L("lcl_mld_complain"), content: "mld_stdmelding_omschrijving", combine: true }));
rst.addColumn(new Column({caption: L("lcl_mld_subject"), content: fncolSubject, colName: "fncolSubject", thClass: "sorttable_alpha"}));
for (var i = 0; i < kenm.key.length; i++)
{
rst.addColumn(new Column({caption: String(kenm.omschr[i]),
@@ -1752,45 +1773,57 @@ if (!excel && !print)
<div id="legenda" style="display:none; line-height: 30px;">
<table id="meldinglegenda">
<tr>
<td title="<%= L("lcl_mld_legenda_normal_tt") %>"><%= L("lcl_mld_legenda_normal") %></td>
</tr>
<tr class="expired1">
<td title="<%= L("lcl_mld_legenda_expired1_tt") %>"><%= L("lcl_mld_legenda_expired1") %></td>
</tr>
<tr class="expired2">
<td title="<%= L("lcl_mld_legenda_expired2_tt") %>"><%= L("lcl_mld_legenda_expired2") %></td>
</tr>
<tr class="updated">
<td title="<%= L("lcl_mld_legenda_updated_tt") %>"><%= L("lcl_mld_legenda_updated") %></td>
</tr>
<tr class="expired2 updated">
<td title="<%= L("lcl_mld_legenda_expired2_tt") %>/<%= L("lcl_mld_legenda_updated_tt")%>"><%= L("lcl_mld_legenda_expired2") %>+<%= L("lcl_mld_legenda_updated") %></td>
</tr>
<% if (anyorders)
<% if (treat)
{ %>
<tr class="unsolved">
<td title="<%= L("lcl_mld_legenda_unsolved_tt") %>"><%= L("lcl_mld_legenda_unsolved") %></td>
</tr>
<tr class="unready">
<td title="<%= L("lcl_mld_legenda_unready_tt") %>"><%= L("lcl_mld_legenda_unready") %></td>
</tr>
<% } %>
<tr class="sleepy">
<td title="<%= L("lcl_mld_legenda_sleepy_tt") %>"><%= L("lcl_mld_legenda_sleepy") %></td>
</tr>
<tr class="child">
<td title="<%= L("lcl_mld_legenda_child_tt") %>"><%= L("lcl_mld_legenda_child") %></td>
</tr>
<% // Vlag 0 tonen we niet
for (var flagkey=1; flagkey < S('mld_melding_flags'); flagkey++)
{
<tr class="unsolved">
<td><span class="mldClosed"><%=I("fa-check")%></span>&nbsp; <%=L("lcl_afgemeld")%></td>
</tr>
<tr class="unsolved">
<td><span class=""><%=I("fa-times")%></span>&nbsp;<%=L("lcl_mld_not")%>&nbsp;<%=L("lcl_afgemeld")%></td>
</tr>
<% }
else
{ %>
<tr>
<td title="<%= L("lcl_mld_legenda_normal_tt") %>"><%= L("lcl_mld_legenda_normal") %></td>
</tr>
<tr class="expired1">
<td title="<%= L("lcl_mld_legenda_expired1_tt") %>"><%= L("lcl_mld_legenda_expired1") %></td>
</tr>
<tr class="expired2">
<td title="<%= L("lcl_mld_legenda_expired2_tt") %>"><%= L("lcl_mld_legenda_expired2") %></td>
</tr>
<tr class="updated">
<td title="<%= L("lcl_mld_legenda_updated_tt") %>"><%= L("lcl_mld_legenda_updated") %></td>
</tr>
<tr class="expired2 updated">
<td title="<%= L("lcl_mld_legenda_expired2_tt") %>/<%= L("lcl_mld_legenda_updated_tt")%>"><%= L("lcl_mld_legenda_expired2") %>+<%= L("lcl_mld_legenda_updated") %></td>
</tr>
<% if (anyorders)
{ %>
<tr class="unsolved">
<td title="<%= L("lcl_mld_legenda_unsolved_tt") %>"><%= L("lcl_mld_legenda_unsolved") %></td>
</tr>
<tr class="unready">
<td title="<%= L("lcl_mld_legenda_unready_tt") %>"><%= L("lcl_mld_legenda_unready") %></td>
</tr>
<% } %>
<tr class="sleepy">
<td title="<%= L("lcl_mld_legenda_sleepy_tt") %>"><%= L("lcl_mld_legenda_sleepy") %></td>
</tr>
<tr class="child">
<td title="<%= L("lcl_mld_legenda_child_tt") %>"><%= L("lcl_mld_legenda_child") %></td>
</tr>
<% // Vlag 0 tonen we niet
for (var flagkey=1; flagkey < S('mld_melding_flags'); flagkey++)
{
%><tr><td>
<span class="mldflag<%=flagkey%>"><%=I("fa-fclt-flag")%></span>&nbsp;
<%=L("lcl_mld_flag"+flagkey)%>
</td></tr><%
}
%>
}
%>
<% } %>
</table>
</div>
<% } %>

View File

@@ -97,6 +97,30 @@ var element_description = ( S("ins_element_description") == ""
: S("ins_element_description")
);
/*
Does there exist;
1: A vakgroep which can be a team
2: A vakgroep which can have a team
*/
var sql = "SELECT 1"
+ " FROM DUAL"
+ " WHERE EXISTS"
+ " (SELECT 1"
+ " FROM mld_disc_params dp1, mld_discipline d1"
+ " WHERE d1.ins_discipline_key = dp1.mld_ins_discipline_key"
+ " AND d1.ins_discipline_verwijder IS NULL"
+ " AND BITAND (dp1.mld_disc_params_srtgroep, 2) = 2)" // Is team?
+ " AND EXISTS"
+ " (SELECT 1"
+ " FROM mld_disc_params dp2, mld_discipline d2"
+ " WHERE d2.ins_discipline_key = dp2.mld_ins_discipline_key"
+ " AND d2.ins_discipline_verwijder IS NULL"
+ " AND BITAND (dp2.mld_disc_params_srtgroep, 4) = 4)" // Has team?
+ " AND ROWNUM <= 1";
var oRs = Oracle.Execute(sql);
var canUseTeams = !oRs.EoF;
oRs.Close();
function getAlgKeys(alg_keys)
{
var all_keys = {};
@@ -2183,21 +2207,31 @@ if (mld_key > -1 && this_mld.canClose && action != "forward")
</tr>
<% }
// De verplichte afmeld (close) kenmerken tonen bij het afmelden. Vooralsnog worden de andere verplichte kenmerken niet getoond.
generateFlexKenmerkBlock({stdm_arr : [stdm_key],
mld_key : mld_key,
close : true,
mobile : true,
showConfidential : this_mld.canViewConfidential,
melder_key: mld_info.melder_key,
srtdisc: S("mld_processing_group_all")? [] : [mld_info.srtdisc_key],
disc: mld_info.disc_key, // Initiele waarde primaire Vakgroep/Behandelteam.
prsautlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
hideteams: false,
show_alg: mld_info.show_alg,
loc_key: mld_info.loc_key,
this_mld: this_mld
});
var prsautlevel = (this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel);
// Als ik geen PRS-schrijfrechten op de melding heb, maar ik ben wel blokbehandelaar, dan mag ik gewoon iedereen uit mijn team kiezen. Niet optimaal, maar goed genoeg voor nu
if ((!prsautlevel || prsautlevel == 9) && this_mld.canChangeKenmerkBlok) {
prsautlevel = -1;
}
// De verplichte afmeld (close) kenmerken tonen bij het afmelden. Vooralsnog worden de andere verplichte kenmerken niet getoond.
generateFlexKenmerkBlock({stdm_arr : [stdm_key],
mld_key : mld_key,
close : true,
mobile : true,
prs_key: user_key,
act_key: mld_info.act_key,
reado: (mld_key > 0 && !(this_mld.canFlexChange || this_mld.canChangeKenmerkBlok)), // Bij alleen canChangeKenmerkBlok rechten dan ook check in isReadonly.
readotreatment: (mld_key > 0 && !this_mld.canFlexChange),
showConfidential : this_mld.canViewConfidential,
melder_key: mld_info.melder_key,
srtdisc: S("mld_processing_group_all")? [] : [mld_info.srtdisc_key],
disc: mld_info.disc_key, // Initiele waarde primaire Vakgroep/Behandelteam.
prsautlevel: prsautlevel,
hideteams: (!canUseTeams || !this_mld.canBOwrite),
show_alg: mld_info.show_alg,
loc_key: mld_info.loc_key,
this_mld: this_mld
});
CONTROLGROUP_START();
if (opdr_opm != "")

View File

@@ -1757,25 +1757,26 @@ function kenmerktype_xref (pfield, pprops, pparams)
return lkv;
}
var behandelblok = 0;
// ==========================================================================================
function kenmerktype_label (pfield, pprops, pparams)
{
// Een label is geen echt veld, maar een infoblock
// De 'waarde' van een label is de defaultwaarde van het kenmerk
var lkv = "";
behandelblok = 0;
// Een label is geen echt veld, maar een infoblock
// De 'waarde' van een label is de defaultwaarde van het kenmerk
var lkv = "";
if (S("fac_html_strictness") == 0)
var safe_default = pfield.kdefault
else
var safe_default = safe.html(pfield.kdefault);
lkv = "<span class='flexlabel'>"+(safe_default || "")+"</span>";
return lkv;
if (S("fac_html_strictness") == 0)
var safe_default = pfield.kdefault
else
var safe_default = safe.html(pfield.kdefault);
lkv = "<span class='flexlabel'>"+(safe_default || "")+"</span>";
return lkv;
}
// KENMERKTYPE l (kleine letter L) = blokheader (voorheen collapsible label) ===============
// ==========================================================================================
var canbehandelblok = false;
var behandelblok = false;
var blokisafgemeld = false;
function kenmerktype_blocktitel (pfield, pprops, pparams)
{
@@ -1808,12 +1809,13 @@ function kenmerktype_blocktitel (pfield, pprops, pparams)
"hidden": hide_block,
"collapsible": !pprops.reado && pfield.forceReadonly
};
var show_b = false;
if (pprops.treatable && pfield.kkenmerktype == "b")
{ // Behandelbare bloktitel.
{ // Het is een Behandelbare bloktitel.
// Waarde behandelblok.
// 0) Geen (default) behandelteam ingevuld:
// 1) Default behandelteam ingevuld en user zit in het team:
// 2) Default behandelteam ingevuld en user zit NIET in het team:
// 0) Kenmerk valt NIET onder een behandelbaar blok: Afhankelijk van pvolgnummer.
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen.
// 2) Behandelteam ingevuld en user zit NIET in het team of geen behandelteam ingevuld: Blok niet tonen.
behandelblok = pfield.behandelblok;
blokisafgemeld = pfield.blokafgemeld;
var id_disc = pprops.nameprefix + pfield.idCounter + "team";
@@ -1821,13 +1823,14 @@ function kenmerktype_blocktitel (pfield, pprops, pparams)
block_params.treatable = { "isTreatable": true,
"flexid": pprops.nameprefix + pfield.idCounter,
"kkey": pfield.kkey,
"hideteams": pprops.treatable.hideteams && pfield.behandelblok != 1,
"hideteams": pprops.treatable.hideteams && pfield.behandelblok == 2,
"disc" : { "id": id_disc,
"srtdisc_key": pprops.treatable.srtdisc,
"disc": pprops.treatable.disc,
"disc_key": (pprops.treatable.mld_key > 0? pfield.blokbehandelteam : (pfield.default_blokbehandelteam? pfield.default_blokbehandelteam : -1)), // Initiele waarde tertiare Vakgroep/Behandelteam.
"perslidKey": (pprops.treatable.mld_key > 0? pprops.treatable.melder_key : user_key),
"reado": pprops.treatable.readotreatment || pprops.treatable.hideteams
"reado": pprops.reado || pprops.treatable.readotreatment || pprops.treatable.closed || pprops.treatable.hideteams
// pprops.treatable.readotreatment || pprops.treatable.hideteams
},
"prs": { "id": id_prs,
"disc_key": (pprops.treatable.mld_key > 0? pfield.blokbehandelteam : (pfield.default_blokbehandelteam? pfield.default_blokbehandelteam : -1)), // Initiele waarde tertiare Vakgroep/Behandelteam.
@@ -1836,18 +1839,18 @@ function kenmerktype_blocktitel (pfield, pprops, pparams)
"melder_key": pprops.treatable.melder_key || -1,
"filtcode": pprops.treatable.filtcode,
"prsautlevel": pprops.treatable.prsautlevel,
"reado": pprops.reado || pprops.treatable.readocompl || pprops.treatable.closed,
"reado": pprops.reado || pprops.treatable.readotreatment || pprops.treatable.closed || pprops.treatable.hideteams,
"show_alg": (pprops.treatable.show_alg? 1 : 0),
"loc_key": (pprops.treatable.loc_key? pprops.treatable.loc_key : -1)
},
"compl": { "value": pfield.blokafgemeld,
"reado": (pfield.behandelblok == 2) || pprops.treatable.readocompl || pprops.reado
}
}
};
show_b = !(pprops.treatable.hideteams && pfield.behandelblok == 2);
}
else
{
behandelblok = 0;
blokisafgemeld = false;
block_params.treatable = { "isTreatable": false };
}
@@ -1855,7 +1858,8 @@ function kenmerktype_blocktitel (pfield, pprops, pparams)
var mobile_block_params = { "pId": "flx_" + pprops.nameprefix + pfield.idCounter,
"safe": true,
"title": (pfield.komschrijving ? pfield.komschrijving : (pfield.kkenmerktype == "l"? L("lcl_flexblok") : L("lcl_mld_treatable_flexblok"))),
"collapsed": !pprops.reado && pfield.forceReadonly
"collapsed": !pprops.reado && pfield.forceReadonly,
treatable: block_params.treatable
};
if (pfield.kdefault && pfield.kdefault.match(/^fa-/))
block_params.icon = pfield.kdefault;
@@ -1884,7 +1888,8 @@ function kenmerktype_blocktitel (pfield, pprops, pparams)
/*global*/inMobileBlock = pprops.mobile; // op dit moment zitten we in een mobile-collapse-content-block
/*global*/clabelCounter++;
}
return lkv;
var km_data = { lkv: lkv, show_b: show_b };
return km_data;
}
// ==========================================================================================
@@ -2493,9 +2498,9 @@ function listKenmerk(sql, module, pkey, props)
thisfield.blokbehandelaar = oRs("blokbehandelaar").Value || -1; // Blokbehandelaar.
thisfield.blokafgemeld = oRs("blokafmelddatum").Value != null? true : false; // Blok is afgemeld als blokafmelddatum is gevuld.
// Waarde behandelblok.
// 0) Geen (default) behandelteam ingevuld:
// 1) Default behandelteam ingevuld en user zit in het team:
// 2) Default behandelteam ingevuld en user zit NIET in het team:
// 0) Kenmerk valt NIET onder een behandelbaar blok:
// 1) Behandelteam ingevuld en user zit in het team:
// 2) Behandelteam ingevuld en user zit NIET in het team of geen behandelteam ingevuld:
thisfield.behandelblok = oRs("behandelblok").Value;
}
@@ -2811,7 +2816,8 @@ function listKenmerk(sql, module, pkey, props)
, kkenmerktype: "l"
, isShowExpr: false
}
kv = kenmerktype_blocktitel(thisfield_auto, props, params);
kv_data = kenmerktype_blocktitel(thisfield_auto, props, params);
kv = kv_data.lkv;
blockId = idCounter;
blockShow["flx_" + props.nameprefix + blockId] = 0;
// Om er een veld van te maken zou je kv2html(..) doen,
@@ -2859,7 +2865,8 @@ function listKenmerk(sql, module, pkey, props)
case "b":
if (!props.noblock)
{
kv = kenmerktype_blocktitel(thisfield, props, params);
kv_data = kenmerktype_blocktitel(thisfield, props, params);
kv = kv_data.lkv;
anyCollapsible = anyCollapsible || (!props.reado && thisfield.forceReadonly)
blockId = thisfield.idCounter;
blockShow["flx_" + props.nameprefix + blockId] = 0;
@@ -2887,7 +2894,8 @@ function listKenmerk(sql, module, pkey, props)
break;
}
anyHint = anyHint || (thisfield.kkenmerktype != "l" && thisfield.kkenmerktype != "b" && thisfield.kkenmerktype != "Q" && kv && thisfield.khint != null && !thisfield.ishidden && !props.nolabel);
if (thisfield.kkenmerktype != "l" && thisfield.kkenmerktype != "b" && kv.length > 0)
if ((thisfield.kkenmerktype != "l" && thisfield.kkenmerktype != "b" && kv.length > 0) ||
(thisfield.kkenmerktype == "b" && kv_data.show_b))
{ // Verhoog het aantal ingevulde kenmerken in een blok.
blockShow["flx_" + props.nameprefix + blockId]++;
}
@@ -4063,10 +4071,6 @@ function flexkenmerken2jsondata(params)
var kteam = getFParamInt(flex + "team", ""); // behandelteam (alleen voor type b)
var kprs= getFParamInt(flex + "prs", ""); // behandelaar (alleen voor type b)
__Log("kk: "+kk);
__Log("kt: "+kt);
__Log("kv: "+kv);
__Log("ke: "+ke);
// Kijken of er een checkbox "Gereed" in de (blok)header aanwezig is.
var kcomplete = 0; // blok gereed (alleen voor type b)
var isCheckbox = getFParamInt("has_" + flex + "complete", 0) == 1;
@@ -4126,18 +4130,15 @@ __Log("ke: "+ke);
// Als het een numeriek/decimaal veld is, kan het ook een checkbox zijn
if (kt == "N" || kt == "V")
{
__Log("NUMBER");
// Kijken of het een checkbox is
var isCheckbox = getFParamInt("has_" + flex + "val", 0) == 1;
if (isCheckbox)
{
__Log(">checkbox");
var isChecked = Request.Form(flex + "val").Count;
kv = (isChecked ? "1" : ""); // Een niet aangevinkte checkbox hoeft niet opgeslagen te worden als de waarde "0".
}
else
{
__Log(">getal");
kv = kv.replace(",", "."); // We slaan altijd op met punten
if (kv.substr(0, 2) == "0.") // leading zero er af. Doet de database trigger ook en nu
{
@@ -4147,7 +4148,6 @@ __Log(">getal");
kv = kv.substr(1); // krijgen we geen ongewenste tracking.
}
}
__Log(">"+kv);
}
// Suggest kenmerken moeten ook gedelete worden als ze leeg zijn. Dus voor delete actie leeg maken.