ken_nogi/pleasanter/develop/★MSS/★マスターシート/sites/scripts/1.マスターシートメインスクリプト.js
Kenichiro NOGI 5ecf58a26e 20250718
2025-07-18 17:20:15 +09:00

1684 lines
51 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
@config : next999.json
@filename : ${psFileBasename}
@title : 1.マスターシートメインスクリプト
@name :
@siteIds : 189112
@siteTitles : ★マスターシート
@disabled: false
*/
//jexcel next-hd.netサーバ配置
/*
loadcdn('script', 'https://cdnjs.cloudflare.com/ajax/libs/xlsx-populate/1.21.0/xlsx-populate.min.js');
loadcdn('script', 'https://next-hd.net/jexcel/jexcel.min.js');
loadcdn('css', 'https://next-hd.net/jexcel/jexcel.min.css');
loadcdn('script', 'https://next-hd.net/jexcel/jsuites.min.js');
loadcdn('css', 'https://next-hd.net/jexcel/jsuites.min.css');
loadcdn('script', 'https://jpostal-1006.appspot.com/jquery.jpostal.js');
loadcdn('script', 'https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js');
loadcdn('script', 'https://cdnjs.cloudflare.com/ajax/libs/axios/1.3.4/axios.min.js');
loadcdn('script', 'https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js');
loadcdn('script', 'https://cdn.geolonia.com/community-geocoder.js');
loadcdn('script', 'https://html2canvas.hertzen.com/dist/html2canvas.min.js');
loadcdn('script', 'https://cdnjs.cloudflare.com/ajax/libs/jquery.qrcode/1.0/jquery.qrcode.min.js');
*/
let apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';
let pageLoading = 0;
let myTable1a; //支払情報
let myTable2a; //A.建物工事見積書
let myTable3a; //B.追加変更工事見積書
let myTable4a; //C.付帯工事見積書
let myTable5a; //D.値引きなど
let myTable6a; //■総計
let myTable7a; //■太陽光システム 瑕疵担保計算
let editableFlag = 1;
//$('#LockedRecord').val();
let onchangeFlag = 0;
let tableLoad = 0;
let templateFiles = {
};
let userList = {};
//let userList = $('#userList').length > 0 ? JSON.parse($('#userList').val()) : {};
let syukyaku = {};
let tenpoList = {};
let readtime_date = {
keiyaku_date: '', //契約日 Date001
zukaku_date0: '', //図確日 Date002
zukaku_date1: '', //実図確日 Date003
hikitsugi_date1: '', //図確引継日1 Date004
hikitsugi_date2: '', //図確引継日2 Date005
jizen_date1: '', //事前提出日 Date006
jizen_date2: '', //事前決済日 Date007
kakunin_date1: '', //確認提出日 Date008
kakunin_date2: '', //確認決裁日 Date009
fusezu_date: '', //伏せ図チェック日 Date010
shiyo_kanryo_date: '', //仕様打ち完了日 Date011
yonsya_date: '', //四者承認図前 Date012
shonin14_date: '', //承認図14日前 Date013
kaitai_date1: '', //解体工事着手日 Date014
kaitai_date2: '', //解体工事完了日 Date015
chitai_chousa_date: '', //地耐力調査 Date016
choki_tanso_date1: '', //長期・低炭素申込日 Date017
seinohyouka_date: '', //性能評価発行日 Date018
choki_tanso_date2: '', //長期・低炭素決済日 Date019
hoken_date: '', //保険登録 Date020
jiban_date: '', //地盤改良着手日 Date021
chakko_yotei_date: '', //着工予定日 Date022
maizo_chakko_date: '', //埋蔵有着工日 Date023
shiyo_kanryo_date2: '' //仕様打ち完了日
};
window.addEventListener('load', function () {
tableLoad = 0;
if (pageLoading == 0) {
console.log('load Event');
onLoad();
}
//郵便番号から住所
jpostalSetting();
});
$p.events.on_editor_load = function () {
tableLoad = 0;
if (pageLoading == 1) {
console.log('on Editor Load');
onLoad();
}
};
function onLoad() {
pageLoading = 1;
if ($p.action() != 'new') {
getMyData();
getKeiyakuCodeData();
getNo9_Files();
}
//コメント欄の上にメッセージ表示
//addCommentsBeforeCommentField();
//ステータス項目を操作不能に
//InputReadOnly('Status');
//InputReadOnly('ClassB');
//WF申請関連項目の調整
InputWfColumn();
InputReadOnly();
//色付
$('#Results_Num040Field').css('background-color', 'yellow');
//タブの色の設定
setTabColorClass(0);
if ($('#Results_Status').attr('data-value')) {
console.log(parseFloat($('#Results_Status').attr('data-value')));
if (parseFloat($('#Results_Status').attr('data-value')) > 200) {
editableFlag = 0;
}
} else {
console.log(parseFloat($('#Results_Status').val()));
if (parseFloat($('#Results_Status').val()) > 200) {
editableFlag = 0;
}
}
console.log(editableFlag);
houjinCheck2();
getUserList(0);
flag = 0;
createShiharaiGrid();
createMitsumoriGrid();
table2Calc();
table3Calc();
table4Calc();
table5Calc();
createReadTimeTable();
//添付ファイル一括DLボタン追加 コメント追加
let attachColumns = $('.control-attachments');
$.each(attachColumns, function (index, value) {
let attach = value.dataset.name;
attachmentComments(attach);
attachFileCheckbox(attach);
});
//
columnsComments('Class007', 'red');
if ($p.action() != 'new') {
getTemplateFiles();
createMapButton();
jizenKakunin();
//お客様データファイルを開くボタン
createOkyakusamFilesButton();
//ワークフロー状況ウインドウを開くボタン
createWorkFlowViewButton();
createWorkFlowViewButton2();
}
$p.ex.readonlyColumn();
haseiCodeCheck();
getSyukyakuTable();
getTenpoTable();
//太陽光計算シート非表示
$('#myTable7').hide();
}
function getSyukyakuTable() {
$p.apiGet({
'id': '211715',
'data': {
'ApiVersion': 1.1,
'ApiKey': apiKey,
},
'done': function (data) {
$.each(data.Response.Data, function (index, value) {
syukyaku[value.ResultId] = {
'ResultId': value.ResultId,
'Group': value.ClassHash.ClassA,
}
})
//console.log(syukyaku);
},
});
}
//顧客コードが抜けている場合、契約コードテーブルからデータを引っ張ってきて顧客コードを更新する
function getKeiyakuCodeData() {
let keiyakuCodeTable = myData.ClassHash.ClassC;
if (keiyakuCodeTable) {
$p.apiGet({
'id': keiyakuCodeTable,
'data': {
'ApiVersion': 1.1,
'ApiKey': apiKey,
},
'done': function (data) {
//console.log(data);
if (myData.ClassHash.ClassB == "") {
$p.apiUpdate({
'id': $p.id(),
'data': {
'ApiVersion': 1.1,
'ApiKey': apiKey,
'ClassHash': {
'ClassB': data.Response.Data[0].ClassHash.ClassT,
}
},
done: function (data) {
console.log(data);
},
fail: function (data) {
console.log(data);
}
});
}
},
});
}
}
function getTenpoTable() {
/*
$p.apiGet({
'id': '96243',
'data': {
'ApiVersion': 1.1,
'ApiKey': apiKey,
},
'done': function (data) {
$.each(data.Response.Data, function (index, value) {
tenpoList[value.ResultId] = {
'ResultId': value.ResultId,
'ShopName': value.ClassHash.ClassT,
}
})
//console.log(tenpoList);
},
});
*/
let tenpoListStr = $('#tenpoList').length > 0 ? JSON.parse($('#tenpoList').val()) : [];
for (tenpo of tenpoListStr) {
tenpoList[tenpo.ResultId] = {
'ResultId': tenpo.ResultId,
'ShopName': tenpo.ShopName,
'ShopName0': tenpo.ShopName0,
'QRFile': tenpo.QRFile,
'QRGuid': tenpo.QRGuid,
}
}
if ($('#Results_ClassF').val()) {
let tenpoId = $('#Results_ClassF').val();
if (tenpoList[tenpoId]) {
console.log(tenpoList[tenpoId]);
let guid = tenpoList[tenpoId].QRGuid;
if (guid) {
let downloadUrl = '/pleasanter/binaries/' + guid + '/download';
let button = document.createElement('button');
button.type = 'button';
button.id = 'openQRCodeFile';
button.innerHTML = 'Google口コミQRコードDL';
button.setAttribute('onclick', 'window.open("' + downloadUrl + '", "_blank")');
button.style.margin = '5px';
$('#reportButtons').append(button);
$('#openQRCodeFile').button({
icon: 'ui-icon-image'
});
} else {
console.log('QRコードファイルがありません。');
}
} else {
console.log('該当する店舗IDがありません。');
}
} else {
console.log('店舗IDが設定されていません。');
}
//console.log(tenpoList);
}
//添付ファイル入力欄にコメントを追加する汎用関数
function attachmentComments(attach) {
let comments = '';
//説明欄にコメントがある場合、追加
if ($('#Results_' + attach + 'Field>div.field-control').attr('title')) {
comments = $('#Results_' + attach + 'Field>div.field-control').attr('title');
}
if (comments) {
let div1 = document.createElement('div');
div1.innerHTML = comments;
div1.style.marginLeft = '121px';
div1.style.fontWeight = 'bold';
div1.style.color = '#00F';
//位置調整とコメント追加
$('#Results_' + attach + 'Field').append(div1);
$('#Results_' + attach + 'Field').css('margin-bottom', '10px');
}
}
function columnsComments(column, color) {
let comments = '';
//説明欄にコメントがある場合、追加
if ($('#Results_' + column + 'Field>div.field-control').attr('title')) {
comments = $('#Results_' + column + 'Field>div.field-control').attr('title');
}
let div1 = document.createElement('div');
div1.innerHTML = comments;
div1.style.marginLeft = '121px';
div1.style.fontWeight = 'bold';
div1.style.color = color;
//位置調整とコメント追加
$('#Results_' + column + 'Field').append(div1);
if ($('#Results_' + column + 'Field').hasClass('field-normal')) {
$('#Results_' + column + 'Field').css('margin-bottom', '15px');
}
if ($('#Results_' + column + 'Field').hasClass('field-wide')) {
$('#Results_' + column + 'Field').css('margin-bottom', '0px');
}
}
function addCommentsBeforeCommentField() {
let comDiv = document.createElement('div');
comDiv.innerHTML = '【承認】【差戻】処理時のコメントはボタンを押す前に下記へ記入すること。';
comDiv.style.margin = '5px';
comDiv.style.fontSize = '1.2em';
comDiv.style.fontWeight = 'bold';
comDiv.style.color = '#00F';
$('#CommentField').before(comDiv);
}
//タブクリック時に色を変更するスクリプト
$(document).on('click', '.ui-tabs-anchor', function (e) {
let hash = e.currentTarget.hash.split('#')[1];
setTabColorClass(hash);
});
function setTabColorClass(hash) {
//タブ色 赤
let list1 = ['FieldSetTab11', 'FieldSetTab12', 'FieldSetTab14'];
let color1 = 'tabColor1';
let color2 = 'tabColor2';
$.each(list1, function (index, tabName) {
removeTabColorClass(tabName, color2);
addTabColorClass(tabName, color1);
})
if (list1.includes(hash)) {
removeTabColorClass(hash, color1);
addTabColorClass(hash, color2);
}
//タブ色 青
let list2 = ['FieldSetTab16', 'FieldSetTab17'];
color1 = 'tabColor3';
color2 = 'tabColor4';
$.each(list2, function (index, tabName) {
removeTabColorClass(tabName, color2);
addTabColorClass(tabName, color1);
})
if (list2.includes(hash)) {
removeTabColorClass(hash, color1);
addTabColorClass(hash, color2);
}
//タブ色 赤2
let list3 = ['FieldSetTab18'];
color1 = 'tabColor5';
color2 = 'tabColor6';
$.each(list3, function (index, tabName) {
removeTabColorClass(tabName, color2);
addTabColorClass(tabName, color1);
})
if (list3.includes(hash)) {
removeTabColorClass(hash, color1);
addTabColorClass(hash, color2);
}
}
//タブの色を初期化
function removeTabColorClass(tabName, colorNum) {
$('li[aria-controls="' + tabName + '"]').removeClass(colorNum);
}
function addTabColorClass(tabName, colorNum) {
$('li[aria-controls="' + tabName + '"]').addClass(colorNum);
}
function createMapButton() {
let div = document.createElement('div');
let button = document.createElement('button');
button.type = 'button';
button.id = 'openMapWindow';
button.innerHTML = '現場案内図';
button.setAttribute('onclick', 'createMapReport()');
button.style.margin = '5px';
div.append(button);
$('#Results_Description050Field').after(div);
$('#openMapWindow').button({
icon: 'ui-icon-document'
});
}
function getUserList(offset) {
let json = {
'ApiVersion': 1.1,
'ApiKey': apiKey,
'Offset': offset,
'View': {
'ApiGetMailAddresses': true,
},
};
let url = 'https://' + location.hostname + '/pleasanter/api/users/get';
$.ajax({
type: 'post',
url: url,
contentType: 'application/json',
data: JSON.stringify(json),
success: function (data) {
//console.log(data);
$.each(data.Response.Data, function (index, value) {
let name = value.Name;
let deptId = value.DeptId;
let userId = value.UserId;
let mailAddress = value.MailAddresses[0];
userList[userId] = {
name: name,
userId: userId,
deptId: deptId,
mailAddress: mailAddress,
};
});
//console.log(data.Response.Data.length);
if ((offset + data.Response.Data.length) < data.Response.TotalCount) {
let offset2 = offset + 200;
getUserList(offset2);
}
},
error: function (data) {
console.log(data);
},
});
}
function getTemplateFiles() {
//添付ファイルのGuid取得
$p.apiGet({
'id': '189122',
'data': {
'ApiVersion': 1.1,
'ApiKey': apiKey,
'View': {
'ColumnFilterHash': {
'Status': 100,
},
'ColumnSorterHash': {
'NumA': 'asc',
},
},
},
done: function (data) {
//console.log(data);
let div = document.createElement('div');
div.id = 'reportButtons';
$('#Guide').after(div);
let button = document.createElement('button');
button.type = 'button';
button.id = 'oboegakiReport';
button.innerHTML = '覚書閲覧(仮)';
button.setAttribute('onclick', 'oboegaki()');
button.style.margin = '5px';
div.append(button);
$('#oboegakiReport').button({
icon: 'ui-icon-star'
});
$.each(data.Response.Data, function (index, data) {
let fileName = data.Title;
let guid = data.AttachmentsHash.AttachmentsA[0].Guid;
templateFiles[fileName] = guid;
let button = document.createElement('button');
button.type = 'button';
button.id = guid;
button.innerHTML = fileName;
button.setAttribute('onclick', 'getTemplateRecord("' + fileName + '")');
button.style.margin = '5px';
div.append(button);
$('#' + guid).button({
icon: 'ui-icon-document'
});
});
},
});
}
function createWorkFlowViewButton() {
let div = document.createElement('div');
div.id = 'wfView';
div.style.float = "left";
$('#Guide').after(div);
let button = document.createElement('button');
button.type = 'button';
button.id = 'wfViewButton';
button.innerHTML = '契約WFステータス';
button.setAttribute('onclick', '$p.ex.createArrayData()');
button.style.margin = '5px';
div.append(button);
$('#wfViewButton').button({
icon: 'ui-icon-star'
});
}
function createWorkFlowViewButton2() {
let div = document.createElement('div');
div.id = 'wfView2';
$('#SectionFields40Container').before(div);
let button = document.createElement('button');
button.type = 'button';
button.id = 'wfViewButton2';
button.innerHTML = '契約WFステータス';
button.setAttribute('onclick', '$p.ex.createArrayData()');
button.style.margin = '5px';
div.append(button);
$('#wfViewButton2').button({
icon: 'ui-icon-star'
});
}
function createShiharaiGrid() {
let shiharai_ary = new Array();
shiharai_ary.push('設計契約時');
shiharai_ary.push('契約時');
shiharai_ary.push('着工時');
shiharai_ary.push('上棟時');
shiharai_ary.push('引き渡し時');
//契約日
let keiyaku_date_Str = '';
if ($p.getControl('DateD').val() != '') {
let keiyaku_date = new Date($p.getControl('DateD').val());
keiyaku_date_Str = dateToStr(keiyaku_date);
//keiyaku_date.getFullYear() + '/' + ('0' + (keiyaku_date.getMonth() + 1)).slice(-2) + '/' + ('0' + keiyaku_date.getDate()).slice(-2) + '';
shiharai_ary.push(keiyaku_date_Str);
}
//設計契約日
let s_keiyaku_date_Str = '';
if ($p.getControl('DateE').val() != '') {
let s_keiyaku_date = new Date($p.getControl('DateE').val());
s_keiyaku_date_Str = dateToStr(s_keiyaku_date);
//s_keiyaku_date.getFullYear() + '/' + ('0' + (s_keiyaku_date.getMonth() + 1)).slice(-2) + '/' + ('0' + s_keiyaku_date.getDate()).slice(-2) + '';
shiharai_ary.push(s_keiyaku_date_Str);
}
//着工予定日
let chakkou_date_Str = '';
if ($p.getControl('DateH').val() != '') {
let chakkou_date = new Date($p.getControl('DateH').val());
chakkou_date_Str = dateToStr(chakkou_date);
//chakkou_date.getFullYear() + '/' + ('0' + (chakkou_date.getMonth() + 1)).slice(-2) + '/' + ('0' + chakkou_date.getDate()).slice(-2) + '';
shiharai_ary.push(chakkou_date_Str);
}
//上棟日
let joutou_date_Str = '';
if ($p.getControl('DateK').val() != '') {
let joutou_date = new Date($p.getControl('DateK').val());
joutou_date_Str = dateToStr(joutou_date);
//joutou_date.getFullYear() + '年' + ('0' + (joutou_date.getMonth() + 1)).slice(-2) + '月' + ('0' + joutou_date.getDate()).slice(-2) + '日';
shiharai_ary.push(joutou_date_Str);
}
//引渡日
let hikiwatashi_date_Str = '';
if ($p.getControl('DateI').val() != '') {
let hikiwatashi_date = new Date($p.getControl('DateI').val());
hikiwatashi_date_Str = dateToStr(hikiwatashi_date);
//hikiwatashi_date.getFullYear() + '年' + ('0' + (hikiwatashi_date.getMonth() + 1)).slice(-2) + '月' + ('0' + hikiwatashi_date.getDate()).slice(-2) + '日';
shiharai_ary.push(hikiwatashi_date_Str);
}
//console.log(shiharai_ary);
let myTable1 = document.createElement('div');
let myTable1Data = JSON.parse($('#Results_DescriptionA').val());
myTable1.id = 'myTable1';
myTable1.style.cssText = 'float: left; clear: both;';
$('#Results_DescriptionAField').after(myTable1);
myTable1a = jspreadsheet(document.getElementById('myTable1'), {
data: myTable1Data,
columns: [{
type: 'text',
title: '項目',
width: 120,
align: 'left',
readOnly: true,
},
{
type: 'dropdown',
title: '支払方法',
width: 120,
align: 'left',
source: ['自己資金', 'フラット35S', '銀行ローン', '住宅ローン', '財形', 'その他'],
},
{
type: 'number',
title: '金額(税込)',
width: 120,
mask: '#,##0;[Red](#,##0)',
align: 'right',
},
{
type: 'dropdown',
title: '支払予定日',
width: 120,
align: 'left',
source: shiharai_ary,
},
{
type: 'calendar',
title: '支払予定日(任意)',
width: 120,
align: 'left',
options: {
format: 'YYYY/MM/DD',
months: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
weekdays: ['日曜日', '月曜日', '木曜日', '水曜日', '木曜日', '金曜日', '土曜日'],
weekdays_short: ['日', '月', '火', '水', '木', '金', '土']
},
},
{
type: 'dropdown',
title: '支払状況',
width: 120,
align: 'left',
source: ['支払済', '支払予定'],
},
{
type: 'number',
title: '合計',
width: 150,
mask: '#,##0;[Red](#,##0)',
align: 'right',
readOnly: true,
},
],
allowInsertColumn: false,
allowInsertRow: false,
allowManualInsertRow: false,
allowDeleteColumn: false,
allowDeletingAllRows: false,
columnSorting: false,
columnResize: false,
minSpareRows: 0,
editable: editableFlag,
contextMenu: false,
onbeforepaste: function (el, cell, x, y, value, oldValue) {
if (x == 1 || x == 3 || x == 5) return false;
//return false;
},
onbeforechange: function (el, cell, x, y, value, oldValue) {
if (x == 2 && value == "") return 0;
//return true;
},
onchange: function (el, cell, x, y, value, oldValue) {
if (tableLoad) {
if (x == 2) {
//console.log('onchange0');
table1CalcA();
}
if (x == 3) {
if (onchangeFlag == 0) {
//console.log('onchange1');
onchangeFlag = 1;
table1CalcB();
onchangeFlag = 0;
}
}
if (x == 4) {
if (onchangeFlag == 0) {
//console.log('onchange2');
onchangeFlag = 1;
table1CalcC();
onchangeFlag = 0;
}
}
$p.set($('#Results_DescriptionA'), JSON.stringify(myTable1a.getJson()));
console.log('Set Results_DescriptionA');
}
},
});
myTable1a.setMerge('A1', 1, 2);
myTable1a.setMerge('A3', 1, 2);
myTable1a.setMerge('A5', 1, 2);
myTable1a.setMerge('A7', 1, 2);
myTable1a.setMerge('G1', 1, 2);
myTable1a.setMerge('G3', 1, 2);
myTable1a.setMerge('G5', 1, 2);
myTable1a.setMerge('G7', 1, 2);
myTable1a.hideIndex();
}
function createMitsumoriGrid() {
//A.建物工事見積書
let myTable2 = document.createElement('div');
let myTable2Data = JSON.parse($('#Results_DescriptionB').val());
myTable2.id = 'myTable2';
myTable2.style.cssText = 'float: left; clear: both;';
$('#Results_DescriptionBField').after(myTable2);
myTable2a = jspreadsheet(document.getElementById('myTable2'), {
data: myTable2Data,
columns: [{
type: 'text',
title: '名称',
width: 120,
align: 'left',
},
{
type: 'text',
title: '仕様',
width: 600,
align: 'left',
},
{
type: 'number',
title: '工事見積金額',
width: 120,
mask: '#,##0;[Red](#,##0)',
align: 'right',
},
{
type: 'dropdown',
title: '正式/概算',
width: 120,
align: 'center',
source: ['正式', '概算'],
},
],
allowInsertColumn: false,
allowInsertRow: true,
allowManualInsertRow: false,
allowDeleteColumn: false,
allowDeletingAllRows: false,
columnSorting: false,
columnResize: false,
minSpareRows: 1,
editable: editableFlag,
contextMenu: false,
onbeforechange: function (el, cell, x, y, value, oldValue) {
if (x == 2 && value == "") return 0;
//return true;
},
onchange: function (el, cell, x, y, value, oldValue) {
if (tableLoad) {
//console.log('onChange Table2')
table2Calc();
}
},
onblur: function (el, cell, x, y, value, oldValue) {
//console.log(el);
deleteBlankRow();
},
});
myTable2a.hideIndex();
//B.追加変更工事見積書
let myTable3 = document.createElement('div');
let myTable3Data = JSON.parse($('#Results_DescriptionC').val());
myTable3.id = 'myTable3';
myTable3.style.cssText = 'float: left; clear: both;';
$('#Results_DescriptionCField').after(myTable3);
myTable3a = jspreadsheet(document.getElementById('myTable3'), {
data: myTable3Data,
columns: [{
type: 'text',
title: '項目名',
width: 120,
align: 'left',
},
{
type: 'dropdown',
title: '区分',
width: 60,
align: 'center',
source: ['追加', '不行'],
},
{
type: 'text',
title: '仕様',
width: 360,
align: 'left',
},
{
type: 'number',
title: '数量',
width: 120,
mask: '#,##0;[Red](#,##0)',
align: 'right',
},
{
type: 'dropdown',
title: '単位',
width: 60,
align: 'center',
source: ['セット', '式', 'kw', '個'],
},
{
type: 'number',
title: '単価',
width: 120,
mask: '#,##0;[Red](#,##0)',
align: 'right',
},
{
type: 'number',
title: '合計金額',
width: 120,
mask: '#,##0;[Red](#,##0)',
align: 'right',
},
],
allowInsertColumn: false,
allowInsertRow: true,
allowManualInsertRow: false,
allowDeleteColumn: false,
allowDeletingAllRows: false,
columnSorting: false,
columnResize: false,
minSpareRows: 1,
editable: editableFlag,
contextMenu: false,
onbeforechange: function (el, cell, x, y, value, oldValue) {
if ((x == 3 || x == 5) && value == "") return 0;
//return true;
},
onchange: function (el, cell, x, y, value, oldValue) {
if (tableLoad) {
//console.log('onChange Table3')
if (x <= 5) {
table3Calc();
}
}
},
onblur: function (el, cell, x, y, value, oldValue) {
//console.log(el);
deleteBlankRow();
},
});
myTable3a.hideIndex();
//C.付帯工事見積書
let myTable4 = document.createElement('div');
let myTable4Data = JSON.parse($('#Results_DescriptionD').val());
myTable4.id = 'myTable4';
myTable4.style.cssText = 'float: left; clear: both;';
$('#Results_DescriptionDField').after(myTable4);
//console.log(myTable4Data.length);
for (i = myTable4Data.length; i < 33; i++) {
let data = {
"0": "",
"1": "",
"2": 0,
"3": ""
};
myTable4Data.push(data);
}
myTable4a = jspreadsheet(document.getElementById('myTable4'), {
data: myTable4Data,
columns: [{
type: 'text',
title: '分類',
width: 60,
align: 'left',
readOnly: true,
},
{
type: 'text',
title: '項目名',
width: 240,
align: 'left',
},
{
type: 'number',
title: '確定額',
width: 120,
mask: '#,##0;[Red](#,##0)',
align: 'right',
},
{
type: 'text',
title: '備考',
width: 360,
align: 'left',
},
],
allowInsertColumn: false,
allowInsertRow: false,
allowManualInsertRow: false,
allowDeleteColumn: false,
allowDeletingAllRows: false,
columnSorting: false,
columnResize: false,
editable: editableFlag,
contextMenu: false,
onbeforechange: function (el, cell, x, y, value, oldValue) {
if (x == 2 && value == "") return 0;
//return true;
},
onchange: function (el, cell, x, y, value, oldValue) {
if (tableLoad) {
//console.log('onChange Table4')
table4Calc();
}
},
});
myTable4a.hideIndex();
myTable4a.setMerge('A1', 1, 6);
myTable4a.setMerge('A7', 1, 2);
myTable4a.setMerge('A9', 1, 2);
myTable4a.setMerge('A11', 1, 2);
myTable4a.setMerge('A13', 1, 3);
myTable4a.setMerge('A19', 1, 5);
myTable4a.setMerge('A24', 1, myTable4Data.length - 23);
//D.値引きなど
let myTable5 = document.createElement('div');
let myTable5Data = JSON.parse($('#Results_DescriptionE').val());
myTable5.id = 'myTable5';
myTable5.style.cssText = 'float: left; clear: both;';
$('#Results_DescriptionEField').after(myTable5);
myTable5a = jspreadsheet(document.getElementById('myTable5'), {
data: myTable5Data,
columns: [{
type: 'text',
title: '項目',
width: 180,
align: 'left',
readOnly: true,
},
{
type: 'number',
title: '金額',
width: 180,
mask: '#,##0;[Red](#,##0)',
align: 'right',
},
],
allowInsertColumn: false,
allowInsertRow: false,
allowManualInsertRow: false,
allowDeleteColumn: false,
allowDeletingAllRows: false,
columnSorting: false,
columnResize: false,
minSpareRows: 0,
editable: editableFlag,
contextMenu: false,
onbeforechange: function (el, cell, x, y, value, oldValue) {
if (x == 1 && value == "") return 0;
//return true;
},
onchange: function (el, cell, x, y, value, oldValue) {
if (tableLoad) {
//console.log('onChange Table5')
table5Calc();
}
},
});
myTable5a.hideIndex();
//総計
let myTable6 = document.createElement('div');
let myTable6Data = JSON.parse($('#Results_DescriptionF').val());
myTable6.id = 'myTable6';
myTable6.style.cssText = 'float: left; clear: both;';
$('#Results_DescriptionFField').after(myTable6);
myTable6a = jspreadsheet(document.getElementById('myTable6'), {
data: myTable6Data,
columns: [{
type: 'text',
title: '項目',
width: 180,
align: 'left',
readOnly: true,
},
{
type: 'number',
title: '金額',
width: 180,
mask: '#,##0;[Red](#,##0)',
align: 'right',
readOnly: true,
},
],
allowInsertColumn: false,
allowInsertRow: false,
allowManualInsertRow: false,
allowDeleteColumn: false,
allowDeletingAllRows: false,
columnSorting: false,
columnResize: false,
minSpareRows: 0,
editable: editableFlag,
contextMenu: false,
});
myTable6a.hideIndex();
//太陽光計算
let myTable7 = document.createElement('div');
let myTable7Data = JSON.parse($('#Results_DescriptionG').val());
myTable7.id = 'myTable7';
myTable7.style.cssText = 'float: left; clear: both;';
$('#Results_DescriptionGField').after(myTable7);
myTable7a = jspreadsheet(document.getElementById('myTable7'), {
data: myTable7Data,
columns: [{
type: 'text',
title: '項目',
width: 180,
align: 'left',
readOnly: true,
},
{
type: 'number',
title: '金額',
width: 180,
mask: '#,##0;[Red](#,##0)',
align: 'right',
readOnly: true,
},
{
type: 'text',
title: '備考',
width: 360,
align: 'left',
readOnly: true,
},
],
allowInsertColumn: false,
allowInsertRow: false,
allowManualInsertRow: false,
allowDeleteColumn: false,
allowDeletingAllRows: false,
columnSorting: false,
columnResize: false,
minSpareRows: 0,
editable: editableFlag,
contextMenu: false,
});
myTable7a.hideIndex();
tableLoad = 1;
}
function table2Calc() {
let myData2 = myTable2a.getData();
let sumValue = 0;
$.each(myData2, function (index, value) {
if (value[2].toString() != '') {
let val0 = parseFloat(value[2].toString().replaceAll(/[¥,]/g, ''));
sumValue = sumValue + val0;
} else {
let val0 = 0;
sumValue = sumValue + val0;
}
});
if ($('#Results_Num045').val().toString().replaceAll(/[¥,]/g, '') != sumValue) {
$p.set($('#Results_Num045'), sumValue.toLocaleString());
console.log('Set Results_Num045');
}
if ($('#Results_DescriptionB').val() != JSON.stringify(myTable2a.getJson())) {
$p.set($('#Results_DescriptionB'), JSON.stringify(myTable2a.getJson()));
console.log('Set Results_DescriptionB');
}
table6Calc();
}
function table3Calc() {
let myData3 = myTable3a.getData();
let sumValue = 0;
$.each(myData3, function (index, value) {
let i = index + 1;
if (value[3].toString() != '' && value[5].toString() != '') {
let val3 = parseFloat(value[3].toString().replaceAll(/[¥,]/g, ''));
let val5 = parseFloat(value[5].toString().replaceAll(/[¥,]/g, ''));
if (val3 == '') val3 = 0;
if (val5 == '') val5 = 0;
let val6 = 0;
val6 = val3 * val5;
myTable3a.setValue('G' + i, val6, true);
sumValue = sumValue + val6;
} else {
myTable3a.setValue('G' + i, '', true);
}
});
if ($('#Results_Num046').val().toString().replaceAll(/[¥,]/g, '') != sumValue) {
$p.set($('#Results_Num046'), sumValue.toLocaleString());
console.log('Set Results_Num046');
}
if ($('#Results_DescriptionC').val() != JSON.stringify(myTable3a.getJson())) {
$p.set($('#Results_DescriptionC'), JSON.stringify(myTable3a.getJson()));
console.log('Set Results_DescriptionC');
}
table6Calc();
}
function table4Calc() {
let myData4 = myTable4a.getData();
let sumValue = 0;
$.each(myData4, function (index, value) {
if (value[2].toString() != '') {
let val2 = parseFloat(value[2].toString().replaceAll(/[¥,]/g, ''));
sumValue = sumValue + val2;
} else {
let val2 = 0;
sumValue = sumValue + val2;
}
});
if ($('#Results_Num047').val().toString().replaceAll(/[¥,]/g, '') != sumValue) {
$p.set($('#Results_Num047'), sumValue.toLocaleString());
console.log('Set Results_Num047');
}
if ($('#Results_DescriptionD').val() != JSON.stringify(myTable4a.getJson())) {
$p.set($('#Results_DescriptionD'), JSON.stringify(myTable4a.getJson()));
console.log('Set Results_DescriptionD');
}
table6Calc();
}
function table5Calc() {
if ($('#Results_DescriptionE').val() != JSON.stringify(myTable5a.getJson())) {
$p.set($('#Results_DescriptionE'), JSON.stringify(myTable5a.getJson()));
console.log('Set Results_DescriptionE');
}
table6Calc();
}
function table6Calc() {
//console.log('table6Calc');
let dataA = parseFloat($('#Results_Num045').val().toString().replaceAll(/[¥,]/g, ''));
let dataB = parseFloat($('#Results_Num046').val().toString().replaceAll(/[¥,]/g, ''));
let dataC = parseFloat($('#Results_Num047').val().toString().replaceAll(/[¥,]/g, ''));
let myData5 = myTable5a.getData();
//D.値引きなど
let dataD = 0;
let dataE = 0;
let dataF = 0;
let dataG = 0;
if (myData5[0][1].toString() != '') {
dataD = parseFloat(myData5[0][1].toString().replaceAll(/[¥,]/g, ''));
}
if (myData5[1][1].toString() != '') {
dataE = parseFloat(myData5[1][1].toString().replaceAll(/[¥,]/g, ''));
}
if (myData5[2][1].toString() != '') {
dataF = parseFloat(myData5[2][1].toString().replaceAll(/[¥,]/g, ''));
}
if (myData5[3][1].toString() != '') {
dataG = parseFloat(myData5[3][1].toString().replaceAll(/[¥,]/g, ''));
}
let tsubo1 = 0;
if ($('#Results_Num018').val()) tsubo1 = parseFloat($('#Results_Num018').val().toString().replaceAll(/[¥,]/g, ''));
let sum1 = dataA + dataB + dataC + dataD;
let zei1 = Math.floor(sum1 * 0.1);
let tsubo2 = 0;
if (tsubo1 > 0) tsubo2 = Math.floor(sum1 / tsubo1);
let sum2 = sum1 + zei1;
let sum3 = sum1 + dataE;
let zei2 = Math.floor(sum3 * 0.1);
let dataX = sum3 + zei2;
let dataGzei = Math.floor(dataG * 0.1);
let dataY = dataF + dataG + dataGzei;
let allSum = dataX + dataY;
myTable6a.setValue('B1', dataA, true);
myTable6a.setValue('B2', dataB, true);
myTable6a.setValue('B3', dataC, true);
myTable6a.setValue('B4', dataD, true);
myTable6a.setValue('B5', sum1, true);
myTable6a.setValue('B6', tsubo1, true);
myTable6a.setValue('B7', tsubo2, true);
myTable6a.setValue('B8', zei2, true);
myTable6a.setValue('B9', sum2, true);
myTable6a.setValue('B10', dataE, true);
myTable6a.setValue('B11', sum3, true);
myTable6a.setValue('B12', zei2, true);
myTable6a.setValue('B13', dataX, true);
myTable6a.setValue('B14', dataF, true);
myTable6a.setValue('B15', dataG, true);
myTable6a.setValue('B16', dataGzei, true);
myTable6a.setValue('B17', dataY, true);
myTable6a.setValue('B18', allSum, true);
if ($('#Results_Num050').val().toString().replaceAll(/[¥,]/g, '') != sum2) {
$p.set($('#Results_Num050'), sum2.toLocaleString());
console.log('Set Results_Num050');
}
if ($('#Results_DescriptionF').val() != JSON.stringify(myTable6a.getJson())) {
$p.set($('#Results_DescriptionF'), JSON.stringify(myTable6a.getJson()));
console.log('Set Results_DescriptionF');
}
table7Calc();
}
$p.on('change', 'Num051', function () {
table7Calc();
});
function table7Calc() {
let myData5 = myTable5a.getData();
let myData7 = myTable7a.getData();
let ukeoi = parseFloat($('#Results_Num050').val().toString().replaceAll(/[¥,]/g, '')); //請負金額税込
let dataA = parseFloat(myData7[1][1].toString().replaceAll(/[¥,]/g, '')); //地盤調査費
let dataB = 0;
if (myData5[0][1].toString() != '') {
dataB = parseFloat(myData5[0][1].toString().replaceAll(/[¥,]/g, '')); //値引き
}
let dataC = parseFloat($('#Results_Num051').val().toString().replaceAll(/[¥,]/g, '')); //太陽光システム請負金額
let tatemono = parseFloat($('#Results_Num045').val().toString().replaceAll(/[¥,]/g, '')); //太陽光システム請負金額
let zeiritsu = parseFloat($('#Results_Num039').val().toString().replaceAll(/[¥,]/g, ''));
let dataD = (tatemono + dataA + dataB + dataC) * (1 + zeiritsu / 100);
let dataX = Math.floor(dataD / 10000);
let dataY = Math.floor((ukeoi / 10000) * 0.9);
let dataZ = 0;
if (dataX > dataY) {
dataZ = dataY;
} else {
dataZ = dataX;
}
/*
Class063
0,10年
1,20年
2,30年
3,60年
*/
//let class063 = $('#Results_Class063').val();
/*
let class063;
if (typeof myData !== 'undefined') {
class063 = myData.ClassHash.Class063;
} else {
class063 = $('#Results_Class063').val();
}
let kashi = 0;
if (class063 != '3') {
kashi = 2000;
if ($('#Results_Class064').val() != 0) {
$p.set($('#Results_Class064'), 0);
console.log('Set Results_Class064 0');
}
} else {
if (dataZ < 2000) {
kashi = 2000;
if ($('#Results_Class064').val() != 0) {
$p.set($('#Results_Class064'), 0);
console.log('Set Results_Class064 0');
}
} else if (dataZ <= 3000) {
kashi = 3000;
if ($('#Results_Class064').val() != 1) {
$p.set($('#Results_Class064'), 1);
console.log('Set Results_Class064 1');
}
} else if (dataZ <= 4000) {
kashi = 4000;
if ($('#Results_Class064').val() != 2) {
$p.set($('#Results_Class064'), 2);
console.log('Set Results_Class064 2');
}
} else if (dataZ <= 5000) {
kashi = 5000;
if ($('#Results_Class064').val() != 3) {
$p.set($('#Results_Class064'), 3);
console.log('Set Results_Class064 3');
}
} else if (dataZ > 5000) {
kashi = 0;
if ($('#Results_Class064').val() != 4) {
$p.set($('#Results_Class064'), 4);
console.log('Set Results_Class064 4');
}
}
}
*/
kashi = 2000;
myTable7a.setValue('B1', ukeoi, true);
myTable7a.setValue('B2', dataA, true);
myTable7a.setValue('B3', dataB, true);
myTable7a.setValue('B4', dataC, true);
myTable7a.setValue('B5', dataD, true);
myTable7a.setValue('B6', dataX, true);
myTable7a.setValue('B7', dataY, true);
myTable7a.setValue('B8', dataZ, true);
myTable7a.setValue('B9', kashi, true);
myTable7a.setValue('C9', "既定値2000万円", true);
if ($('#Results_DescriptionG').val() != JSON.stringify(myTable7a.getData())) {
$p.set($('#Results_DescriptionG'), JSON.stringify(myTable7a.getJson()));
console.log('Set Results_DescriptionG');
}
calcDiffer();
}
function calcDiffer() {
let ukeoi = parseFloat($('#Results_Num050').val().toString().replaceAll(/[¥,]/g, '')); //請負金額税込
let shiharai = parseFloat($('#Results_Num040').val().toString().replaceAll(/[¥,]/g, '')); //支払金額税込
let diff = 0;
diff = ukeoi - shiharai;
//console.log("ukeoi : " + ukeoi);
//console.log("shiharai : " + shiharai);
//console.log("diff : " + diff);
if (diff != 0) {
$('#Results_Num053').css({
'font-size': '1.3em',
'font-weight': 'bold',
color: 'red',
});
$('#Num053_comments').css('color', 'red');
$('#Num053_comments').text('差異あり');
} else {
$('#Results_Num053').css({
'font-size': '1em',
'font-weight': 'normal',
color: 'black',
});
$('#Num053_comments').css('color', 'blue');
$('#Num053_comments').text('差異なし');
}
if ($('#Results_Num053').val().toString().replaceAll(/[¥,]/g, '') != diff) {
$p.set($('#Results_Num053'), diff.toLocaleString());
console.log('Set Results_Num053');
}
}
function deleteBlankRow() {
let myData2 = myTable2a.getData();
$.each(myData2, function (index, value) {
let flag = true;
$.each(value, function (index2, value2) {
if (value2 != '') {
flag = false;
}
});
if (index == myData2.length - 1) flag = false;
if (flag) {
myTable2a.deleteRow(index, 1);
}
});
let myData3 = myTable3a.getData();
$.each(myData3, function (index, value) {
let flag = true;
$.each(value, function (index2, value2) {
if (value2 != '') {
flag = false;
}
});
if (index == myData3.length - 1) flag = false;
if (flag) {
myTable3a.deleteRow(index, 1);
}
});
}
function table1CalcA() {
let myData1 = myTable1a.getData();
//console.log(myTable1data);
let sumA = [0, 0, 0, 0];
sumA[0] = parseFloat(myData1[0][2].toString().replaceAll(/[¥,]/g, '')) + parseFloat(myData1[1][2].toString().replaceAll(/[¥,]/g, ''));
sumA[1] = parseFloat(myData1[2][2].toString().replaceAll(/[¥,]/g, '')) + parseFloat(myData1[3][2].toString().replaceAll(/[¥,]/g, ''));
sumA[2] = parseFloat(myData1[4][2].toString().replaceAll(/[¥,]/g, '')) + parseFloat(myData1[5][2].toString().replaceAll(/[¥,]/g, ''));
sumA[3] = parseFloat(myData1[6][2].toString().replaceAll(/[¥,]/g, '')) + parseFloat(myData1[7][2].toString().replaceAll(/[¥,]/g, ''));
myTable1a.setValue('G1', sumA[0], true);
myTable1a.setValue('G3', sumA[1], true);
myTable1a.setValue('G5', sumA[2], true);
myTable1a.setValue('G7', sumA[3], true);
if ($('#Results_DescriptionA').val() != JSON.stringify(myTable1a.getData())) {
$p.set($('#Results_DescriptionA'), JSON.stringify(myTable1a.getJson()));
console.log('Set Results_DescriptionA');
}
let shouhizei = $p.getControl('Num039').val();
let sum1 = sumA[0] + sumA[1] + sumA[2] + sumA[3];
let uchizei = sum1 - Math.ceil(sum1 / (1 + shouhizei / 100));
let sum2 = sum1 - uchizei;
if ($('#Results_Num040').val().toString().replaceAll(/[¥,]/g, '') != sum1) {
$p.set($('#Results_Num040'), sum1.toLocaleString());
console.log('Set Results_Num040');
}
if ($('#Results_Num041').val().toString().replaceAll(/[¥,]/g, '') != uchizei) {
$p.set($('#Results_Num041'), uchizei.toLocaleString());
console.log('Set Results_Num041');
}
if ($('#Results_Num042').val().toString().replaceAll(/[¥,]/g, '') != sum2) {
$p.set($('#Results_Num042'), sum2.toLocaleString());
console.log('Set Results_Num042');
}
calcDiffer();
}
function table1CalcB() {
let myData1 = myTable1a.getData();
let dateList = [4];
dateList[0] = myData1[0][3].toString();
dateList[1] = myData1[1][3].toString();
dateList[2] = myData1[2][3].toString();
dateList[3] = myData1[3][3].toString();
if (dateList[0] != '') {
myTable1a.setValue('E1', '');
}
if (dateList[1] != '') {
myTable1a.setValue('E2', '');
}
if (dateList[2] != '') {
myTable1a.setValue('E3', '');
}
if (dateList[3] != '') {
myTable1a.setValue('E4', '');
}
if ($('#Results_DescriptionA').val() != JSON.stringify(myTable1a.getData())) {
$p.set($('#Results_DescriptionA'), JSON.stringify(myTable1a.getJson()));
console.log('Set Results_DescriptionA');
}
calcDiffer();
}
function table1CalcC() {
let myData1 = myTable1a.getData();
let dateList = [4];
dateList[0] = myData1[0][4].toString();
dateList[1] = myData1[1][4].toString();
dateList[2] = myData1[2][4].toString();
dateList[3] = myData1[3][4].toString();
if (dateList[0] != '') {
myTable1a.setValue('D1', '');
}
if (dateList[1] != '') {
myTable1a.setValue('D2', '');
}
if (dateList[2] != '') {
myTable1a.setValue('D3', '');
}
if (dateList[3] != '') {
myTable1a.setValue('D4', '');
}
if ($('#Results_DescriptionA').val() != JSON.stringify(myTable1a.getData())) {
$p.set($('#Results_DescriptionA'), JSON.stringify(myTable1a.getJson()));
console.log('Set Results_DescriptionA');
}
calcDiffer();
}
//リードタイム算定表から日付取得
function createReadTimeTable() {
let readtime_val = $('#Results_DescriptionR').val();
if (readtime_val != '') {
readtime_date = JSON.parse(readtime_val);
//console.log(readtime_date);
}
}
function InputReadOnly() {
//console.log($('.code-readonly'));
let readOnlyList = $('.code-readonly');
$('.code-readonly').each(function (index, value) {
//console.log(value.id);
if ($('label[for="' + value.id + '"')) {
//console.log(value.id);
$('label[for="' + value.id + '"').css('pointer-events', 'none');
}
});
}
function InputWfColumn() {
for (colnum = 124; colnum <= 128; colnum++) {
InputWfColumnReadOnly1('Class' + colnum);
InputWfColumnReadOnly1('Date' + colnum);
InputWfColumnReadOnly3('Description' + colnum);
}
for (colnum = 130; colnum <= 139; colnum++) {
InputWfColumnReadOnly1('Class' + colnum);
InputWfColumnReadOnly1('Date' + colnum);
}
for (colnum = 150; colnum <= 158; colnum++) {
InputWfColumnReadOnly1('Class' + colnum);
InputWfColumnReadOnly1('Date' + colnum);
}
for (colnum = 169; colnum <= 170; colnum++) {
InputWfColumnReadOnly1('Class' + colnum);
InputWfColumnReadOnly1('Date' + colnum);
}
for (colnum = 195; colnum <= 198; colnum++) {
InputWfColumnReadOnly1('Class' + colnum);
InputWfColumnReadOnly1('Date' + colnum);
InputWfColumnReadOnly3('Description' + colnum);
}
for (colnum = 140; colnum <= 147; colnum++) {
InputWfColumnReadOnly2('Class' + colnum);
}
for (colnum = 160; colnum <= 167; colnum++) {
InputWfColumnReadOnly2('Class' + colnum);
}
}
//項目の読み取り専用設定1
function InputWfColumnReadOnly1(col) {
$('#Results_' + col).prop('tabindex', '-1');
$('#Results_' + col).next().css('display', 'none');
$('label[for="Results_' + col + '"').css('pointer-events', 'none');
}
//項目の読み取り専用設定2
function InputWfColumnReadOnly2(col) {
$('#Results_' + col).prop('tabindex', '-1');
$('label[for="Results_' + col + '"').css('pointer-events', 'none');
}
//説明項目の読み取り専用設定1
function InputWfColumnReadOnly3(col) {
$('#Results_' + col).prop('tabindex', '-1');
$('#Results_' + col + '\\.viewer').prop('ondblclick', '-1');
$('#Results_' + col + '\\.editor').css('display', 'none');
//$('#Results_' + col).css('display', 'block');
$('#Results_' + col).next().css('display', 'none');
$('#Results_' + col).next().next().css('display', 'none');
}
$p.ex.readonlyColumn = function () {
//readonlyクラス Tab移動禁止
$('.code-readonly').each(function (index, value) {
//console.log(value.id);
$('#' + value.id).attr('tabindex', -1);
$('label[for="' + value.id + '"]').css('pointer-events', 'none');
});
$('.code-readonly2').each(function (index, value) {
//console.log(value.id);
$('#' + value.id).attr('tabindex', -1);
$('label[for="' + value.id + '"]').css('pointer-events', 'none');
});
}