273 lines
9.4 KiB
JavaScript
273 lines
9.4 KiB
JavaScript
/*
|
||
@config : next999.json
|
||
@filename : ${psFileBasename}
|
||
@title : 01_メインスクリプト
|
||
@name :
|
||
@siteIds : 335011
|
||
@siteTitles : 実行予算WF申請
|
||
@disabled: false
|
||
*/
|
||
let pageLoading = 0;
|
||
let apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';
|
||
|
||
let areaNotificationList = JSON.parse($('#areaNotificationList').val() || '{}');
|
||
let classNotificationList = JSON.parse($('#classNotificationList').val() || '{}');
|
||
|
||
//----------------------------------------------------------------------
|
||
//初期処理
|
||
window.addEventListener('load', function () {
|
||
if (pageLoading == 0) {
|
||
console.log('Window load Event');
|
||
$p.ex.onLoad();
|
||
}
|
||
});
|
||
|
||
$p.events.on_editor_load = function () {
|
||
if (pageLoading == 0) {
|
||
console.log('on Editor Load');
|
||
$p.ex.onLoad();
|
||
}
|
||
}
|
||
|
||
$p.ex.onLoad = function () {
|
||
//ロード開始
|
||
pageLoading = 1;
|
||
|
||
//初期処理
|
||
$p.ex.init();
|
||
}
|
||
|
||
//----------------------------------------------------------------------
|
||
$p.ex.init = function () {
|
||
console.log('initialize...');
|
||
//初期化
|
||
|
||
//初期表示
|
||
const classX = $('input[name="Results_ClassX"]:checked').val();
|
||
$p.ex.changeMode(classX);
|
||
|
||
console.log('initialize...done');
|
||
|
||
}
|
||
|
||
//ClassXの選択値を取得
|
||
$('input[name="Results_ClassX"]:radio').change(function () {
|
||
const selectedValue = $(this).val();
|
||
console.log('Results_ClassX changed:', selectedValue);
|
||
// 必要な処理をここに追加
|
||
$p.ex.changeMode(selectedValue);
|
||
});
|
||
|
||
$p.events.before_validate_Create = function (args) {
|
||
//新規作成時の処理
|
||
console.log('New Create...');
|
||
$p.ex.setUsers();
|
||
}
|
||
|
||
//保存前処理
|
||
$p.events.before_validate = function (args) {
|
||
console.log('Before Validate...');
|
||
|
||
const classX = $('input[name="Results_ClassX"]:checked').val();
|
||
switch (classX) {
|
||
case '1':
|
||
$p.set($('#Results_ClassY'), $('#Results_Date001').val());
|
||
$p.set($('#Results_Date002'), '');
|
||
$p.set($('#Results_Date003'), '');
|
||
$p.set($('#Results_Date004'), '');
|
||
$p.set($('#Results_Date005'), '');
|
||
$p.set($('#Results_Num001'), '');
|
||
break;
|
||
case '2':
|
||
$p.set($('#Results_ClassY'), $('#Results_Date002').val());
|
||
$p.set($('#Results_Date001'), '');
|
||
$p.set($('#Results_Date003'), '');
|
||
$p.set($('#Results_Date004'), '');
|
||
$p.set($('#Results_Date005'), '');
|
||
$p.set($('#Results_Num001'), '');
|
||
break;
|
||
case '3':
|
||
$p.set($('#Results_ClassY'), $('#Results_Date003').val());
|
||
$p.set($('#Results_Date001'), '');
|
||
$p.set($('#Results_Date002'), '');
|
||
$p.set($('#Results_Date004'), '');
|
||
$p.set($('#Results_Date005'), '');
|
||
$p.set($('#Results_Num001'), '');
|
||
break;
|
||
case '4':
|
||
$p.set($('#Results_ClassY'), $('#Results_Date004').val());
|
||
$p.set($('#Results_Date001'), '');
|
||
$p.set($('#Results_Date002'), '');
|
||
$p.set($('#Results_Date003'), '');
|
||
$p.set($('#Results_Date005'), '');
|
||
$p.set($('#Results_Num001'), '');
|
||
break;
|
||
case '5':
|
||
$p.set($('#Results_ClassY'), $('#Results_Date005').val());
|
||
$p.set($('#Results_Date001'), '');
|
||
$p.set($('#Results_Date002'), '');
|
||
$p.set($('#Results_Date003'), '');
|
||
$p.set($('#Results_Date004'), '');
|
||
$p.set($('#Results_Num001'), '');
|
||
break;
|
||
case '6':
|
||
$p.set($('#Results_ClassY'), $('#Results_Num001').val() + ' 回');
|
||
$p.set($('#Results_Date001'), '');
|
||
$p.set($('#Results_Date002'), '');
|
||
$p.set($('#Results_Date003'), '');
|
||
$p.set($('#Results_Date004'), '');
|
||
$p.set($('#Results_Date005'), '');
|
||
break;
|
||
default:
|
||
}
|
||
|
||
|
||
}
|
||
|
||
//保存後処理
|
||
$p.events.after_set = function (args) {
|
||
//初期処理
|
||
$p.ex.init();
|
||
}
|
||
|
||
//マスターシートからデータを取得
|
||
$p.on('change', 'ClassA', function () {
|
||
$p.ex.getMSSData();
|
||
});
|
||
|
||
//マスターシートの情報取得
|
||
$p.ex.getMSSData = function () {
|
||
let resultId = $("#Results_ClassA").val();
|
||
|
||
$p.apiGet({
|
||
'id': resultId,
|
||
'done': function (data) {
|
||
console.log(data);
|
||
if (data.Response.TotalCount == '1') {
|
||
let mssData = data.Response.Data[0];
|
||
|
||
console.log('MSSデータをセット');
|
||
// 工事名の末尾に「様」または空白があれば削除
|
||
let classQ = mssData.ClassHash.ClassQ || '';
|
||
classQ = classQ.replace(/[\s様]+$/, '');
|
||
if (classQ !== '') {
|
||
classQ = classQ + ' 様邸';
|
||
}
|
||
$p.set($('#Results_ClassB'), classQ); //工事名
|
||
$p.set($('#Results_ClassC'), mssData.ClassHash.ClassA); //契約コード
|
||
|
||
$p.set($('#Results_ClassI'), mssData.ClassHash.Class033); //契約ブランド
|
||
$p.set($('#Results_ClassJ'), mssData.ClassHash.Class043); //建物種類
|
||
|
||
//延床面積選択
|
||
let num016 = parseFloat(mssData.NumHash.Num016 || '0');
|
||
if (num016 < 21) {
|
||
$p.set($('#Results_ClassK'), '~20坪'); //延床面積
|
||
} else if (num016 < 31) {
|
||
$p.set($('#Results_ClassK'), '21~30坪'); //延床面積
|
||
} else if (num016 < 41) {
|
||
$p.set($('#Results_ClassK'), '31~40坪'); //延床面積
|
||
} else if (num016 < 51) {
|
||
$p.set($('#Results_ClassK'), '41~50坪'); //延床面積
|
||
} else {
|
||
$p.set($('#Results_ClassK'), '51坪~'); //延床面積
|
||
}
|
||
|
||
$p.set($('#Results_ClassL'), mssData.ClassHash.Class036); //構造材
|
||
|
||
//承認図予定日
|
||
if (mssData.DateHash.DateH != '1899-12-30T00:00:00') {
|
||
let dateH = new Date(mssData.DateHash.DateH);
|
||
let dateHStr = dateH.getFullYear() + '/' + (dateH.getMonth() + 1).toString().padStart(2, '0') + '/' + dateH.getDate().toString().padStart(2, '0');
|
||
$p.set($('#Results_DateB'), dateHStr);
|
||
}
|
||
|
||
//着工予定日
|
||
if (mssData.DateHash.Date063 != '1899-12-30T00:00:00') {
|
||
let date063 = new Date(mssData.DateHash.Date063);
|
||
let date063Str = date063.getFullYear() + '/' + (date063.getMonth() + 1).toString().padStart(2, '0') + '/' + date063.getDate().toString().padStart(2, '0');
|
||
$p.set($('#Results_DateC'), date063Str);
|
||
}
|
||
|
||
$p.clearMessage();
|
||
$p.ex.setMyMessage('new-status-lime', 'マスターシートの情報を取得しました');
|
||
|
||
} else {
|
||
//既存データクリア
|
||
$p.clearMessage();
|
||
$p.ex.setMyMessage('new-status-red', 'マスターシートの情報を取得に失敗しました');
|
||
|
||
}
|
||
},
|
||
'fail': function (data) {
|
||
console.log(data);
|
||
//既存データクリア
|
||
$p.clearMessage();
|
||
$p.ex.setMyMessage('new-status-red', 'マスターシートの情報を取得に失敗しました');
|
||
|
||
}
|
||
});
|
||
}
|
||
|
||
$p.ex.setUsers = function () {
|
||
console.log(areaNotificationList);
|
||
console.log(classNotificationList);
|
||
//担当監督マスタ、通知先マスタの情報を元に、担当監督、通知先をセットする
|
||
let area = $('#Results_ClassD').val() || '';
|
||
let mode = $('#Results_ClassX').val() || '';
|
||
|
||
if (area != '' && mode != '') {
|
||
$p.set($('#Results_Class001'), areaNotificationList[area].list1);
|
||
$p.set($('#Results_Class002'), areaNotificationList[area].list2);
|
||
$p.set($('#Results_Class003'), areaNotificationList[area].list3);
|
||
$p.set($('#Results_Class004'), areaNotificationList[area].list4);
|
||
|
||
$p.set($('#Results_Class005'), classNotificationList[mode].list1);
|
||
$p.set($('#Results_Class006'), classNotificationList[mode].list2);
|
||
//最終承認者
|
||
$p.set($('#Results_Class010'), classNotificationList[mode].list3);
|
||
|
||
console.log('担当監督、通知先をセットしました');
|
||
} else {
|
||
console.log('担当監督、通知先のセットに失敗しました');
|
||
}
|
||
|
||
}
|
||
|
||
|
||
$p.ex.changeMode = function (mode) {
|
||
//
|
||
$('#Results_Date001Field').hide();
|
||
$('#Results_Date002Field').hide();
|
||
$('#Results_Date003Field').hide();
|
||
$('#Results_Date004Field').hide();
|
||
$('#Results_Date005Field').hide();
|
||
$('#Results_Num001Field').hide();
|
||
console.log('changeMode...');
|
||
|
||
// モード変更に伴う処理をここに追加
|
||
//const classX = $('#Results_ClassX').val();
|
||
switch (mode) {
|
||
case '1':
|
||
$('#Results_Date001Field').show();
|
||
break;
|
||
case '2':
|
||
$('#Results_Date002Field').show();
|
||
break;
|
||
case '3':
|
||
$('#Results_Date003Field').show();
|
||
break;
|
||
case '4':
|
||
$('#Results_Date004Field').show();
|
||
break;
|
||
case '5':
|
||
$('#Results_Date005Field').show();
|
||
break;
|
||
case '6':
|
||
$('#Results_Num001Field').show();
|
||
break;
|
||
default:
|
||
}
|
||
}
|
||
|