let apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d'; let nendo = '2024'; window.addEventListener('load', function () { document.title = '損益確認書'; //getData('221608'); let url_string = window.location.href; let url = new URL(url_string); let reqId = url.searchParams.get('reqId'); console.log(reqId); if (reqId == null) reqId = '999999'; if (reqId != '999999') { console.log('getData!! ' + reqId); getJigyouKeikakuData(reqId); } else { let template = Hogan.compile($('#profitLossTable').text()); let output = template.render(); $('#output').empty(); $('#output').append(output); } getShopList(reqId); $('#shopSelect').on('change', function () { console.log($('#shopSelect').val()); //getJigyouKeikakuData() if ($('#shopSelect').val() != '999999') { url.searchParams.set('reqId', $('#shopSelect').val()); window.open(url.toString(), '_self'); } }) $('#reloadButton').button({ icons: { primary: 'ui-icon-refresh' } }); }); function getJigyouKeikakuData(recordId) { let dataTable = {}; let sumTable = {}; //データ初期化 let label = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'u', 'v', 'x', 'y']; //受注(o)・着工(c)は請負金額(a)・棟数(b)・粗利益(e)・利益率(f)のみ使用 let prefixes = ['k', 'j', 'ok', 'oj', 'ck', 'cj']; //--------------------------------------------------------------------------- for (i = 1; i <= 12; i++) { for (j = 0; j < label.length; j++) { for (p = 0; p < prefixes.length; p++) { dataTable[prefixes[p] + '-' + i + '-' + label[j]] = 0; } } } for (j = 0; j < label.length; j++) { for (p = 0; p < prefixes.length; p++) { dataTable[prefixes[p] + '-' + 'hSum' + '-' + label[j]] = 0; dataTable[prefixes[p] + '-' + 'gSum' + '-' + label[j]] = 0; dataTable[prefixes[p] + '-' + 'aSum' + '-' + label[j]] = 0; sumTable[prefixes[p] + '-' + 'hSum' + '-' + label[j]] = 0; sumTable[prefixes[p] + '-' + 'gSum' + '-' + label[j]] = 0; sumTable[prefixes[p] + '-' + 'aSum' + '-' + label[j]] = 0; } } //--------------------------------------------------------------------------- console.log(dataTable); let template = Hogan.compile($('#profitLossTable').text()); let output = template.render(dataTable); $('#output').empty(); $('#output').append(output); let json = { 'ApiVersion': 1.1, 'ApiKey': apiKey, } let url = 'https:///nextoffice.next-hd.co.jp/pleasanter/api/items/' + recordId + '/get'; $.ajax({ 'type': 'post', 'async': false, 'url': url, 'data': JSON.stringify(json), 'contentType': 'application/json', 'scriptCharset': 'utf-8', 'dataType': 'json', success: function (data) { console.log(data); document.title = data.Response.Data[0].ClassHash.ClassZ + '年度 損益確認書 ' + data.Response.Data[0].ClassHash.ClassB; $('#mainTitle').text(document.title); nendo = data.Response.Data[0].ClassHash.ClassZ; let dataList = data.Response.Data[0].DescriptionHash; let numList = data.Response.Data[0].NumHash; //1棟単価 let numA = numList['NumA'] ? parseFloat(numList['NumA'].toString().replace(/,/g, '')) : 0; let numB = numList['NumB'] ? parseFloat(numList['NumB'].toString().replace(/,/g, '')) : 0; let numC = numList['NumC'] ? parseFloat(numList['NumC'].toString().replace(/,/g, '')) : 0; let numA2 = numA ? Math.ceil(numA / 1000) : 0; for (m = 1; m <= 12; m++) { let num = 160 + m; //console.log(JSON.parse(dataList['Description' + num])); let data = JSON.parse(dataList['Description' + num]); //----------------------------------------------------------------------------------- //受注(月別合計テーブル Description041-052) let orderNum = (40 + m).toString().padStart(3, '0'); let orderData = JSON.parse(dataList['Description' + orderNum]); dataTable['ok-' + m + '-a'] = orderData[0][3] ? Math.ceil(orderData[0][3] / 1000).toLocaleString() : ''; //請負金額・計画 dataTable['oj-' + m + '-a'] = orderData[1][3] ? Math.ceil(orderData[1][3] / 1000).toLocaleString() : ''; //請負金額・実績 dataTable['ok-' + m + '-b'] = orderData[0][2] ? orderData[0][2] : ''; //棟数・計画 dataTable['oj-' + m + '-b'] = orderData[1][2] ? orderData[1][2] : ''; //棟数・実績 dataTable['ok-' + m + '-e'] = orderData[0][5] ? Math.ceil(orderData[0][5] / 1000).toLocaleString() : ''; //粗利益・計画 dataTable['oj-' + m + '-e'] = orderData[1][5] ? Math.ceil(orderData[1][5] / 1000).toLocaleString() : ''; //粗利益・実績 dataTable['ok-' + m + '-f'] = orderData[0][4] ? orderData[0][4] + '%' : ''; //利益率・計画 dataTable['oj-' + m + '-f'] = orderData[1][4] ? orderData[1][4] + '%' : ''; //利益率・実績 //着工(月別合計テーブル Description101-112) let startNum = (100 + m).toString().padStart(3, '0'); let startData = JSON.parse(dataList['Description' + startNum]); dataTable['ck-' + m + '-a'] = startData[0][3] ? Math.ceil(startData[0][3] / 1000).toLocaleString() : ''; //請負金額・計画 dataTable['cj-' + m + '-a'] = startData[1][3] ? Math.ceil(startData[1][3] / 1000).toLocaleString() : ''; //請負金額・実績 dataTable['ck-' + m + '-b'] = startData[0][2] ? startData[0][2] : ''; //棟数・計画 dataTable['cj-' + m + '-b'] = startData[1][2] ? startData[1][2] : ''; //棟数・実績 dataTable['ck-' + m + '-e'] = startData[0][5] ? Math.ceil(startData[0][5] / 1000).toLocaleString() : ''; //粗利益・計画 dataTable['cj-' + m + '-e'] = startData[1][5] ? Math.ceil(startData[1][5] / 1000).toLocaleString() : ''; //粗利益・実績 dataTable['ck-' + m + '-f'] = startData[0][4] ? startData[0][4] + '%' : ''; //利益率・計画 dataTable['cj-' + m + '-f'] = startData[1][4] ? startData[1][4] + '%' : ''; //利益率・実績 //----------------------------------------------------------------------------------- //売上・粗利 dataTable['k-' + m + '-a'] = data[0][3] ? Math.ceil(data[0][3] / 1000).toLocaleString() : ''; //売上高・計画 dataTable['j-' + m + '-a'] = data[1][3] ? Math.ceil(data[1][3] / 1000).toLocaleString() : ''; //売上高・実績 dataTable['k-' + m + '-b'] = data[0][2] ? data[0][2] : ''; //完成棟数・計画 dataTable['j-' + m + '-b'] = data[1][2] ? data[1][2] : ''; //完成棟数・実績 dataTable['k-' + m + '-e'] = data[0][5] ? Math.ceil(data[0][5] / 1000).toLocaleString() : ''; //総粗利・計画 dataTable['j-' + m + '-e'] = data[1][5] ? Math.ceil(data[1][5] / 1000).toLocaleString() : ''; //総粗利・実績 dataTable['k-' + m + '-f'] = data[0][4] ? data[0][4] + '%' : ''; //利益率・計画 dataTable['j-' + m + '-f'] = data[1][4] ? data[1][4] + '%' : ''; //利益率・実績 dataTable['k-' + m + '-c'] = data[0][3] ? Math.ceil((data[0][3] - data[0][5]) / 1000).toLocaleString() : ''; //売上原価(売上高-総粗利)・計画 dataTable['j-' + m + '-c'] = data[1][3] ? Math.ceil((data[1][3] - data[1][5]) / 1000).toLocaleString() : ''; //売上原価(売上高-総粗利)・実績 dataTable['k-' + m + '-d'] = data[0][3] ? Math.floor((data[0][3] - data[0][5]) / data[0][3] * 1000) / 10 + '%' : ''; //原価率・計画 dataTable['j-' + m + '-d'] = data[1][3] ? Math.floor((data[1][3] - data[1][5]) / data[1][3] * 1000) / 10 + '%' : ''; //原価率・実績 //----------------------------------------------------------------------------------- //人件費 let num001 = numList['Num001'] ? parseFloat(numList['Num001'].toString().replace(/,/g, '')) : 0; dataTable['k-' + m + '-g'] = num001 ? num001.toLocaleString() : ''; dataTable['j-' + m + '-g'] = num001 ? num001.toLocaleString() : ''; //販売費 let num002 = numList['Num002'] ? parseFloat(numList['Num002'].toString().replace(/,/g, '')) : 0; dataTable['k-' + m + '-h'] = num002 ? num002.toLocaleString() : ''; dataTable['j-' + m + '-h'] = num002 ? num002.toLocaleString() : ''; //減価償却費 let num011 = numList['Num011'] ? parseFloat(numList['Num011'].toString().replace(/,/g, '')) : 0; dataTable['k-' + m + '-i'] = num011 ? num011.toLocaleString() : ''; dataTable['j-' + m + '-i'] = num011 ? num011.toLocaleString() : ''; //地代・家賃 let num012 = numList['Num012'] ? parseFloat(numList['Num012'].toString().replace(/,/g, '')) : 0; dataTable['k-' + m + '-j'] = num012 ? num012.toLocaleString() : ''; dataTable['j-' + m + '-j'] = num012 ? num012.toLocaleString() : ''; //その他経費 let num013 = numList['Num013'] ? parseFloat(numList['Num013'].toString().replace(/,/g, '')) : 0; dataTable['k-' + m + '-k'] = num013 ? num013.toLocaleString() : ''; dataTable['j-' + m + '-k'] = num013 ? num013.toLocaleString() : ''; //本社経費 let num014 = numList['Num014'] ? parseFloat(numList['Num014'].toString().replace(/,/g, '')) : 0; dataTable['k-' + m + '-l'] = num014 ? num014.toLocaleString() : ''; dataTable['j-' + m + '-l'] = num014 ? num014.toLocaleString() : ''; //諸経費合計 let num025 = numList['Num025'] ? parseFloat(numList['Num025'].toString().replace(/,/g, '')) : 0; dataTable['k-' + m + '-u'] = num025 ? num025.toLocaleString() : ''; dataTable['j-' + m + '-u'] = num025 ? num025.toLocaleString() : ''; //経常利益 let keiJo1 = (data[0][5] ? Math.ceil(data[0][5] / 1000) : 0) - (num025 ? num025 : 0); dataTable['k-' + m + '-v'] = keiJo1 ? keiJo1.toLocaleString() : ''; let keiJo2 = (data[1][5] ? Math.ceil(data[1][5] / 1000) : 0) - (num025 ? num025 : 0); dataTable['j-' + m + '-v'] = keiJo2 ? keiJo2.toLocaleString() : ''; //----------------------------------------------------------------------------------- //BEP売上(諸経費合計 / 利益率) let bep1 = data[0][4] ? Math.floor(num025 / (data[0][4] / 100)) : 0; let bep2 = data[1][4] ? Math.floor(num025 / (data[1][4] / 100)) : 0; dataTable['k-' + m + '-x'] = bep1 ? bep1.toLocaleString() : ''; dataTable['j-' + m + '-x'] = bep2 ? bep2.toLocaleString() : ''; //BEP棟数 if (numA) { dataTable['k-' + m + '-y'] = bep1 ? Math.floor(bep1 / numA2 * 10) / 10 : ''; dataTable['j-' + m + '-y'] = bep2 ? Math.floor(bep2 / numA2 * 10) / 10 : ''; } //----------------------------------------------------------------------------------- //累計計算 if (m >= 4 && m <= 9) { //前期 sumTable['k-hSum-a'] += dataTable['k-' + m + '-a'] ? parseFloat(dataTable['k-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-b'] += dataTable['k-' + m + '-b'] ? parseFloat(dataTable['k-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-c'] += dataTable['k-' + m + '-c'] ? parseFloat(dataTable['k-' + m + '-c'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-e'] += dataTable['k-' + m + '-e'] ? parseFloat(dataTable['k-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-g'] += dataTable['k-' + m + '-g'] ? parseFloat(dataTable['k-' + m + '-g'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-h'] += dataTable['k-' + m + '-h'] ? parseFloat(dataTable['k-' + m + '-h'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-i'] += dataTable['k-' + m + '-i'] ? parseFloat(dataTable['k-' + m + '-i'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-j'] += dataTable['k-' + m + '-j'] ? parseFloat(dataTable['k-' + m + '-j'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-k'] += dataTable['k-' + m + '-k'] ? parseFloat(dataTable['k-' + m + '-k'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-l'] += dataTable['k-' + m + '-l'] ? parseFloat(dataTable['k-' + m + '-l'].toString().replace(/,/g, '')) : 0; sumTable['k-hSum-u'] += dataTable['k-' + m + '-u'] ? parseFloat(dataTable['k-' + m + '-u'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-a'] += dataTable['j-' + m + '-a'] ? parseFloat(dataTable['j-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-b'] += dataTable['j-' + m + '-b'] ? parseFloat(dataTable['j-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-c'] += dataTable['j-' + m + '-c'] ? parseFloat(dataTable['j-' + m + '-c'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-e'] += dataTable['j-' + m + '-e'] ? parseFloat(dataTable['j-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-g'] += dataTable['j-' + m + '-g'] ? parseFloat(dataTable['j-' + m + '-g'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-h'] += dataTable['j-' + m + '-h'] ? parseFloat(dataTable['j-' + m + '-h'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-i'] += dataTable['j-' + m + '-i'] ? parseFloat(dataTable['j-' + m + '-i'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-j'] += dataTable['j-' + m + '-j'] ? parseFloat(dataTable['j-' + m + '-j'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-k'] += dataTable['j-' + m + '-k'] ? parseFloat(dataTable['j-' + m + '-k'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-l'] += dataTable['j-' + m + '-l'] ? parseFloat(dataTable['j-' + m + '-l'].toString().replace(/,/g, '')) : 0; sumTable['j-hSum-u'] += dataTable['j-' + m + '-u'] ? parseFloat(dataTable['j-' + m + '-u'].toString().replace(/,/g, '')) : 0; //受注・着工 sumTable['ok-hSum-a'] += dataTable['ok-' + m + '-a'] ? parseFloat(dataTable['ok-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['ok-hSum-b'] += dataTable['ok-' + m + '-b'] ? parseFloat(dataTable['ok-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['ok-hSum-e'] += dataTable['ok-' + m + '-e'] ? parseFloat(dataTable['ok-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['oj-hSum-a'] += dataTable['oj-' + m + '-a'] ? parseFloat(dataTable['oj-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['oj-hSum-b'] += dataTable['oj-' + m + '-b'] ? parseFloat(dataTable['oj-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['oj-hSum-e'] += dataTable['oj-' + m + '-e'] ? parseFloat(dataTable['oj-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['ck-hSum-a'] += dataTable['ck-' + m + '-a'] ? parseFloat(dataTable['ck-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['ck-hSum-b'] += dataTable['ck-' + m + '-b'] ? parseFloat(dataTable['ck-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['ck-hSum-e'] += dataTable['ck-' + m + '-e'] ? parseFloat(dataTable['ck-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['cj-hSum-a'] += dataTable['cj-' + m + '-a'] ? parseFloat(dataTable['cj-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['cj-hSum-b'] += dataTable['cj-' + m + '-b'] ? parseFloat(dataTable['cj-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['cj-hSum-e'] += dataTable['cj-' + m + '-e'] ? parseFloat(dataTable['cj-' + m + '-e'].toString().replace(/,/g, '')) : 0; } else { //後期 sumTable['k-gSum-a'] += dataTable['k-' + m + '-a'] ? parseFloat(dataTable['k-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-b'] += dataTable['k-' + m + '-b'] ? parseFloat(dataTable['k-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-c'] += dataTable['k-' + m + '-c'] ? parseFloat(dataTable['k-' + m + '-c'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-e'] += dataTable['k-' + m + '-e'] ? parseFloat(dataTable['k-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-g'] += dataTable['k-' + m + '-g'] ? parseFloat(dataTable['k-' + m + '-g'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-h'] += dataTable['k-' + m + '-h'] ? parseFloat(dataTable['k-' + m + '-h'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-i'] += dataTable['k-' + m + '-i'] ? parseFloat(dataTable['k-' + m + '-i'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-j'] += dataTable['k-' + m + '-j'] ? parseFloat(dataTable['k-' + m + '-j'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-k'] += dataTable['k-' + m + '-k'] ? parseFloat(dataTable['k-' + m + '-k'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-l'] += dataTable['k-' + m + '-l'] ? parseFloat(dataTable['k-' + m + '-l'].toString().replace(/,/g, '')) : 0; sumTable['k-gSum-u'] += dataTable['k-' + m + '-u'] ? parseFloat(dataTable['k-' + m + '-u'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-a'] += dataTable['j-' + m + '-a'] ? parseFloat(dataTable['j-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-b'] += dataTable['j-' + m + '-b'] ? parseFloat(dataTable['j-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-c'] += dataTable['j-' + m + '-c'] ? parseFloat(dataTable['j-' + m + '-c'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-e'] += dataTable['j-' + m + '-e'] ? parseFloat(dataTable['j-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-g'] += dataTable['j-' + m + '-g'] ? parseFloat(dataTable['j-' + m + '-g'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-h'] += dataTable['j-' + m + '-h'] ? parseFloat(dataTable['j-' + m + '-h'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-i'] += dataTable['j-' + m + '-i'] ? parseFloat(dataTable['j-' + m + '-i'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-j'] += dataTable['j-' + m + '-j'] ? parseFloat(dataTable['j-' + m + '-j'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-k'] += dataTable['j-' + m + '-k'] ? parseFloat(dataTable['j-' + m + '-k'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-l'] += dataTable['j-' + m + '-l'] ? parseFloat(dataTable['j-' + m + '-l'].toString().replace(/,/g, '')) : 0; sumTable['j-gSum-u'] += dataTable['j-' + m + '-u'] ? parseFloat(dataTable['j-' + m + '-u'].toString().replace(/,/g, '')) : 0; //受注・着工 sumTable['ok-gSum-a'] += dataTable['ok-' + m + '-a'] ? parseFloat(dataTable['ok-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['ok-gSum-b'] += dataTable['ok-' + m + '-b'] ? parseFloat(dataTable['ok-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['ok-gSum-e'] += dataTable['ok-' + m + '-e'] ? parseFloat(dataTable['ok-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['oj-gSum-a'] += dataTable['oj-' + m + '-a'] ? parseFloat(dataTable['oj-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['oj-gSum-b'] += dataTable['oj-' + m + '-b'] ? parseFloat(dataTable['oj-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['oj-gSum-e'] += dataTable['oj-' + m + '-e'] ? parseFloat(dataTable['oj-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['ck-gSum-a'] += dataTable['ck-' + m + '-a'] ? parseFloat(dataTable['ck-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['ck-gSum-b'] += dataTable['ck-' + m + '-b'] ? parseFloat(dataTable['ck-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['ck-gSum-e'] += dataTable['ck-' + m + '-e'] ? parseFloat(dataTable['ck-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['cj-gSum-a'] += dataTable['cj-' + m + '-a'] ? parseFloat(dataTable['cj-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['cj-gSum-b'] += dataTable['cj-' + m + '-b'] ? parseFloat(dataTable['cj-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['cj-gSum-e'] += dataTable['cj-' + m + '-e'] ? parseFloat(dataTable['cj-' + m + '-e'].toString().replace(/,/g, '')) : 0; } sumTable['k-aSum-a'] += dataTable['k-' + m + '-a'] ? parseFloat(dataTable['k-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-b'] += dataTable['k-' + m + '-b'] ? parseFloat(dataTable['k-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-c'] += dataTable['k-' + m + '-c'] ? parseFloat(dataTable['k-' + m + '-c'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-e'] += dataTable['k-' + m + '-e'] ? parseFloat(dataTable['k-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-g'] += dataTable['k-' + m + '-g'] ? parseFloat(dataTable['k-' + m + '-g'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-h'] += dataTable['k-' + m + '-h'] ? parseFloat(dataTable['k-' + m + '-h'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-i'] += dataTable['k-' + m + '-i'] ? parseFloat(dataTable['k-' + m + '-i'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-j'] += dataTable['k-' + m + '-j'] ? parseFloat(dataTable['k-' + m + '-j'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-k'] += dataTable['k-' + m + '-k'] ? parseFloat(dataTable['k-' + m + '-k'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-l'] += dataTable['k-' + m + '-l'] ? parseFloat(dataTable['k-' + m + '-l'].toString().replace(/,/g, '')) : 0; sumTable['k-aSum-u'] += dataTable['k-' + m + '-u'] ? parseFloat(dataTable['k-' + m + '-u'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-a'] += dataTable['j-' + m + '-a'] ? parseFloat(dataTable['j-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-b'] += dataTable['j-' + m + '-b'] ? parseFloat(dataTable['j-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-c'] += dataTable['j-' + m + '-c'] ? parseFloat(dataTable['j-' + m + '-c'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-e'] += dataTable['j-' + m + '-e'] ? parseFloat(dataTable['j-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-g'] += dataTable['j-' + m + '-g'] ? parseFloat(dataTable['j-' + m + '-g'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-h'] += dataTable['j-' + m + '-h'] ? parseFloat(dataTable['j-' + m + '-h'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-i'] += dataTable['j-' + m + '-i'] ? parseFloat(dataTable['j-' + m + '-i'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-j'] += dataTable['j-' + m + '-j'] ? parseFloat(dataTable['j-' + m + '-j'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-k'] += dataTable['j-' + m + '-k'] ? parseFloat(dataTable['j-' + m + '-k'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-l'] += dataTable['j-' + m + '-l'] ? parseFloat(dataTable['j-' + m + '-l'].toString().replace(/,/g, '')) : 0; sumTable['j-aSum-u'] += dataTable['j-' + m + '-u'] ? parseFloat(dataTable['j-' + m + '-u'].toString().replace(/,/g, '')) : 0; //受注・着工 sumTable['ok-aSum-a'] += dataTable['ok-' + m + '-a'] ? parseFloat(dataTable['ok-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['ok-aSum-b'] += dataTable['ok-' + m + '-b'] ? parseFloat(dataTable['ok-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['ok-aSum-e'] += dataTable['ok-' + m + '-e'] ? parseFloat(dataTable['ok-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['oj-aSum-a'] += dataTable['oj-' + m + '-a'] ? parseFloat(dataTable['oj-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['oj-aSum-b'] += dataTable['oj-' + m + '-b'] ? parseFloat(dataTable['oj-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['oj-aSum-e'] += dataTable['oj-' + m + '-e'] ? parseFloat(dataTable['oj-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['ck-aSum-a'] += dataTable['ck-' + m + '-a'] ? parseFloat(dataTable['ck-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['ck-aSum-b'] += dataTable['ck-' + m + '-b'] ? parseFloat(dataTable['ck-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['ck-aSum-e'] += dataTable['ck-' + m + '-e'] ? parseFloat(dataTable['ck-' + m + '-e'].toString().replace(/,/g, '')) : 0; sumTable['cj-aSum-a'] += dataTable['cj-' + m + '-a'] ? parseFloat(dataTable['cj-' + m + '-a'].toString().replace(/,/g, '')) : 0; sumTable['cj-aSum-b'] += dataTable['cj-' + m + '-b'] ? parseFloat(dataTable['cj-' + m + '-b'].toString().replace(/,/g, '')) : 0; sumTable['cj-aSum-e'] += dataTable['cj-' + m + '-e'] ? parseFloat(dataTable['cj-' + m + '-e'].toString().replace(/,/g, '')) : 0; } //原価率 sumTable['k-hSum-d'] = sumTable['k-hSum-a'] ? Math.floor(sumTable['k-hSum-c'] / sumTable['k-hSum-a'] * 1000) / 10 : 0; sumTable['j-hSum-d'] = sumTable['j-hSum-a'] ? Math.floor(sumTable['j-hSum-c'] / sumTable['j-hSum-a'] * 1000) / 10 : 0; sumTable['k-gSum-d'] = sumTable['k-gSum-a'] ? Math.floor(sumTable['k-gSum-c'] / sumTable['k-gSum-a'] * 1000) / 10 : 0; sumTable['j-gSum-d'] = sumTable['j-gSum-a'] ? Math.floor(sumTable['j-gSum-c'] / sumTable['j-gSum-a'] * 1000) / 10 : 0; sumTable['k-aSum-d'] = sumTable['k-aSum-a'] ? Math.floor(sumTable['k-aSum-c'] / sumTable['k-aSum-a'] * 1000) / 10 : 0; sumTable['j-aSum-d'] = sumTable['j-aSum-a'] ? Math.floor(sumTable['j-aSum-c'] / sumTable['j-aSum-a'] * 1000) / 10 : 0; //利益率 sumTable['k-hSum-f'] = sumTable['k-hSum-a'] ? Math.floor(sumTable['k-hSum-e'] / sumTable['k-hSum-a'] * 1000) / 10 : 0; sumTable['j-hSum-f'] = sumTable['j-hSum-a'] ? Math.floor(sumTable['j-hSum-e'] / sumTable['j-hSum-a'] * 1000) / 10 : 0; sumTable['k-gSum-f'] = sumTable['k-gSum-a'] ? Math.floor(sumTable['k-gSum-e'] / sumTable['k-gSum-a'] * 1000) / 10 : 0; sumTable['j-gSum-f'] = sumTable['j-gSum-a'] ? Math.floor(sumTable['j-gSum-e'] / sumTable['j-gSum-a'] * 1000) / 10 : 0; sumTable['k-aSum-f'] = sumTable['k-aSum-a'] ? Math.floor(sumTable['k-aSum-e'] / sumTable['k-aSum-a'] * 1000) / 10 : 0; sumTable['j-aSum-f'] = sumTable['j-aSum-a'] ? Math.floor(sumTable['j-aSum-e'] / sumTable['j-aSum-a'] * 1000) / 10 : 0; //受注・着工の利益率 sumTable['ok-hSum-f'] = sumTable['ok-hSum-a'] ? Math.floor(sumTable['ok-hSum-e'] / sumTable['ok-hSum-a'] * 1000) / 10 : 0; sumTable['oj-hSum-f'] = sumTable['oj-hSum-a'] ? Math.floor(sumTable['oj-hSum-e'] / sumTable['oj-hSum-a'] * 1000) / 10 : 0; sumTable['ok-gSum-f'] = sumTable['ok-gSum-a'] ? Math.floor(sumTable['ok-gSum-e'] / sumTable['ok-gSum-a'] * 1000) / 10 : 0; sumTable['oj-gSum-f'] = sumTable['oj-gSum-a'] ? Math.floor(sumTable['oj-gSum-e'] / sumTable['oj-gSum-a'] * 1000) / 10 : 0; sumTable['ok-aSum-f'] = sumTable['ok-aSum-a'] ? Math.floor(sumTable['ok-aSum-e'] / sumTable['ok-aSum-a'] * 1000) / 10 : 0; sumTable['oj-aSum-f'] = sumTable['oj-aSum-a'] ? Math.floor(sumTable['oj-aSum-e'] / sumTable['oj-aSum-a'] * 1000) / 10 : 0; sumTable['ck-hSum-f'] = sumTable['ck-hSum-a'] ? Math.floor(sumTable['ck-hSum-e'] / sumTable['ck-hSum-a'] * 1000) / 10 : 0; sumTable['cj-hSum-f'] = sumTable['cj-hSum-a'] ? Math.floor(sumTable['cj-hSum-e'] / sumTable['cj-hSum-a'] * 1000) / 10 : 0; sumTable['ck-gSum-f'] = sumTable['ck-gSum-a'] ? Math.floor(sumTable['ck-gSum-e'] / sumTable['ck-gSum-a'] * 1000) / 10 : 0; sumTable['cj-gSum-f'] = sumTable['cj-gSum-a'] ? Math.floor(sumTable['cj-gSum-e'] / sumTable['cj-gSum-a'] * 1000) / 10 : 0; sumTable['ck-aSum-f'] = sumTable['ck-aSum-a'] ? Math.floor(sumTable['ck-aSum-e'] / sumTable['ck-aSum-a'] * 1000) / 10 : 0; sumTable['cj-aSum-f'] = sumTable['cj-aSum-a'] ? Math.floor(sumTable['cj-aSum-e'] / sumTable['cj-aSum-a'] * 1000) / 10 : 0; //経常利益 sumTable['k-hSum-v'] = sumTable['k-hSum-e'] - sumTable['k-hSum-u']; sumTable['j-hSum-v'] = sumTable['j-hSum-e'] - sumTable['j-hSum-u']; sumTable['k-gSum-v'] = sumTable['k-gSum-e'] - sumTable['k-gSum-u']; sumTable['j-gSum-v'] = sumTable['j-gSum-e'] - sumTable['j-gSum-u']; sumTable['k-aSum-v'] = sumTable['k-aSum-e'] - sumTable['k-aSum-u']; sumTable['j-aSum-v'] = sumTable['j-aSum-e'] - sumTable['j-aSum-u']; //BEP売上 sumTable['k-hSum-x'] = sumTable['k-hSum-f'] ? Math.floor(sumTable['k-hSum-u'] / (sumTable['k-hSum-f'] / 100)) : 0; sumTable['j-hSum-x'] = sumTable['j-hSum-f'] ? Math.floor(sumTable['j-hSum-u'] / (sumTable['j-hSum-f'] / 100)) : 0; sumTable['k-gSum-x'] = sumTable['k-gSum-f'] ? Math.floor(sumTable['k-gSum-u'] / (sumTable['k-gSum-f'] / 100)) : 0; sumTable['j-gSum-x'] = sumTable['j-gSum-f'] ? Math.floor(sumTable['j-gSum-u'] / (sumTable['j-gSum-f'] / 100)) : 0; sumTable['k-aSum-x'] = sumTable['k-aSum-f'] ? Math.floor(sumTable['k-aSum-u'] / (sumTable['k-aSum-f'] / 100)) : 0; sumTable['j-aSum-x'] = sumTable['j-aSum-f'] ? Math.floor(sumTable['j-aSum-u'] / (sumTable['j-aSum-f'] / 100)) : 0; //BEP棟数 sumTable['k-hSum-y'] = sumTable['k-hSum-x'] ? Math.floor(sumTable['k-hSum-x'] / numA2 * 10) / 10 : 0; sumTable['j-hSum-y'] = sumTable['j-hSum-x'] ? Math.floor(sumTable['j-hSum-x'] / numA2 * 10) / 10 : 0; sumTable['k-gSum-y'] = sumTable['k-gSum-x'] ? Math.floor(sumTable['k-gSum-x'] / numA2 * 10) / 10 : 0; sumTable['j-gSum-y'] = sumTable['j-gSum-x'] ? Math.floor(sumTable['j-gSum-x'] / numA2 * 10) / 10 : 0; sumTable['k-aSum-y'] = sumTable['k-aSum-x'] ? Math.floor(sumTable['k-aSum-x'] / numA2 * 10) / 10 : 0; sumTable['j-aSum-y'] = sumTable['j-aSum-x'] ? Math.floor(sumTable['j-aSum-x'] / numA2 * 10) / 10 : 0; for (j = 0; j < label.length; j++) { for (p = 0; p < prefixes.length; p++) { dataTable[prefixes[p] + '-hSum-' + label[j]] = sumTable[prefixes[p] + '-hSum-' + label[j]] ? sumTable[prefixes[p] + '-hSum-' + label[j]].toLocaleString() : ''; dataTable[prefixes[p] + '-gSum-' + label[j]] = sumTable[prefixes[p] + '-gSum-' + label[j]] ? sumTable[prefixes[p] + '-gSum-' + label[j]].toLocaleString() : ''; dataTable[prefixes[p] + '-aSum-' + label[j]] = sumTable[prefixes[p] + '-aSum-' + label[j]] ? sumTable[prefixes[p] + '-aSum-' + label[j]].toLocaleString() : ''; } } dataTable['k-hSum-d'] = dataTable['k-hSum-d'] ? dataTable['k-hSum-d'] + '%' : ''; dataTable['j-hSum-d'] = dataTable['j-hSum-d'] ? dataTable['j-hSum-d'] + '%' : ''; dataTable['k-gSum-d'] = dataTable['k-gSum-d'] ? dataTable['k-gSum-d'] + '%' : ''; dataTable['j-gSum-d'] = dataTable['j-gSum-d'] ? dataTable['j-gSum-d'] + '%' : ''; dataTable['k-aSum-d'] = dataTable['k-aSum-d'] ? dataTable['k-aSum-d'] + '%' : ''; dataTable['j-aSum-d'] = dataTable['j-aSum-d'] ? dataTable['j-aSum-d'] + '%' : ''; for (p = 0; p < prefixes.length; p++) { dataTable[prefixes[p] + '-hSum-f'] = dataTable[prefixes[p] + '-hSum-f'] ? dataTable[prefixes[p] + '-hSum-f'] + '%' : ''; dataTable[prefixes[p] + '-gSum-f'] = dataTable[prefixes[p] + '-gSum-f'] ? dataTable[prefixes[p] + '-gSum-f'] + '%' : ''; dataTable[prefixes[p] + '-aSum-f'] = dataTable[prefixes[p] + '-aSum-f'] ? dataTable[prefixes[p] + '-aSum-f'] + '%' : ''; } dataTable['tanka'] = numA.toLocaleString(); dataTable['arari'] = numB + '%'; dataTable['tsubo'] = numC + '坪'; let template = Hogan.compile($('#profitLossTable').text()); let output = template.render(dataTable); $('#output').empty(); $('#output').append(output); $.each($('.mainTable tbody td'), function (index, data) { if (data.innerText != '') { let num = parseFloat(data.innerText.toString().replace(/,|\%/g, '')); if (num < 0) { console.log(data); data.style.color = 'red'; data.style.fontWeight = 'bold'; } } }) }, error: function (data) { console.log(data); } }); } //事業所一覧を取得し、プルダウンメニューを更新 function getShopList(reqId) { let opEle = document.createElement('option'); opEle.value = '999999'; opEle.innerHTML = '--事業所を選択してください--'; if (opEle.value == reqId) opEle.setAttribute('selected', true); $('#shopSelect').append(opEle); console.log(nendo); let recordId = '214737'; let json = { 'ApiVersion': 1.1, 'ApiKey': apiKey, 'View': { 'ColumnFilterHash': { 'ClassZ': '["' + nendo + '"]', }, 'ColumnSorterHash': { 'ResultId': 'asc' } }, }; let url = 'https:///nextoffice.next-hd.co.jp/pleasanter/api/items/' + recordId + '/get'; $.ajax({ 'type': 'post', 'async': false, 'url': url, 'data': JSON.stringify(json), 'contentType': 'application/json', 'scriptCharset': 'utf-8', 'dataType': 'json', success: function (data) { console.log(data); $.each(data.Response.Data, function (index, data) { let shopName = data.ClassHash.ClassB; let shopId = data.ResultId; let opEle = document.createElement('option'); opEle.value = shopId; opEle.innerHTML = shopName; if (opEle.value == reqId) opEle.setAttribute('selected', true); $('#shopSelect').append(opEle); }); }, error: function (data) { console.log(data); } }); }