360 lines
13 KiB
JavaScript
360 lines
13 KiB
JavaScript
//事前申請確認ウインドウ
|
||
//事前申請外部メッセージ、チェックボックスウインドウ
|
||
|
||
//管理設計:ClassL
|
||
//所属長:ClassY
|
||
//WF専務GR:['423'] //川名 真治
|
||
//WF総務GR:['463', '459', '655', '691'] //豊蔵 恵美, 長谷川 望, 秦野 勇輝, 露﨑 直樹
|
||
//担当役員:Class122
|
||
//Class124 [本前]管理設計_確認者
|
||
//Class125 [本前]所属長_確認者
|
||
//Class126 [本前]専務_確認者
|
||
//Class127 [本前]総務_確認者
|
||
//Class128 [本前]役員_確認者
|
||
|
||
let jizenKakuninMode;//データを保管するカラム番号
|
||
let childWindow;
|
||
|
||
function jizenKakunin() {
|
||
let userId = $p.userId();
|
||
let tantoEigyo = myData.ClassHash.ClassG;
|
||
let kanriSekkei = myData.ClassHash.ClassL;
|
||
let shozokucho = myData.ClassHash.ClassY;
|
||
let senmu = '423';//川名専務のUserId
|
||
let soumu = ['463', '459', '655', '691', '460'];
|
||
//let yakuin = myData.ClassHash.Class122;
|
||
jizenKakuninMode = 0;
|
||
|
||
let status = myData.Status;
|
||
|
||
switch (status) {
|
||
case 150: //本契約 事前申請
|
||
if (userId == kanriSekkei && !(myData.CheckHash['Check124'])) {
|
||
//管理設計
|
||
jizenKakuninMode = 124;
|
||
} else if (userId == shozokucho && !(myData.CheckHash['Check125'])) {
|
||
//所属長確認
|
||
jizenKakuninMode = 125;
|
||
} else if (userId == senmu && !(myData.CheckHash['Check126'])) {
|
||
//専務確認
|
||
jizenKakuninMode = 126;
|
||
} else if (soumu.includes(userId.toString()) && !(myData.CheckHash['Check127'])) {
|
||
//総務
|
||
jizenKakuninMode = 127;
|
||
}
|
||
//else if (userId == yakuin && !(myData.CheckHash['Check128'])) {
|
||
// //役員
|
||
// jizenKakuninMode = 128;
|
||
//}
|
||
break;
|
||
case 151: //設計契約 事前申請
|
||
if (userId == kanriSekkei && !(myData.CheckHash['Check195'])) {
|
||
//管理設計
|
||
jizenKakuninMode = 195;
|
||
} else if (userId == shozokucho && !(myData.CheckHash['Check196'])) {
|
||
//所属長確認
|
||
jizenKakuninMode = 196;
|
||
} else if (soumu.includes(userId.toString()) && !(myData.CheckHash['Check197'])) {
|
||
//総務
|
||
jizenKakuninMode = 197;
|
||
}
|
||
//else if (userId == yakuin && !(myData.CheckHash['Check198'])) {
|
||
// //役員
|
||
// jizenKakuninMode = 198;
|
||
//}
|
||
break;
|
||
case 160: //本契約 事前確認
|
||
//担当営業最終確認
|
||
if (userId == tantoEigyo) {
|
||
//最終確認モード
|
||
jizenKakuninMode = 139;
|
||
}
|
||
break;
|
||
case 161://設計契約 事前確認
|
||
//担当営業最終確認
|
||
if (userId == tantoEigyo) {
|
||
//最終確認モード
|
||
jizenKakuninMode = 170;
|
||
}
|
||
break;
|
||
}
|
||
|
||
console.log(jizenKakuninMode)
|
||
|
||
//すでに完了チェックを入れている場合はボタン無し
|
||
//事前確認ウインドウ ボタン表示判定
|
||
if (jizenKakuninMode != 0) {
|
||
if (status == 150 || status == 151) {
|
||
if (!(myData.CheckHash['Check' + jizenKakuninMode])) {
|
||
createJizenKakuninButton1();
|
||
}
|
||
} else if (status == 160) {
|
||
createJizenKakuninButton2();
|
||
} else if (status == 161) {
|
||
createJizenKakuninButton3();
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
function createJizenKakuninButton1() {
|
||
let div = document.createElement('div');
|
||
div.id = 'jizenWindow';
|
||
$('#Guide').after(div);
|
||
|
||
let button = document.createElement('button');
|
||
button.type = 'button';
|
||
button.id = 'jizenWindowButton';
|
||
button.innerHTML = '[各部署]事前確認';
|
||
button.setAttribute('onclick', 'jizenKakuninWindowOpen1() ');
|
||
button.style.margin = '5px';
|
||
button.style.fontSize = '150%';
|
||
button.style.fontWeight = 'bold';
|
||
button.style.color = '#FF0000';
|
||
div.append(button);
|
||
$('#jizenWindowButton').button({
|
||
icon: 'ui-icon-star'
|
||
});
|
||
}
|
||
|
||
function createJizenKakuninButton2() {
|
||
let div = document.createElement('div');
|
||
div.id = 'jizenWindow';
|
||
$('#Guide').after(div);
|
||
|
||
let button = document.createElement('button');
|
||
button.type = 'button';
|
||
button.id = 'jizenWindowButton';
|
||
button.innerHTML = '[本契]事前確認';
|
||
button.setAttribute('onclick', 'jizenKakuninWindowOpen2() ');
|
||
button.style.margin = '5px';
|
||
button.style.fontSize = '150%';
|
||
button.style.fontWeight = 'bold';
|
||
button.style.color = '#FF0000';
|
||
div.append(button);
|
||
$('#jizenWindowButton').button({
|
||
icon: 'ui-icon-star'
|
||
});
|
||
}
|
||
|
||
function createJizenKakuninButton3() {
|
||
let div = document.createElement('div');
|
||
div.id = 'jizenWindow';
|
||
$('#Guide').after(div);
|
||
|
||
let button = document.createElement('button');
|
||
button.type = 'button';
|
||
button.id = 'jizenWindowButton';
|
||
button.innerHTML = '[設契]事前確認';
|
||
button.setAttribute('onclick', 'jizenKakuninWindowOpen3() ');
|
||
button.style.margin = '5px';
|
||
button.style.fontSize = '150%';
|
||
button.style.fontWeight = 'bold';
|
||
button.style.color = '#FF0000';
|
||
div.append(button);
|
||
$('#jizenWindowButton').button({
|
||
icon: 'ui-icon-star'
|
||
});
|
||
}
|
||
|
||
|
||
function jizenKakuninWindowOpen1() {
|
||
let url = '/pleasanter/myScripts/beforeComment.html';
|
||
childWindow = window.open(url, '[各部署]事前確認シート', 'left=10,top=10,width=800,height=600,menubar=no,toolbar=no,location=no,status=no,resizable=yes');
|
||
}
|
||
|
||
function jizenKakuninWindowOpen2() {
|
||
let url = '/pleasanter/myScripts/beforeCheck1.html';
|
||
childWindow = window.open(url, '[本契約]事前確認 担当営業チェックシート', 'left=10,top=10,width=800,height=800,menubar=no,toolbar=no,location=no,status=no,resizable=yes');
|
||
}
|
||
function jizenKakuninWindowOpen3() {
|
||
let url = '/pleasanter/myScripts/beforeCheck2.html';
|
||
childWindow = window.open(url, '[設計契約]事前確認 担当営業チェックシート', 'left=10,top=10,width=800,height=800,menubar=no,toolbar=no,location=no,status=no,resizable=yes');
|
||
}
|
||
|
||
|
||
function receiveMessageFromChild(message, checkbox) {
|
||
console.log('親ウィンドウ:子ウィンドウからメッセージを受信しました!');
|
||
//console.log('メッセージ内容:', message);
|
||
//console.log('チェックボックス', checkbox);
|
||
console.log(jizenKakuninMode)
|
||
|
||
let now = new Date();
|
||
let nowStr = now.getFullYear() + '/' +
|
||
(now.getMonth() + 1).toString().padStart(2, '0') + '/' +
|
||
now.getDate().toString().padStart(2, '0') + ' ' +
|
||
now.getHours().toString().padStart(2, '0') + ':' +
|
||
now.getMinutes().toString().padStart(2, '0') + ':' +
|
||
now.getSeconds().toString().padStart(2, '0');
|
||
|
||
|
||
//確認完了チェックが入っていたら日付を保存する
|
||
if (checkbox) {
|
||
$p.set($('#Results_Date' + jizenKakuninMode), nowStr);//完了日
|
||
$p.set($('#Results_Check' + jizenKakuninMode), 'checked');//完了チェックボックス
|
||
} else {
|
||
$p.set($('#Results_Date' + jizenKakuninMode), '');
|
||
$p.set($('#Results_Check' + jizenKakuninMode), '');
|
||
}
|
||
|
||
$p.set($('#Results_Class' + jizenKakuninMode), $p.userId()); //確認者
|
||
$p.set($('#Results_Description' + jizenKakuninMode), message); //コメント
|
||
|
||
childWindow.close(); //子ウインドウを閉じる
|
||
|
||
//更新処理
|
||
//$('#UpdateCommand').click();
|
||
//ステータスチェック
|
||
let status = myData.Status;
|
||
|
||
//タブ移動
|
||
switch (status) {
|
||
case 150: //本契約 事前申請
|
||
$('a[href="#FieldSetTab17"]').click();
|
||
break;
|
||
case 151: //設計契約 事前申請
|
||
$('a[href="#FieldSetTab16"]').click();
|
||
break;
|
||
case 160: //本契約 事前確認
|
||
//担当営業最終確認
|
||
$('a[href="#FieldSetTab17"]').click();
|
||
break;
|
||
case 161://設計契約 事前確認
|
||
//担当営業最終確認
|
||
$('a[href="#FieldSetTab16"]').click();
|
||
break;
|
||
}
|
||
|
||
window.alert('チェックとコメントを保存するため、最後に必ず『更新』ボタンを押してください');
|
||
}
|
||
|
||
//事前確認ウインドウに入力途中のメッセージを表示
|
||
function getMessageFromParent() {
|
||
let message = $('#Results_Description' + jizenKakuninMode).val();
|
||
return message;
|
||
}
|
||
|
||
|
||
function getjizenKakuninModeFromParent() {
|
||
return jizenKakuninMode;
|
||
}
|
||
//事前確認ウインドウに入力途中のメッセージを表示
|
||
function getChekboxFromParent() {
|
||
let checkbox = $('#Results_Check' + jizenKakuninMode).prop("checked");
|
||
//console.log('CheckBox' + jizenKakuninMode + ' is ' + checkbox);
|
||
return checkbox;
|
||
}
|
||
|
||
function getCommentsDataFromParent(idList) {
|
||
let ret = {}
|
||
|
||
idList.forEach(function (id) {
|
||
let checkBox = $('#Results_Check' + id).prop("checked");
|
||
ret[id] = {};
|
||
|
||
if (checkBox) {
|
||
//承認者
|
||
ret[id]['shonin_user'] = $('#Results_Class' + id).val() == '' ? '' : userList[$('#Results_Class' + id).val()].name;
|
||
|
||
//承認日
|
||
if ($('#Results_Date' + id).val() != '') {
|
||
let date = new Date($('#Results_Date' + id).val());
|
||
dateStr = date.getFullYear() + '年' +
|
||
(date.getMonth() + 1).toString().padStart(2, '0') + '月' +
|
||
date.getDate().toString().padStart(2, '0') + '日';
|
||
timeStr = date.getHours().toString().padStart(2, '0') + '時' +
|
||
date.getMinutes().toString().padStart(2, '0') + '分';
|
||
ret[id]['shonin_date'] = dateStr + '<br>' + timeStr;
|
||
} else {
|
||
ret[id]['shonin_date'] = '';
|
||
}
|
||
|
||
//コメント
|
||
ret[id]['comments'] = '<pre>' + $('#Results_Description' + id).val() + '</pre>';
|
||
|
||
} else {
|
||
ret[id]['shonin_user'] = '';
|
||
ret[id]['shonin_date'] = '';
|
||
ret[id]['comments'] = '';
|
||
}
|
||
});
|
||
|
||
//console.log(ret);
|
||
return ret;
|
||
}
|
||
|
||
//チェック状態を取得して子ウインドウに反映
|
||
function getCheckDataFromParent(checkList) {
|
||
let ret = {};
|
||
|
||
checkList.forEach(function (id) {
|
||
let check = $('#Results_Check' + id).prop("checked");
|
||
ret[id] = check;
|
||
});
|
||
|
||
return ret;
|
||
}
|
||
|
||
//子ウインドウでチェックボックスを操作したら、メインウインドウのチェックボックスが連動
|
||
function setCheckboxDataFromChild(id, flag) {
|
||
$('#Results_Check' + id).prop("checked");
|
||
if (flag) {
|
||
$p.set($('#Results_Check' + id), 'checked');//完了チェックボックス オン
|
||
} else {
|
||
$p.set($('#Results_Check' + id), '');//完了チェックボックス オフ
|
||
}
|
||
}
|
||
|
||
function closeJizenKakuninWindow(checkList) {
|
||
let flag = true;
|
||
|
||
//現在時刻取得
|
||
let now = new Date();
|
||
let nowStr = now.getFullYear() + '/' +
|
||
(now.getMonth() + 1).toString().padStart(2, '0') + '/' +
|
||
now.getDate().toString().padStart(2, '0') + ' ' +
|
||
now.getHours().toString().padStart(2, '0') + ':' +
|
||
now.getMinutes().toString().padStart(2, '0') + ':' +
|
||
now.getSeconds().toString().padStart(2, '0');
|
||
|
||
|
||
checkList.forEach(function (id) {
|
||
let check = $('#Results_Check' + id).prop("checked");
|
||
if (!check) flag = false; //ひとつでもチェックがないと更新無し
|
||
});
|
||
|
||
//担当営業がすべてチェックを入れたら完了処理
|
||
if (flag) {
|
||
$p.set($('#Results_Date' + jizenKakuninMode), nowStr);//完了日
|
||
$p.set($('#Results_Class' + jizenKakuninMode), $p.userId()); //確認者
|
||
}
|
||
|
||
childWindow.close(); //子ウインドウを閉じる
|
||
|
||
//更新処理
|
||
//$('#UpdateCommand').click();
|
||
|
||
//ステータスチェック
|
||
let status = myData.Status;
|
||
|
||
//タブ移動
|
||
switch (status) {
|
||
case 150: //本契約 事前申請
|
||
$('a[href="#FieldSetTab17"]').click();
|
||
break;
|
||
case 151: //設計契約 事前申請
|
||
$('a[href="#FieldSetTab16"]').click();
|
||
break;
|
||
case 160: //本契約 事前確認
|
||
//担当営業最終確認
|
||
$('a[href="#FieldSetTab17"]').click();
|
||
break;
|
||
case 161://設計契約 事前確認
|
||
//担当営業最終確認
|
||
$('a[href="#FieldSetTab16"]').click();
|
||
break;
|
||
}
|
||
|
||
window.alert('チェックとコメントを保存するため、最後に必ず『更新』ボタンを押してください');
|
||
|
||
} |