528 lines
21 KiB
JavaScript
528 lines
21 KiB
JavaScript
let pageLoading = 0;
|
|
let apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';
|
|
|
|
//----------------------------------------------------------------------
|
|
//初期処理
|
|
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 () {
|
|
//コメント削除ボタン非表示
|
|
$('p[data-action="DeleteComment"]').hide();
|
|
//自身のデータを取得
|
|
$p.ex.getMyData();
|
|
|
|
//日付の色分け
|
|
$p.ex.checkDate();
|
|
|
|
//MSSデータ取得ボタン生成
|
|
$p.getMSSdataButton();
|
|
|
|
//カレンダー生成
|
|
$p.ex.createCalendarTable();
|
|
}
|
|
|
|
$p.events.after_set = function (args) {
|
|
//初期処理
|
|
$p.ex.init();
|
|
}
|
|
|
|
let myData;
|
|
|
|
$p.ex.getMyData = function () {
|
|
let thisId = $p.id();
|
|
|
|
$p.apiGet({
|
|
'id': thisId,
|
|
'data': {
|
|
'ApiVersion': 1.1,
|
|
'ApiKey': apiKey,
|
|
},
|
|
'async': false,
|
|
'done': function (data) {
|
|
myData = data.Response.Data[0];
|
|
},
|
|
'fail': function (data) {
|
|
console.log(data);
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
//----------------------------------------------------------------------
|
|
//入力チェック前処理
|
|
$p.events.before_validate = function (args) {
|
|
let jizenList = getCheckedLabelsInSectionFields44();
|
|
if (jizenList.length > 0) {
|
|
let jizenText = jizenList.join(', ');
|
|
$p.set($('#Results_DescriptionD'), jizenText);
|
|
} else {
|
|
$p.set($('#Results_DescriptionD'), 'なし');
|
|
}
|
|
|
|
//着工可能日と着工枠チェック
|
|
/*
|
|
let dateZ = $('#Results_DateZ').val();
|
|
let classZ = $('#Results_ClassZ').val();
|
|
|
|
if (dateZ != '' && classZ == '') {
|
|
$p.ex.setMyMessage('status-red', '着工枠が登録されていません。着工枠テーブルでデータを追加してください。');
|
|
return false;
|
|
}
|
|
*/
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//入力チェック後処理
|
|
$p.events.after_validate = function (args) {
|
|
//変更履歴の保存
|
|
$p.ex.saveHistory();
|
|
}
|
|
|
|
$p.ex.checkDate = function () {
|
|
let dateItems = {
|
|
"敷地測量": { "予定": "Results_Date011", "実績": "Results_Date111" },
|
|
"SR案内": { "予定": "Results_Date012", "実績": "Results_Date112" },
|
|
"図確引継": { "予定": "Results_Date013", "実績": "Results_Date113" },
|
|
"省エネ説明": { "予定": "Results_Date014", "実績": "Results_Date114" },
|
|
"取出有無業者連絡": { "予定": "Results_Date015", "実績": "Results_Date115" },
|
|
"一次エネ設備決": { "予定": "Results_Date016", "実績": "Results_Date116" },
|
|
"仕様打完了": { "予定": "Results_Date017", "実績": "Results_Date117" },
|
|
"4者承認図前": { "予定": "Results_Date018", "実績": "Results_Date118" },
|
|
"承認図14日前": { "予定": "Results_Date019", "実績": "Results_Date119" },
|
|
"ゼロエミ承認": { "予定": "Results_Date020", "実績": "Results_Date120" },
|
|
"着工金入金": { "予定": "Results_Date021", "実績": "Results_Date121" },
|
|
"融資事前相談": { "予定": "Results_Date022", "実績": "Results_Date122" },
|
|
"融資申込": { "予定": "Results_Date023", "実績": "Results_Date123" },
|
|
"融資承認銀行": { "予定": "Results_Date024", "実績": "Results_Date124" },
|
|
"土地契約": { "予定": "Results_Date025", "実績": "Results_Date125" },
|
|
"土地残金": { "予定": "Results_Date026", "実績": "Results_Date126" },
|
|
"残金後謄本": { "予定": "Results_Date027", "実績": "Results_Date127" },
|
|
"引越し": { "予定": "Results_Date028", "実績": "Results_Date128" },
|
|
"解体工事着手": { "予定": "Results_Date029", "実績": "Results_Date129" },
|
|
"解体工事完了": { "予定": "Results_Date030", "実績": "Results_Date130" },
|
|
"造成": { "予定": "Results_Date031", "実績": "Results_Date131" },
|
|
"境界杭完了": { "予定": "Results_Date032", "実績": "Results_Date132" },
|
|
"地耐力調査": { "予定": "Results_Date033", "実績": "Results_Date133" },
|
|
"地祭": { "予定": "Results_Date034", "実績": "Results_Date134" },
|
|
"構造計算有無完了日": { "予定": "Results_Date035", "実績": "Results_Date135" },
|
|
"伏図チェック": { "予定": "Results_Date036", "実績": "Results_Date136" },
|
|
"プレカット確定": { "予定": "Results_Date037", "実績": "Results_Date137" },
|
|
"事前提出": { "予定": "Results_Date038", "実績": "Results_Date138" },
|
|
"事前決裁": { "予定": "Results_Date039", "実績": "Results_Date139" },
|
|
"確認提出": { "予定": "Results_Date040", "実績": "Results_Date140" },
|
|
"確認決裁": { "予定": "Results_Date041", "実績": "Results_Date141" },
|
|
"長期提出確認書": { "予定": "Results_Date042", "実績": "Results_Date142" },
|
|
"長期行政提出": { "予定": "Results_Date043", "実績": "Results_Date143" },
|
|
"保険登録": { "予定": "Results_Date044", "実績": "Results_Date144" },
|
|
"地盤改良着手": { "予定": "Results_Date045", "実績": "Results_Date145" },
|
|
"上棟金入金": { "予定": "Results_Date046", "実績": "Results_Date146" },
|
|
"本契覚書承認日": { "予定": "Results_Date047", "実績": "Results_Date147" },
|
|
"着工可能日": { "予定": "Results_Date048", "実績": "Results_Date148" }
|
|
}
|
|
|
|
$.each(dateItems, function (key, val) {
|
|
let plannedDate = $('#' + val['予定']).val();
|
|
let actualDate = $('#' + val['実績']).val();
|
|
|
|
if (plannedDate != '' && actualDate != '') {
|
|
$('#' + val['予定']).addClass('dateGrey');
|
|
$('#' + val['実績']).addClass('dateGrey');
|
|
|
|
} else {
|
|
if (plannedDate == '') {
|
|
$('#' + val['予定']).addClass('dateYellow');
|
|
} else {
|
|
$('#' + val['予定']).addClass('dateBlue');
|
|
}
|
|
|
|
if (actualDate == '') {
|
|
if (plannedDate != '') {
|
|
$('#' + val['実績']).addClass('dateRed');
|
|
} else {
|
|
$('#' + val['実績']).addClass('dateYellow');
|
|
}
|
|
} else {
|
|
$('#' + val['実績']).addClass('dateBlue');
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
|
|
//変更内容を保存
|
|
$p.ex.saveHistory = function () {
|
|
let history = '';
|
|
let count = 0;
|
|
|
|
//履歴に表示しない項目リスト
|
|
let excludeList = ['Results_Timestamp'];
|
|
|
|
let dateNameList = {
|
|
"Results_Date011": "敷地測量 予定",
|
|
"Results_Date012": "SR案内 予定",
|
|
"Results_Date013": "図確引継 予定",
|
|
"Results_Date014": "省エネ説明 予定",
|
|
"Results_Date015": "取出有無業者連絡 予定",
|
|
"Results_Date016": "一次エネ設備決 予定",
|
|
"Results_Date017": "仕様打完了 予定",
|
|
"Results_Date018": "4者承認図前 予定",
|
|
"Results_Date019": "承認図14日前 予定",
|
|
"Results_Date020": "ゼロエミ承認 予定",
|
|
"Results_Date021": "着工金入金 予定",
|
|
"Results_Date022": "融資事前相談 予定",
|
|
"Results_Date023": "融資申込 予定",
|
|
"Results_Date024": "融資承認銀行 予定",
|
|
"Results_Date025": "土地契約 予定",
|
|
"Results_Date026": "土地残金 予定",
|
|
"Results_Date027": "残金後謄本 予定",
|
|
"Results_Date028": "引越し 予定",
|
|
"Results_Date029": "解体工事着手 予定",
|
|
"Results_Date030": "解体工事完了 予定",
|
|
"Results_Date031": "造成 予定",
|
|
"Results_Date032": "境界杭完了 予定",
|
|
"Results_Date033": "地耐力調査 予定",
|
|
"Results_Date034": "地祭 予定",
|
|
"Results_Date035": "構造計算有無完了日 予定",
|
|
"Results_Date036": "伏図チェック 予定",
|
|
"Results_Date037": "プレカット確定 予定",
|
|
"Results_Date038": "事前提出 予定",
|
|
"Results_Date039": "事前決裁 予定",
|
|
"Results_Date040": "確認提出 予定",
|
|
"Results_Date041": "確認決裁 予定",
|
|
"Results_Date042": "長期提出確認書 予定",
|
|
"Results_Date043": "長期行政提出 予定",
|
|
"Results_Date044": "保険登録 予定",
|
|
"Results_Date045": "地盤改良着手 予定",
|
|
"Results_Date046": "上棟金入金 予定",
|
|
"Results_Date047": "本契覚書承認日 予定",
|
|
"Results_Date048": "着工可能日 契約時",
|
|
"Results_Date111": "敷地測量 実績",
|
|
"Results_Date112": "SR案内 実績",
|
|
"Results_Date113": "図確引継 実績",
|
|
"Results_Date114": "省エネ説明 実績",
|
|
"Results_Date115": "取出有無業者連絡 実績",
|
|
"Results_Date116": "一次エネ設備決 実績",
|
|
"Results_Date117": "仕様打完了 実績",
|
|
"Results_Date118": "4者承認図前 実績",
|
|
"Results_Date119": "承認図14日前 実績",
|
|
"Results_Date120": "ゼロエミ承認 実績",
|
|
"Results_Date121": "着工金入金 実績",
|
|
"Results_Date122": "融資事前相談 実績",
|
|
"Results_Date123": "融資申込 実績",
|
|
"Results_Date124": "融資承認銀行 実績",
|
|
"Results_Date125": "土地契約 実績",
|
|
"Results_Date126": "土地残金 実績",
|
|
"Results_Date127": "残金後謄本 実績",
|
|
"Results_Date128": "引越し 実績",
|
|
"Results_Date129": "解体工事着手 実績",
|
|
"Results_Date130": "解体工事完了 実績",
|
|
"Results_Date131": "造成 実績",
|
|
"Results_Date132": "境界杭完了 実績",
|
|
"Results_Date133": "地耐力調査 実績",
|
|
"Results_Date134": "地祭 実績",
|
|
"Results_Date135": "構造計算有無完了日 実績",
|
|
"Results_Date136": "伏図チェック 実績",
|
|
"Results_Date137": "プレカット確定 実績",
|
|
"Results_Date138": "事前提出 実績",
|
|
"Results_Date139": "事前決裁 実績",
|
|
"Results_Date140": "確認提出 実績",
|
|
"Results_Date141": "確認決裁 実績",
|
|
"Results_Date142": "長期提出確認書 実績",
|
|
"Results_Date143": "長期行政提出 実績",
|
|
"Results_Date144": "保険登録 実績",
|
|
"Results_Date145": "地盤改良着手 実績",
|
|
"Results_Date146": "上棟金入金 実績",
|
|
"Results_Date147": "本契覚書承認日 実績",
|
|
"Results_Date148": "着工可能日 可能日",
|
|
"Results_Class011": "敷地測量 備考",
|
|
"Results_Class012": "SR案内 備考",
|
|
"Results_Class013": "図確引継 備考",
|
|
"Results_Class014": "省エネ説明 備考",
|
|
"Results_Class015": "取出有無業者連絡 備考",
|
|
"Results_Class016": "一次エネ設備決 備考",
|
|
"Results_Class017": "仕様打完了 備考",
|
|
"Results_Class018": "4者承認図前 備考",
|
|
"Results_Class019": "承認図14日前 備考",
|
|
"Results_Class020": "ゼロエミ承認 備考",
|
|
"Results_Class021": "着工金入金 備考",
|
|
"Results_Class022": "融資事前相談 備考",
|
|
"Results_Class023": "融資申込 備考",
|
|
"Results_Class024": "融資承認銀行 備考",
|
|
"Results_Class025": "土地契約 備考",
|
|
"Results_Class026": "土地残金 備考",
|
|
"Results_Class027": "残金後謄本 備考",
|
|
"Results_Class028": "引越し 備考",
|
|
"Results_Class029": "解体工事着手 備考",
|
|
"Results_Class030": "解体工事完了 備考",
|
|
"Results_Class031": "造成 備考",
|
|
"Results_Class032": "境界杭完了 備考",
|
|
"Results_Class033": "地耐力調査 備考",
|
|
"Results_Class034": "地祭 備考",
|
|
"Results_Class035": "構造計算有無完了日 備考",
|
|
"Results_Class036": "伏図チェック 備考",
|
|
"Results_Class037": "プレカット確定 備考",
|
|
"Results_Class038": "事前提出 備考",
|
|
"Results_Class039": "事前決裁 備考",
|
|
"Results_Class040": "確認提出 備考",
|
|
"Results_Class041": "確認決裁 備考",
|
|
"Results_Class042": "長期提出確認書 備考",
|
|
"Results_Class043": "長期行政提出 備考",
|
|
"Results_Class044": "保険登録 備考",
|
|
"Results_Class045": "地盤改良着手 備考",
|
|
"Results_Class046": "上棟金入金 備考",
|
|
"Results_Class047": "本契覚書承認日 備考",
|
|
"Results_Class048": "着工可能日 備考",
|
|
}
|
|
|
|
// excludeListに含まれる項目名をclassに持つ要素を取得
|
|
$('.excludeList').each(function () {
|
|
console.log(this.id);
|
|
excludeList.push(this.id);
|
|
});
|
|
|
|
//更新された項目を抜き出し、履歴保存する
|
|
if ($p.data.MainForm) {
|
|
$p.set($('#Results_Description200'), '');
|
|
|
|
history = '◆ 変更内容 ◆\n';
|
|
$.each($p.data.MainForm, function (index, val) {
|
|
if (index.startsWith('Results')) {
|
|
//対象外項目は除外
|
|
if (!excludeList.includes(index)) {
|
|
//項目名の取得
|
|
let colName = $('label[for="' + index + '"]').text();
|
|
if (dateNameList.hasOwnProperty(index)) {
|
|
colName = dateNameList[index];
|
|
}
|
|
|
|
let newData;
|
|
let nowData;
|
|
let index2 = index.split('_')[1];
|
|
//現在値の取得
|
|
if (index.startsWith('Results_Class')) {
|
|
nowData = myData.ClassHash[index2];
|
|
} else if (index.startsWith('Results_Date')) {
|
|
if (myData.DateHash[index2] == '' || myData.DateHash[index2] == '1899-12-30T00:00:00') {
|
|
nowData = '';
|
|
} else {
|
|
nowData = $p.ex.dateToString(myData.DateHash[index2]);
|
|
}
|
|
|
|
} else if (index.startsWith('Results_Num')) {
|
|
nowData = myData.NumHash[index2];
|
|
} else if (index.startsWith('Results_Description')) {
|
|
nowData = myData.DescriptionHash[index2];
|
|
} else if (index.startsWith('Results_Check')) {
|
|
nowData = myData.CheckHash[index2];
|
|
}
|
|
|
|
//セレクトボックス判定
|
|
if ($('#' + index + '.control-dropdown').length) {
|
|
//セレクトボックス処理
|
|
if ($('#' + index).prop("multiple")) {
|
|
newData = $('#' + index + '_ms span').eq(-1).text();
|
|
} else {
|
|
newData = $('#' + index + ' option:selected').text();
|
|
}
|
|
} else if ($('#' + index + '.radio-value').length) {
|
|
//ラジオボタン処理
|
|
newData = val != '' ? $('label[for="' + index + val + '"').text() : '';
|
|
} else {
|
|
//その他
|
|
newData = val;
|
|
}
|
|
if (nowData != '') {
|
|
if (nowData != newData) {
|
|
history += '▷ ' + colName + ' : ' + nowData + ' -> ' + newData + '\n';
|
|
count++;
|
|
}
|
|
} else {
|
|
history += '▷ ' + colName + ' : ' + newData + '\n';
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
if (count) {
|
|
//console.log(history);
|
|
$p.set($('#Results_Description200'), history);
|
|
$p.set($('#Comments'), history);
|
|
}
|
|
}
|
|
}
|
|
|
|
$p.ex.dateToString = function (date) {
|
|
if (date == null || date == '' || date == '1899-12-30T00:00:00') {
|
|
return '';
|
|
}
|
|
let dateString = date.split('T')[0];
|
|
let dateVar = new Date(dateString);
|
|
let year = dateVar.getFullYear();
|
|
let month = (dateVar.getMonth() + 1);
|
|
let day = dateVar.getDate();
|
|
|
|
return year + '/' + month + '/' + day;
|
|
}
|
|
|
|
$p.ex.dateToString2 = function (date) {
|
|
if (date == null || date == '') {
|
|
return '';
|
|
}
|
|
let dateVar = new Date(date);
|
|
let year = dateVar.getFullYear();
|
|
let month = (dateVar.getMonth() + 1);
|
|
let day = dateVar.getDate();
|
|
|
|
return month + '/' + day;
|
|
}
|
|
|
|
|
|
$p.getMSSdataButton = function () {
|
|
if ($('#getMSSdataButton').length) {
|
|
return;
|
|
}
|
|
let button = document.createElement("button");
|
|
button.id = 'getMSSdataButton';
|
|
button.innerHTML = "MSSデータ取得";
|
|
button.setAttribute('onclick', '$p.ex.getMSSdata()');
|
|
button.style.margin = '3px';
|
|
button.style.float = 'left';
|
|
$('#Results_ClassAField').after(button);
|
|
$('#getMSSdataButton').button({
|
|
icon: 'ui-icon-document'
|
|
});
|
|
}
|
|
|
|
$p.ex.getMSSdata = async function () {
|
|
let keiyakuCode = $('#Results_ClassA').val();
|
|
if (keiyakuCode == '') {
|
|
return;
|
|
}
|
|
|
|
//MSSテーブルからレコードを取得
|
|
const getUrl = 'https://' + location.hostname + '/pleasanter/api/items/189112/get';
|
|
const getJson = {
|
|
'ApiVersion': 1.1,
|
|
'ApiKey': apiKey,
|
|
'View': {
|
|
'ColumnFilterHash': {
|
|
'ClassA': keiyakuCode
|
|
}
|
|
}
|
|
}
|
|
const getRes = await fetch(getUrl, {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(getJson)
|
|
});
|
|
const getResData = await getRes.json();
|
|
console.log(getResData);
|
|
|
|
if (getResData.StatusCode != 200) {
|
|
$p.ex.setMyMessage('status-red', 'MSSデータの取得に失敗しました。');
|
|
return;
|
|
}
|
|
|
|
if (getResData.Response.TotalCount != 1) {
|
|
$p.ex.setMyMessage('status-yellow', 'MSSデータが見つかりません。契約コードを確認してください。');
|
|
return;
|
|
}
|
|
|
|
let mssData = getResData.Response.Data[0];
|
|
|
|
// MSSデータを各項目にセット
|
|
$p.set($('#Results_ClassA'), mssData.ClassHash.ClassA);
|
|
$p.set($('#Results_ClassB'), mssData.ClassHash.ClassQ);
|
|
$p.set($('#Results_ClassC'), mssData.ClassHash.Class031);
|
|
$p.set($('#Results_ClassD'), mssData.ClassHash.ClassD);
|
|
$p.set($('#Results_ClassE'), mssData.ClassHash.ClassF);
|
|
$p.set($('#Results_ClassF'), mssData.ClassHash.ClassW);
|
|
$p.set($('#Results_ClassG'), mssData.ClassHash.ClassG);
|
|
$p.set($('#Results_ClassH'), mssData.ClassHash.ClassJ);
|
|
$p.set($('#Results_ClassI'), mssData.ClassHash.Class033);
|
|
$p.set($('#Results_ClassJ'), mssData.ClassHash.Class035);
|
|
$p.set($('#Results_ClassK'), mssData.ClassHash.Class042);
|
|
$p.set($('#Results_ClassL'), mssData.ClassHash.Class040);
|
|
$p.set($('#Results_ClassM'), mssData.ClassHash.Class043);
|
|
$p.set($('#Results_NumA'), mssData.NumHash.Num016);
|
|
$p.set($('#Results_DateA'), $p.ex.dateToString(mssData.DateHash.DateH));
|
|
$p.set($('#Results_DateB'), $p.ex.dateToString(mssData.DateHash.DateL));
|
|
$p.set($('#Results_NumB'), mssData.NumHash.Num050);
|
|
$p.set($('#Results_Class001'), mssData.ClassHash.ClassI);
|
|
$p.set($('#Results_Class004'), mssData.ClassHash.ClassK);
|
|
$p.set($('#Results_ClassR'), mssData.ClassHash.ClassY);
|
|
$p.set($('#Results_ClassS'), mssData.ClassHash.Class122);
|
|
$p.set($('#Results_Date048'), $p.ex.dateToString(mssData.DateHash.DateH));
|
|
|
|
$p.ex.setMyMessage('status-blue', 'MSSからデータを取得しました。');
|
|
}
|
|
|
|
//メッセージ追加表示
|
|
$p.ex.setMyMessage = function (cssColor = 'alert-success', message, clear = 1) {
|
|
//クリアが指定されていたら事前にメッセージ消去
|
|
clear && $p.clearMessage();
|
|
|
|
$p.setMessage('#Message', JSON.stringify({
|
|
Css: 'alert-success ' + cssColor,
|
|
Text: message
|
|
}));
|
|
|
|
}
|
|
|
|
|
|
//着工可能日 着工枠連動処理
|
|
$p.on('change', 'Date148', function () {
|
|
//着工可能日選択
|
|
let date148 = $('#Results_Date148').val();
|
|
if (date148 != '') {
|
|
let dateObj = new Date(date148);
|
|
let year = dateObj.getFullYear();
|
|
let month = dateObj.getMonth() + 1;
|
|
let newDate = year + '年' + month + '月';
|
|
|
|
//着工枠選択
|
|
let changeFlag = false;
|
|
$('#Results_ClassZ option').each(function () {
|
|
if ($(this).text() === newDate) {
|
|
$('#Results_ClassZ').val($(this).val()).trigger('change');
|
|
changeFlag = true;
|
|
return false; // break loop
|
|
}
|
|
});
|
|
if (!changeFlag) {
|
|
//該当月が無い場合、着工枠を未選択にする
|
|
$('#Results_ClassZ').val('').trigger('change');
|
|
}
|
|
} else {
|
|
//着工可能日が未選択の場合、着工枠も未選択にする
|
|
$('#Results_ClassZ').val('').trigger('change');
|
|
}
|
|
});
|