GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。 NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは 別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
492 lines
32 KiB
JavaScript
492 lines
32 KiB
JavaScript
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);
|
|
}
|
|
});
|
|
} |