稟議プロセス, 全会一致方式決裁 20230425
全会一致方式で決裁される稟議プロセスです。500万円超の起案時に複数の意思決定者を指定します。全意思決定者の”承認”で決裁されます。
フィールド名, Num
, 初期値
Download
- decision-making-request-flow2-unanimously-20230425.qar
- decision-making-request-flow2-unanimously-20230425.csv (データ項目定義インポート用)
Professional でのみご利用いただけます。
Notes
- データ項目”◆Script:全会一致-制御”は、”3c.承認決裁する”工程でのみ”閲覧可”設定してください。
Arrangement Tips
(click to open) “3c.承認決裁する”工程 デコレーション JavaScript
<script>
const DECISION_FORM_NAME = 'data[13].selects'; // 選択肢”承認結果”の定義番号含む 文字列
const DECISION_FORM_FIELD_NAME = 'q_decision_result'; // 選択肢”承認結果”のフィールド名を指定
const DECISION_REJECT_VALUE = 'ng'; // 選択肢”承認結果”の IDを指定
const DECISION_JUDGEMENT_USER_LIST = 'q_judgement_user_list'; // 文字列型 "承認/否決者リスト"のフィールド名を指定
const DECISION_JUDGEMENT_USER = 'q_judgement_user'; // ユーザ型 "承認/否決者"のフィールド名を指定
let userName;
let isChangeItem = false;
function user_readyHandler(e) {
const submitBtn = document.getElementById('submitButton');
const saveOnlyBtn = document.getElementById('saveOnlyButton');
let selects = qbpms.form.get( DECISION_FORM_FIELD_NAME );
qbpms.form.set( DECISION_JUDGEMENT_USER , null );
if (selects.length !== 0){
console.log("selects[0].value: " + selects[0].value );
if ( selects[0].value === DECISION_REJECT_VALUE ){
let items = document.getElementsByName( DECISION_FORM_NAME );
items[1].disabled = true;
alert("この稟議は、既に否決されています。\n起案内容を確認の上、コメントを記入してください。");
let decisionNote = document.getElementById('user_decision_description');
decisionNote.innerHTML = "この稟議は、既に否決されています。<br>起案内容を確認の上、コメントを記入してください。";
}
}
submitBtn.addEventListener('click', function() {
user_controlDecisionForm();
});
saveOnlyBtn.addEventListener('click', function() {
user_controlRejectDecisionForm();
});
}
function user_addedChangeItemEvent(e) {
console.log("Decision Form Change");
let selects = qbpms.form.get( DECISION_FORM_FIELD_NAME );
if (selects.length !== 0){
if ( qbpms.form.get(DECISION_JUDGEMENT_USER) === null ){
isChangeItem = false;
qbpms.form.set( DECISION_FORM_FIELD_NAME , null );
alert("「承認/否決者」を登録し、再度、「承認/否決」を指定してください。");
}else{
isChangeItem = true;
user_setJudgementUsersList("否決");
}
}
}
qbpms.form.on('ready', user_readyHandler);
qbpms.form.on('change', DECISION_FORM_FIELD_NAME ,user_addedChangeItemEvent);
function user_controlDecisionForm(){
let checkForm = document.getElementsByName( DECISION_FORM_NAME );
console.log(checkForm + " length:" + checkForm.length);
selects = qbpms.form.get( DECISION_FORM_FIELD_NAME );
if (selects.length !== 0){
let items = document.getElementsByName( DECISION_FORM_NAME );
if (items[1].disabled){
checkForm[0].remove();
}
if (!isChangeItem){
if ( qbpms.form.get(DECISION_JUDGEMENT_USER) === null ){
qbpms.form.set( DECISION_FORM_FIELD_NAME , null );
alert("「承認/否決者」を登録し、再度、「承認/否決」を指定してください。");
}else{
user_setJudgementUsersList("承認");
}
}
if ( selects[0].value === DECISION_REJECT_VALUE ){
console.log( DECISION_FORM_FIELD_NAME + " not appoval!");
}
}else{
console.log( DECISION_FORM_FIELD_NAME + " remove! not regist");
//checkForm[0].remove();
if ( qbpms.form.get(DECISION_JUDGEMENT_USER) === null ){
qbpms.form.set( DECISION_FORM_FIELD_NAME , null );
alert("「承認/否決者」を登録し、再度、「承認/否決」を指定してください。");
}else{
user_setJudgementUsersList("承認");
}
}
}
function user_controlRejectDecisionForm(){
let checkForm = document.getElementsByName( DECISION_FORM_NAME );
console.log(checkForm + " length:" + checkForm.length);
console.log("checkForm[0]:" + checkForm[0]);
console.log("checkForm[1]:" + checkForm[1]);
console.log( DECISION_FORM_FIELD_NAME + " remove! not regist");
checkForm[1].remove();
checkForm[0].remove();
}
function user_setJudgementUsersList( judgeText ){
console.log("--user_setJudgementUsersList()--");
userName = qbpms.form.get(DECISION_JUDGEMENT_USER).name;
console.log("userName: " + userName);
let list = (qbpms.form.get( DECISION_JUDGEMENT_USER_LIST ) + "\n" + judgeText + ":" + userName).trim();
qbpms.form.set(DECISION_JUDGEMENT_USER_LIST , list );
}
</script>
Capture
