20250902
This commit is contained in:
parent
3f732384c4
commit
7be1ea2631
BIN
NodeJS/Care7_old.zip
Normal file
BIN
NodeJS/Care7_old.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -176,7 +176,9 @@ $p.ex.areaBrandName = function () {
|
||||
let brand = $('#Results_Class012 option:selected').text();
|
||||
|
||||
if (area && brand) {
|
||||
$p.set($('#Results_ClassL'), area + ' ' + brand);
|
||||
if ($('#Results_ClassL').val() == '') {
|
||||
$p.set($('#Results_ClassL'), area + ' ' + brand);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -29,6 +29,13 @@ $p.ex.saveHistory = function () {
|
||||
'Results_Num051',
|
||||
'Results_Num052',
|
||||
'Results_Num053',
|
||||
'Results_Num054',
|
||||
'Results_Num055',
|
||||
'Results_Num056',
|
||||
'Results_Num057',
|
||||
'Results_Num058',
|
||||
'Results_Num059',
|
||||
'Results_Num060',
|
||||
'Results_Description200'
|
||||
];
|
||||
|
||||
|
||||
@ -315,7 +315,9 @@ $p.ex.areaBrandName = function () {
|
||||
let brand = $('#Results_Class012 option:selected').text();
|
||||
|
||||
if (area && brand) {
|
||||
$p.set($('#Results_ClassL'), area + ' ' + brand);
|
||||
if ($('#Results_ClassL').val() == '') {
|
||||
$p.set($('#Results_ClassL'), area + ' ' + brand);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -108,6 +108,8 @@ $p.ex.createIraiButton = function () {
|
||||
let allCount = $('#Results_Num051').val(); //合計項目数
|
||||
const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
|
||||
|
||||
let status = $('#Results_Status').val();
|
||||
|
||||
//依頼項目追加ボタン
|
||||
for (i = 0; i < 9; i++) {
|
||||
let j = (i + 1).toString().padStart(3, '0');
|
||||
@ -127,7 +129,8 @@ $p.ex.createIraiButton = function () {
|
||||
$('#Results_Num0' + k + 'Field').after(div1);
|
||||
|
||||
//全依頼数が10個以上の場合はボタン不可
|
||||
if (allCount >= 10) {
|
||||
//登録済み以外の場合も不可
|
||||
if (allCount >= 10 || status !== '200') {
|
||||
$('#addButton0' + k).button({
|
||||
icon: 'ui-icon-closethick',
|
||||
disabled: true
|
||||
|
||||
@ -70,7 +70,15 @@ async function createReport(templateId, recordData = [], templateType = 'xlsx')
|
||||
let col = 2;
|
||||
let ResultIdList = [];
|
||||
let uniqueIdList = [];
|
||||
let kanriNo = '';
|
||||
let customerName = '';
|
||||
for (let record of recordData) {
|
||||
//console.log('Processing record:', record);
|
||||
//管理番号
|
||||
kanriNo = record['ClassA'] || 'YYX0000-ZZ';
|
||||
//顧客名
|
||||
customerName = record['Class001'] || '顧客名不明';
|
||||
|
||||
Object.keys(record).forEach(function (key) {
|
||||
param = setValueToSheet(param, col, key, record[key]);
|
||||
if (key === 'ResultId') {
|
||||
@ -93,7 +101,7 @@ async function createReport(templateId, recordData = [], templateType = 'xlsx')
|
||||
const sheet = workbook.sheet(i.toString());
|
||||
if (sheet) {
|
||||
sheet.name(uniqueIdList[i - 1] || 'Report' + i);
|
||||
sheet.cell('B45').value(ResultIdList[i - 1] || ''); //B44セルにResultIdをセット
|
||||
sheet.cell('C46').value(ResultIdList[i - 1] || ''); //B44セルにResultIdをセット
|
||||
}
|
||||
}
|
||||
|
||||
@ -113,13 +121,14 @@ async function createReport(templateId, recordData = [], templateType = 'xlsx')
|
||||
const dateStr = now.getFullYear() + ('0' + (now.getMonth() + 1)).slice(-2) + ('0' + now.getDate()).slice(-2) +
|
||||
'_' + ('0' + now.getHours()).slice(-2) + ('0' + now.getMinutes()).slice(-2) + ('0' + now.getSeconds()).slice(-2);
|
||||
|
||||
let downloadFileName = templateName + '_' + dateStr + '.' + templateFile.Extension;
|
||||
//let downloadFileName = templateName + '_' + dateStr + '.' + templateFile.Extension;
|
||||
let downloadFileName = kanriNo + '-' + customerName + '■' + dateStr + '.' + templateFile.Extension;
|
||||
|
||||
//PDF変換APIを呼び出す
|
||||
sendExcelAndSavePdf(base64data, downloadFileName)
|
||||
.then(pdfBlob => {
|
||||
// PDF Blobをダウンロード
|
||||
saveAs(pdfBlob, downloadFileName.replace(/\.(xlsx|docx|pptx)$/, '.pdf'));
|
||||
saveAs(pdfBlob, downloadFileName.replace(/\.(xlsx|docx|pptx)$/, 'pdf'));
|
||||
});
|
||||
console.log('帳票出力が完了しました:', downloadFileName);
|
||||
$('#global-modal').remove();
|
||||
|
||||
@ -26,6 +26,43 @@ $p.ex.saveHistory = function () {
|
||||
'Results_Class199',
|
||||
'Results_Class200',
|
||||
'Results_NumZ',
|
||||
'Results_Num001',
|
||||
'Results_Num002',
|
||||
'Results_Num003',
|
||||
'Results_Num004',
|
||||
'Results_Num005',
|
||||
'Results_Num006',
|
||||
'Results_Num007',
|
||||
'Results_Num008',
|
||||
'Results_Num009',
|
||||
'Results_Num011',
|
||||
'Results_Num012',
|
||||
'Results_Num013',
|
||||
'Results_Num014',
|
||||
'Results_Num015',
|
||||
'Results_Num016',
|
||||
'Results_Num017',
|
||||
'Results_Num018',
|
||||
'Results_Num019',
|
||||
'Results_Num021',
|
||||
'Results_Num022',
|
||||
'Results_Num023',
|
||||
'Results_Num024',
|
||||
'Results_Num025',
|
||||
'Results_Num026',
|
||||
'Results_Num027',
|
||||
'Results_Num028',
|
||||
'Results_Num029',
|
||||
'Results_Num051',
|
||||
'Results_Num052',
|
||||
'Results_Num053',
|
||||
'Results_Num054',
|
||||
'Results_Num055',
|
||||
'Results_Num056',
|
||||
'Results_Num057',
|
||||
'Results_Num058',
|
||||
'Results_Num059',
|
||||
'Results_Num060',
|
||||
'Results_Description200'
|
||||
];
|
||||
|
||||
|
||||
@ -293,6 +293,8 @@ $p.ex.init = function () {
|
||||
}
|
||||
}
|
||||
|
||||
//エリア-ブランド結合
|
||||
$p.ex.areaBrandName();
|
||||
|
||||
} else {
|
||||
//スタートアップメッセージ表示
|
||||
@ -375,7 +377,6 @@ $p.ex.init = function () {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//部材リストの非表示
|
||||
//Results_CheckA のチェック状態を取得
|
||||
if ($('#Results_CheckA').prop('checked')) {
|
||||
@ -386,6 +387,96 @@ $p.ex.init = function () {
|
||||
$p.ex.changeColumnList();
|
||||
}
|
||||
|
||||
$p.ex.changeCounter = function () {
|
||||
let status = $('#Results_Status').val();
|
||||
|
||||
//ステータスごとにカウンター値を変更
|
||||
switch (status) {
|
||||
case '100': //新規登録
|
||||
$p.ex.patternCounter('new', 1);
|
||||
break;
|
||||
case '200': //登録完了
|
||||
// 登録完了
|
||||
$p.ex.patternCounter('registered', 1);
|
||||
break;
|
||||
case '300': //積算依頼
|
||||
case '400': //積算受付
|
||||
case '450': //質疑対応中
|
||||
case '500': //積算対応中
|
||||
case '510': //外部見積待ち
|
||||
case '520': //社内確認中
|
||||
case '700': //チェック中
|
||||
case '800': //積算回答
|
||||
break;
|
||||
case '900': //完了
|
||||
case '901': //依頼不要
|
||||
case '910': //保留
|
||||
case '920': //取消
|
||||
$p.ex.patternCounter('completed', 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//patternCounter
|
||||
$p.ex.patternCounter = function (mode, count) {
|
||||
|
||||
//全項目一括非表示処理
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
$('#Results_Num0' + (70 + i) + 'Field').hide();
|
||||
$('#Results_Num0' + (80 + i) + 'Field').hide();
|
||||
$('#Results_Num0' + (90 + i) + 'Field').hide();
|
||||
}
|
||||
|
||||
//パターンごとの番号
|
||||
let patternList = {
|
||||
'A': 1,
|
||||
'B': 2,
|
||||
'C': 3,
|
||||
'D': 4,
|
||||
'E': 5,
|
||||
'F': 6,
|
||||
'G': 7,
|
||||
'H': 8,
|
||||
'I': 9
|
||||
}
|
||||
|
||||
//依頼項目のパターン割り出し
|
||||
let pattern = $('#Results_Class041').val();
|
||||
|
||||
//番号取得
|
||||
let keyId = patternList[pattern];
|
||||
|
||||
let num1 = 70 + parseFloat(keyId); //新規作成Num番号
|
||||
let num2 = 80 + parseFloat(keyId); //登録完了Num番号
|
||||
let num3 = 90 + parseFloat(keyId); //依頼完了Num番号
|
||||
|
||||
//項目表示
|
||||
$('#Results_Num0' + num1 + 'Field').show();
|
||||
$('#Results_Num0' + num2 + 'Field').show();
|
||||
$('#Results_Num0' + num3 + 'Field').show();
|
||||
|
||||
|
||||
//値セット
|
||||
switch (mode) {
|
||||
case 'new':
|
||||
if ($('#Results_Num0' + num1).val() != count) {
|
||||
$p.set($('#Results_Num0' + num1), count);//新規作成
|
||||
}
|
||||
break;
|
||||
case 'registered':
|
||||
if ($('#Results_Num0' + num2).val() != count) {
|
||||
$p.set($('#Results_Num0' + num2), count);//登録完了
|
||||
}
|
||||
break;
|
||||
case 'completed':
|
||||
if ($('#Results_Num0' + num3).val() != count) {
|
||||
$p.set($('#Results_Num0' + num3), count);//依頼完了
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$p.ex.makerNothingFunction = function () {
|
||||
//ボタンを非表示
|
||||
$('#makerNothingButton').hide();
|
||||
@ -666,8 +757,19 @@ $p.ex.areaBrandName = function () {
|
||||
let area = $('#Results_Class011 option:selected').text();
|
||||
let brand = $('#Results_Class012 option:selected').text();
|
||||
|
||||
//Class049 area
|
||||
if ($('#Results_Class049').val() == '') {
|
||||
$p.set($('#Results_Class049'), area);
|
||||
}
|
||||
//Class050 brand
|
||||
if ($('#Results_Class050').val() == '') {
|
||||
$p.set($('#Results_Class050'), brand);
|
||||
}
|
||||
|
||||
if (area && brand) {
|
||||
$p.set($('#Results_ClassL'), area + ' ' + brand);
|
||||
if ($('#Results_ClassL').val() == '') {
|
||||
$p.set($('#Results_ClassL'), area + ' ' + brand);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -800,3 +902,25 @@ $p.ex.getRecordData = async function (id) {
|
||||
return resData.Response.Data[0];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
[
|
||||
{
|
||||
"SiteId": 320587,
|
||||
"SearchFormat": "[ClassI]-[ClassJ]-[ClassL]■[ClassV]-[ClassW]",
|
||||
"View": {
|
||||
"ColumnFilterExpressions": {
|
||||
"ClassA": "[@Class045]",
|
||||
"ClassB": "[@Class046]",
|
||||
"ClassC": "[@Class047]",
|
||||
"ClassD": "[@Class048]",
|
||||
"ClassV": "[@Class049]",
|
||||
"ClassW": "[@Class050]",
|
||||
},
|
||||
"ColumnSorterHash": {
|
||||
"Title": "asc"
|
||||
}
|
||||
},
|
||||
}
|
||||
]
|
||||
*/
|
||||
|
||||
@ -99,6 +99,9 @@ $p.ex.processScript = function (procNum) {
|
||||
|
||||
}
|
||||
|
||||
//プロセスカウンターの実行
|
||||
$p.ex.processCounter(procNum);
|
||||
|
||||
//プロセスの実行
|
||||
console.log(`▶Process_${procNum} : ${procName} 処理終了`);
|
||||
$p.execProcess($('#Process_' + procNum));
|
||||
@ -137,4 +140,71 @@ $p.ex.processButtonControl = function () {
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//プロセスごとにカウンターの値を調整する処理
|
||||
$p.ex.processCounter = function (procNum) {
|
||||
|
||||
switch (procNum) {
|
||||
case '1': //質疑送信
|
||||
case '2': //回答送信
|
||||
case '3': //回答確認
|
||||
case '4': //見積回答削除
|
||||
$p.ex.countSet(['54', '55']);
|
||||
break;
|
||||
case '5': //登録完了
|
||||
|
||||
break;
|
||||
case '6': //積算依頼
|
||||
$p.ex.countSet(['54']);
|
||||
break;
|
||||
case '7': //積算受付
|
||||
case '8': //積算対応
|
||||
case '9': //外部見積
|
||||
case '10': //社内確認
|
||||
case '11': //チェック
|
||||
$p.ex.countSet(['54', '56']);
|
||||
break;
|
||||
case '12': //差戻し
|
||||
$p.ex.countSet(['53', '54']);
|
||||
break;
|
||||
case '13': //積算回答
|
||||
case '14': //完了
|
||||
$p.ex.countSet(['54', '57']);
|
||||
break;
|
||||
case '15': //保留
|
||||
case '17': //e保留
|
||||
$p.ex.countSet(['54', '58']);
|
||||
break;
|
||||
case '16': //取消
|
||||
case '18': //e取消
|
||||
$p.ex.countSet(['54', '59']);
|
||||
break;
|
||||
case '19': //依頼不要
|
||||
$p.ex.countSet(['54', '60']);
|
||||
break;
|
||||
case '20': //再依頼
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//ステータス別カウント設定処理
|
||||
$p.ex.countSet = function (target = []) {
|
||||
|
||||
//初期化 対象項目をすべて0に設定
|
||||
for (c = 53; c <= 60; c++) {
|
||||
// カウント処理
|
||||
let column = '0' + c;
|
||||
$p.set($('#Results_Num' + column), 0);
|
||||
}
|
||||
|
||||
//指定項目のみ1に設定
|
||||
for (c of target) {
|
||||
let column = '0' + c;
|
||||
// カウント処理
|
||||
$p.set($('#Results_Num' + column), 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
|
||||
//スタートアップメッセージ表示
|
||||
$p.ex.startupMessage = function () {
|
||||
|
||||
let count = 0;
|
||||
for (message of messageData) {
|
||||
//2つ目以降のメッセージの際にクリアフラグを0に設定。
|
||||
@ -24,6 +25,7 @@ $p.ex.startupMessage = function () {
|
||||
case '100': //新規登録
|
||||
break;
|
||||
case '200': //登録完了
|
||||
$p.ex.popupMessage();
|
||||
break;
|
||||
case '300': //積算依頼
|
||||
break;
|
||||
@ -41,3 +43,49 @@ $p.ex.startupMessage = function () {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$p.ex.popupMessage = function () {
|
||||
let message = document.createElement('pre');
|
||||
message.textContent = "この依頼項目は登録済みです。Re②依頼票へ戻り、新しい依頼項目を登録するか、\n積算依頼を行ってください。ここをクリックするとRe②依頼票へ戻ります。";
|
||||
|
||||
// メッセージウインドウを作成
|
||||
let popup = document.createElement('div');
|
||||
popup.className = '#custom-fixed-popup';
|
||||
|
||||
// バツボタンを作成
|
||||
let closeBtn = document.createElement('button');
|
||||
closeBtn.textContent = '×';
|
||||
closeBtn.style.position = 'absolute';
|
||||
closeBtn.style.top = '0px';
|
||||
closeBtn.style.right = '0px';
|
||||
closeBtn.style.background = 'transparent';
|
||||
closeBtn.style.border = 'none';
|
||||
closeBtn.style.fontSize = '20px';
|
||||
closeBtn.style.cursor = 'pointer';
|
||||
|
||||
closeBtn.onclick = function (e) {
|
||||
e.stopPropagation();
|
||||
popup.remove();
|
||||
};
|
||||
|
||||
// クリックで指定URLにジャンプ
|
||||
popup.onclick = function () {
|
||||
let parentId = $('#Results_ClassW').val();
|
||||
if (location.hostname) {
|
||||
window.location.href = location.protocol + '//' + location.hostname + '/pleasanter/items/' + parentId;
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
// 既存の同種ウインドウがあれば削除
|
||||
let oldPopup = document.getElementById('custom-fixed-popup');
|
||||
if (oldPopup) oldPopup.remove();
|
||||
popup.id = 'custom-fixed-popup';
|
||||
|
||||
// ポジション調整
|
||||
|
||||
popup.appendChild(closeBtn);
|
||||
popup.appendChild(message);
|
||||
|
||||
document.body.appendChild(popup);
|
||||
}
|
||||
@ -61,6 +61,40 @@ $p.ex.saveHistory = function () {
|
||||
'Results_Num051',
|
||||
'Results_Num052',
|
||||
'Results_Num053',
|
||||
'Results_Num054',
|
||||
'Results_Num055',
|
||||
'Results_Num056',
|
||||
'Results_Num057',
|
||||
'Results_Num058',
|
||||
'Results_Num059',
|
||||
'Results_Num060',
|
||||
'Results_Num071',
|
||||
'Results_Num072',
|
||||
'Results_Num073',
|
||||
'Results_Num074',
|
||||
'Results_Num075',
|
||||
'Results_Num076',
|
||||
'Results_Num077',
|
||||
'Results_Num078',
|
||||
'Results_Num079',
|
||||
'Results_Num081',
|
||||
'Results_Num082',
|
||||
'Results_Num083',
|
||||
'Results_Num084',
|
||||
'Results_Num085',
|
||||
'Results_Num086',
|
||||
'Results_Num087',
|
||||
'Results_Num088',
|
||||
'Results_Num089',
|
||||
'Results_Num091',
|
||||
'Results_Num092',
|
||||
'Results_Num093',
|
||||
'Results_Num094',
|
||||
'Results_Num095',
|
||||
'Results_Num096',
|
||||
'Results_Num097',
|
||||
'Results_Num098',
|
||||
'Results_Num099',
|
||||
'Results_Description200'
|
||||
];
|
||||
|
||||
|
||||
@ -190,4 +190,20 @@ p.field-label:has(label[for="Results_Description057"]) {
|
||||
#makerNothingButton {
|
||||
font-weight: bold;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
#custom-fixed-popup {
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
right: 50px;
|
||||
left: unset;
|
||||
background: #961414ff;
|
||||
color: #ffffffff;
|
||||
font-size: 1.3em;
|
||||
padding: 8px 16px;
|
||||
border: 2px solid #000000ff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
||||
z-index: 9999;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
{
|
||||
"apiKey": "c38903157cbffc30961f50bc29d0991a6cd8af495ab3009b05c5f98e82b2e61b94ba2d5c0a48fc518b1cd74c9e427b01051a228f670f3c5282544dfbec93db87",
|
||||
"url": "https://neo999.next-hd.net/pleasanter/"
|
||||
}
|
||||
@ -0,0 +1,241 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 01_メインスクリプト
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
let pageLoading = 0;
|
||||
let apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';
|
||||
|
||||
//メッセージデータ
|
||||
let messageData = JSON.parse($('#messageData').val() || '[]');
|
||||
|
||||
//エリアデータ
|
||||
let areaData = JSON.parse($('#areaData').val() || '[]');
|
||||
|
||||
//ブランドデータ
|
||||
let brandData = JSON.parse($('#brandData').val() || '[]');
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
//初期処理
|
||||
window.addEventListener('load', function () {
|
||||
if (pageLoading == 0) {
|
||||
console.log('Window load Event');
|
||||
$p.ex.onLoad();
|
||||
}
|
||||
});
|
||||
|
||||
$p.events.on_editor_load = function () {
|
||||
if (pageLoading == 0) {
|
||||
console.log('on Editor Load');
|
||||
$p.ex.onLoad();
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
$p.ex.onLoad = function () {
|
||||
//ロード開始
|
||||
pageLoading = 1;
|
||||
|
||||
//初期処理
|
||||
$p.ex.init();
|
||||
}
|
||||
|
||||
//初期処理
|
||||
$p.ex.init = function () {
|
||||
console.log('initialize...');
|
||||
//初期化
|
||||
|
||||
//新規作成時のみ処理
|
||||
switch ($p.action()) {
|
||||
//新規作成時の処理
|
||||
case 'new':
|
||||
console.log('新規作成時の処理');
|
||||
//年度保存
|
||||
$p.ex.saveYearCode();
|
||||
|
||||
break;
|
||||
//編集時の処理
|
||||
case 'edit':
|
||||
console.log('編集時の処理');
|
||||
//スタートアップメッセージ表示
|
||||
$p.ex.startupMessage();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
console.log('共通処理');
|
||||
|
||||
//プロセスボタン調整
|
||||
$p.ex.processButtonControl();
|
||||
|
||||
//読取専用項目のTab移動抑制処理
|
||||
$('.code-readonly2 input').prop('tabindex', '-1');
|
||||
$('.code-readonly2 select').prop('tabindex', '-1');
|
||||
|
||||
}
|
||||
|
||||
//入力チェック後処理
|
||||
$p.events.after_validate = function (args) {
|
||||
//エリア-ブランド結合
|
||||
$p.ex.areaBrandName();
|
||||
//施主名 姓名結合
|
||||
$p.ex.setCustomerName();
|
||||
//担当者一覧マージ
|
||||
$p.ex.usersMarge1();
|
||||
//CC一覧マージ
|
||||
$p.ex.usersMarge2();
|
||||
//担当者・CC一覧マージ
|
||||
$p.ex.usersMarge3();
|
||||
|
||||
|
||||
//変更履歴の保存
|
||||
$p.ex.saveHistory();
|
||||
}
|
||||
|
||||
//画面更新後
|
||||
$p.events.after_set_Update = function (args) {
|
||||
console.log('画面更新後');
|
||||
//プロセスボタン調整
|
||||
$p.ex.processButtonControl();
|
||||
|
||||
//一時保存メッセージ
|
||||
let json8val = JSON.parse(args.json[8].Value);
|
||||
if (json8val.Id == 'Updated') {
|
||||
$p.ex.setMyMessage('new-status-light-lime', '基本情報の内容が一時保存されました');
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
//年度・四半期の保存
|
||||
$p.ex.saveYearCode = function () {
|
||||
let now = new Date();
|
||||
let year = parseFloat(now.getFullYear()) - 2000;
|
||||
let month = now.getMonth() + 1;
|
||||
let code;
|
||||
//年保存
|
||||
$p.set($('#Results_ClassE'), year);
|
||||
|
||||
//四半期記号
|
||||
switch (month) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
code = 'A';
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
code = 'B';
|
||||
break;
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
code = 'C';
|
||||
break;
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
code = 'D';
|
||||
break;
|
||||
}
|
||||
$p.set($('#Results_ClassF'), code); //四半期表示
|
||||
$p.set($('#Results_ClassG'), code); //四半期記号
|
||||
|
||||
}
|
||||
|
||||
//施主名 姓名結合
|
||||
$p.ex.setCustomerName = function () {
|
||||
let firstName = $('#Results_Class001').val();
|
||||
let lastName = $('#Results_Class002').val();
|
||||
let customerName = firstName + ' ' + lastName + ' 様';
|
||||
$p.set($('#Results_ClassS'), customerName);
|
||||
|
||||
//let eigyo = $('#Results_Class022').text();
|
||||
let area = $('#Results_Class011 option:selected').text();
|
||||
|
||||
//施主名+エリア名を重複チェックフラグに格納
|
||||
let flagData = firstName + lastName + '■' + area;
|
||||
|
||||
$p.set($('#Results_Class200'), flagData);
|
||||
|
||||
}
|
||||
|
||||
//エリアとブランド名を合体させて格納する
|
||||
$p.ex.areaBrandName = function () {
|
||||
//エリア名とブランド名を結合して格納
|
||||
let area = $('#Results_Class011 option:selected').text();
|
||||
let brand = $('#Results_Class012 option:selected').text();
|
||||
|
||||
if (area && brand) {
|
||||
if ($('#Results_ClassT').val() == '') {
|
||||
$p.set($('#Results_ClassT'), area + ' ' + brand);
|
||||
}
|
||||
}
|
||||
|
||||
//エリアコード・ブランドコードを取得して格納
|
||||
let areaId = $('#Results_Class011').val();
|
||||
let brandId = $('#Results_Class012').val();
|
||||
|
||||
let areaCode = areaData[areaId].areaCode;
|
||||
let brandCode = brandData[brandId].brandCode;
|
||||
|
||||
if (areaCode && brandCode) {
|
||||
$p.set($('#Results_ClassU'), areaCode);
|
||||
$p.set($('#Results_ClassV'), brandCode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//担当者一覧マージ
|
||||
$p.ex.usersMarge1 = function () {
|
||||
let users = [];
|
||||
$('#Results_Class022').val() && users.push($('#Results_Class022').val()); //主担当営業 Class022
|
||||
$('#Results_Class023').val() && users.push($('#Results_Class023').val()); //副担当営業 Class023
|
||||
$('#Results_Class024').val() && users.push($('#Results_Class024').val()); //営業設計 Class024
|
||||
$('#Results_Class025').val() && users.push($('#Results_Class025').val()); //担当監督 Class025
|
||||
$('#Results_Class026').val() && users.push($('#Results_Class026').val()); //担当IC Class026
|
||||
$('#Results_Class027').val() && users.push($('#Results_Class027').val()); //管理設計 Class027
|
||||
$('#Results_Class028').val() && users.push($('#Results_Class028').val()); //所属長 Class028
|
||||
|
||||
$p.set($('#Results_Class031'), JSON.stringify(users));
|
||||
}
|
||||
|
||||
//CC一覧マージ
|
||||
$p.ex.usersMarge2 = function () {
|
||||
let users = [];
|
||||
$('#Results_Class041').val() && users.push($('#Results_Class041').val()); //CC1
|
||||
$('#Results_Class042').val() && users.push($('#Results_Class042').val()); //CC2
|
||||
$('#Results_Class043').val() && users.push($('#Results_Class043').val()); //CC3
|
||||
$('#Results_Class044').val() && users.push($('#Results_Class044').val()); //CC4
|
||||
|
||||
$p.set($('#Results_Class032'), JSON.stringify(users));
|
||||
}
|
||||
|
||||
//担当者・CC一覧マージ
|
||||
$p.ex.usersMarge3 = function () {
|
||||
//担当者一覧とCC一覧をマージして保管
|
||||
let mergeAry = [...$('#Results_Class031').val(), ...$('#Results_Class032').val()];
|
||||
//入力者追加
|
||||
mergeAry.push($('#Results_ClassB').val());
|
||||
$p.set($('#Results_Class033'), JSON.stringify(mergeAry));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定したIDの<select>タグにプレースホルダー的な<option>を挿入する関数
|
||||
* @param {string} selectId - <select>タグのID
|
||||
*/
|
||||
function addPlaceholderOption(selectId) {
|
||||
//値が空の場合、プレースホルダー的なoptionを追加
|
||||
const val = $(`#${selectId}`).val();
|
||||
if (!val) {
|
||||
//1つ目のoptionのテキストを変更
|
||||
$(`#${selectId} option:first`).text('次から選択してください');
|
||||
|
||||
}
|
||||
//console.log($(`#${selectId}`));
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 02_MSSデータ処理
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
|
||||
//MSSからの引用データをクリア
|
||||
$p.ex.clearMSSData = function () {
|
||||
console.log('Clear MSS Data');
|
||||
|
||||
$p.set($('#Results_ClassN'), '0'); //案件状況
|
||||
$p.set($('#Results_ClassO'), ''); //契約コード
|
||||
|
||||
$p.set($('#Results_Class001'), ''); //施主・姓
|
||||
$p.set($('#Results_Class002'), ''); //施主・名
|
||||
$p.set($('#Results_Class003'), ''); //施主・姓(カナ)
|
||||
$p.set($('#Results_Class004'), ''); //施主・名(カナ)
|
||||
$p.set($('#Results_Class005'), ''); //連名
|
||||
$p.set($('#Results_Class006'), ''); //連名(カナ)
|
||||
|
||||
$p.set($('#Results_Class010'), ''); //建上地
|
||||
$p.set($('#Results_Class011'), ''); //エリア
|
||||
$p.set($('#Results_Class012'), ''); //契約ブランド
|
||||
$p.set($('#Results_Class013'), ''); //防火指定
|
||||
$p.set($('#Results_Class014'), ''); //建物種類
|
||||
|
||||
$p.set($('#Results_ClassS'), ''); //施主名
|
||||
$p.set($('#Results_ClassT'), ''); //エリアブランド
|
||||
$p.set($('#Results_ClassU'), ''); //エリア記号
|
||||
$p.set($('#Results_ClassV'), ''); //ブランド記号
|
||||
|
||||
$p.set($('#Results_Class021'), ''); //契約営業所
|
||||
$p.set($('#Results_Class022'), ''); //主担当営業
|
||||
$p.set($('#Results_Class023'), ''); //副担当営業
|
||||
$p.set($('#Results_Class024'), ''); //営業設計
|
||||
$p.set($('#Results_Class025'), ''); //担当監督
|
||||
$p.set($('#Results_Class026'), ''); //担当IC
|
||||
$p.set($('#Results_Class027'), ''); //管理設計
|
||||
$p.set($('#Results_Class028'), ''); //所属長
|
||||
|
||||
$p.set($('#Results_Date001'), ''); //承認図予定日
|
||||
$p.set($('#Results_Date002'), ''); //着工予定日
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 03_プロセス関連処理
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
//プロセスボタン調整
|
||||
$p.ex.processButtonControl = function () {
|
||||
console.log('プロセスボタン調整');
|
||||
|
||||
$("button[id^='Process']").each(function () {
|
||||
//close アイコンのボタンは非表示
|
||||
if ($(this).attr('data-icon') == 'ui-icon-close') {
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
//ui-icon-cancel アイコンのボタンはグレーアウト
|
||||
if ($(this).attr('data-icon') == 'ui-icon-cancel') {
|
||||
//グレーアウト
|
||||
$(this).addClass('new-status-grey');
|
||||
|
||||
} else {
|
||||
//その他のボタンはサイズ拡大
|
||||
$(this).addClass('processButtonSize');
|
||||
}
|
||||
|
||||
//個別設定
|
||||
switch (this.id) {
|
||||
case 'Process_1': //登録完了
|
||||
break;
|
||||
case 'Process_2': //依頼終了
|
||||
break;
|
||||
case 'Process_3': //保留
|
||||
break;
|
||||
case 'Process_4': //取消
|
||||
break;
|
||||
case 'Process_5': //依頼票登録
|
||||
break;
|
||||
case 'Process_6': //案件復帰
|
||||
break;
|
||||
case 'Process_7': //保留(営業積算)
|
||||
break;
|
||||
case 'Process_8': //取消(営業積算)
|
||||
break;
|
||||
case 'Process_9': //案件復帰(営業積算)
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 04_見積依頼処理
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
@ -0,0 +1,33 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 90_スタートメッセージ表示
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
//スタートアップメッセージ表示
|
||||
$p.ex.startupMessage = function () {
|
||||
let count = 0;
|
||||
for (message of messageData) {
|
||||
let clearFlag = 0;
|
||||
$p.ex.setMyMessage(message.colorCode, message.message, clearFlag);
|
||||
count++;
|
||||
}
|
||||
|
||||
//開いたときにステータスごとに処理
|
||||
switch ($('#Results_Status').val()) {
|
||||
case '100': //新規登録
|
||||
break;
|
||||
case '200': //登録完了
|
||||
break;
|
||||
case '900': //依頼終了
|
||||
break;
|
||||
case '910': //保留
|
||||
break;
|
||||
case '920': //取消
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 99_更新履歴保存スクリプト
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
//変更内容を保存
|
||||
$p.ex.saveHistory = function () {
|
||||
let history = '';
|
||||
let count = 0;
|
||||
|
||||
//履歴に表示しない項目リスト
|
||||
let excludeList = [
|
||||
'Results_Timestamp',
|
||||
'Results_ClassE',
|
||||
'Results_ClassF',
|
||||
'Results_ClassG',
|
||||
|
||||
'Results_ClassS',
|
||||
'Results_ClassT',
|
||||
'Results_ClassU',
|
||||
'Results_ClassV',
|
||||
|
||||
'Results_Class031',
|
||||
'Results_Class032',
|
||||
'Results_Class033',
|
||||
|
||||
'Results_Class200',
|
||||
'Results_Description200'
|
||||
];
|
||||
|
||||
if ($p.data.MainForm) {
|
||||
$p.set($('#Results_Description200'), '');
|
||||
|
||||
history = '◆ 変更内容 ◆\n';
|
||||
$.each($p.data.MainForm, function (index, val) {
|
||||
if (index.startsWith('Results')) {
|
||||
if (!excludeList.includes(index)) {
|
||||
//項目名の取得
|
||||
let colName = $('label[for="' + index + '"]').text();
|
||||
let text;
|
||||
//セレクトボックス判定
|
||||
if ($('#' + index + '.control-dropdown').length) {
|
||||
//セレクトボックス処理
|
||||
if ($('#' + index).prop("multiple")) {
|
||||
text = $('#' + index + '_ms span').eq(-1).text();
|
||||
} else {
|
||||
text = $('#' + index + ' option:selected').text();
|
||||
}
|
||||
} else if ($('#' + index + '.radio-value').length) {
|
||||
//ラジオボタン処理
|
||||
text = val != '' ? $('label[for="' + index + val + '"').text() : '';
|
||||
} else {
|
||||
//その他
|
||||
text = val;
|
||||
}
|
||||
|
||||
history += '▷ ' + colName + ' : ' + text + '\n';
|
||||
count++;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (count) {
|
||||
//console.log(history);
|
||||
$p.set($('#Results_Description200'), history);
|
||||
$p.set($('#Comments'), history);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,66 @@
|
||||
/*
|
||||
@config :next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title :01_メッセージデータ取得
|
||||
@name :01_メッセージデータ取得
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
try {
|
||||
//メッセージデータ取得
|
||||
getMessageData();
|
||||
|
||||
//エリアデータ取得
|
||||
getAreaTable();
|
||||
|
||||
//ブランドデータ取得
|
||||
getBrandTable();
|
||||
|
||||
} catch (error) {
|
||||
context.Log(error);
|
||||
}
|
||||
|
||||
//メッセージデータ取得
|
||||
function getMessageData() {
|
||||
//メッセージデータを取得
|
||||
let data = {
|
||||
"View": {
|
||||
"ColumnFilterHash": {
|
||||
"ClassA": "[\"" + model.SiteId + "\"]",
|
||||
"ClassB": model.Status
|
||||
},
|
||||
"ColumnSorterHash": {
|
||||
"ClassA": "asc",
|
||||
"ClassB": "asc",
|
||||
"NumA": "asc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let results = items.Get(326371, JSON.stringify(data));
|
||||
if (results.Length === 0) {
|
||||
context.Log('メッセージデータが見つかりませんでした。');
|
||||
return;
|
||||
}
|
||||
|
||||
let messageData = []
|
||||
for (let item of results) {
|
||||
const status = item.ClassB;
|
||||
const colorCode = item.ClassC;
|
||||
const message = item.ClassD;
|
||||
messageData.push({
|
||||
"status": status,
|
||||
"colorCode": colorCode,
|
||||
"message": message,
|
||||
});
|
||||
}
|
||||
|
||||
//取得したメッセージデータをhiddenに格納
|
||||
if (messageData.Length > 0) {
|
||||
hidden.Add('messageData', JSON.stringify(messageData));
|
||||
} else {
|
||||
context.Log('メッセージデータが見つかりませんでした。');
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
/*
|
||||
@config :next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title :02_マスターデータ取得
|
||||
@name :02_マスターデータ取得
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
//エリアテーブルからデータを取得
|
||||
function getAreaTable() {
|
||||
//エリアテーブルからデータを取得
|
||||
let results = items.Get(210699);
|
||||
if (results.Length === 0) {
|
||||
context.Log('エリアデータが見つかりませんでした。1');
|
||||
return;
|
||||
}
|
||||
|
||||
let areaData = {};
|
||||
let count = 0;
|
||||
for (let item of results) {
|
||||
const areaId = item.ResultId;
|
||||
const areaName = item.Title;
|
||||
const areaCode = item.ClassA;
|
||||
areaData[areaId] = {
|
||||
"areaId": areaId,
|
||||
"areaName": areaName,
|
||||
"areaCode": areaCode,
|
||||
};
|
||||
count++;
|
||||
}
|
||||
|
||||
//取得したエリアデータをhiddenに格納
|
||||
if (count > 0) {
|
||||
hidden.Add('areaData', JSON.stringify(areaData));
|
||||
} else {
|
||||
context.Log('エリアデータが見つかりませんでした。2');
|
||||
}
|
||||
}
|
||||
|
||||
//ブランドテーブルからデータを取得
|
||||
function getBrandTable() {
|
||||
//ブランドテーブルからデータを取得
|
||||
let results = items.Get(109100);
|
||||
if (results.Length === 0) {
|
||||
context.Log('ブランドデータが見つかりませんでした。1');
|
||||
return;
|
||||
}
|
||||
|
||||
let brandData = {};
|
||||
let count = 0;
|
||||
for (let item of results) {
|
||||
const brandId = item.ResultId;
|
||||
const brandName = item.Title;
|
||||
const brandCode = item.ClassA;
|
||||
brandData[brandId] = {
|
||||
"brandId": brandId,
|
||||
"brandName": brandName,
|
||||
"brandCode": brandCode,
|
||||
};
|
||||
count++;
|
||||
}
|
||||
|
||||
//取得したエリアデータをhiddenに格納
|
||||
if (count > 0) {
|
||||
hidden.Add('brandData', JSON.stringify(brandData));
|
||||
} else {
|
||||
context.Log('ブランドデータが見つかりませんでした。2');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,137 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 01_読み取り専用スタイル
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
label.error {
|
||||
pointer-events: none;
|
||||
z-index: 100;
|
||||
border-top: none !important;
|
||||
}
|
||||
|
||||
.code-readonly {
|
||||
pointer-events: none;
|
||||
background-color: lightgrey;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.code-readonly2,
|
||||
.code-readonly2+button,
|
||||
.code-readonly2+div.ui-icon,
|
||||
.code-readonly3,
|
||||
.code-readonly3+button,
|
||||
.code-readonly3+div.ui-icon {
|
||||
font-weight: bold;
|
||||
|
||||
&:active {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
a:not(.ui-spinner-button) {
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.code-readonly2 select,
|
||||
.code-readonly2 input,
|
||||
.code-readonly2 button.ui-multiselect,
|
||||
.code-readonly2 .control-markup,
|
||||
.code-readonly2 .ui-spinner,
|
||||
span[data-readonly="1"] {
|
||||
pointer-events: none;
|
||||
|
||||
border: dashed 1px black;
|
||||
background-color: lightgray !important;
|
||||
color: black !important;
|
||||
|
||||
.ui-spinner-input {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.code-readonly3 select,
|
||||
.code-readonly3 input,
|
||||
.code-readonly3 button.ui-multiselect,
|
||||
.code-readonly3 .control-markup,
|
||||
.code-readonly3 .ui-spinner {
|
||||
pointer-events: none;
|
||||
|
||||
border: dashed 1px black;
|
||||
|
||||
.ui-spinner-input {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
/*読取り専用のツールチップ*/
|
||||
.code-readonly2,
|
||||
.code-readonly3,
|
||||
.field-normal:has(span[data-readonly="1"]),
|
||||
.field-wide:has(span[data-readonly="1"]) {
|
||||
position: relative;
|
||||
|
||||
&:hover::after {
|
||||
content: "読取り専用です";
|
||||
position: absolute;
|
||||
left: 120px;
|
||||
top: calc(100% - 9px);
|
||||
margin-top: 4px;
|
||||
background: #00000080;
|
||||
color: #fff;
|
||||
padding: 4px 10px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
font-weight: normal !important;
|
||||
pointer-events: none;
|
||||
z-index: 9999;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
/*入力必須項目の強調表示*/
|
||||
.code-required,
|
||||
select[data-validate-required="1"],
|
||||
input[data-validate-required="1"] {
|
||||
border: double 3px #ff0000 !important;
|
||||
|
||||
&+button.ui-multiselect {
|
||||
border: double 3px #ff0000 !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*入力必須のツールチップ*/
|
||||
.field-normal:has(.code-required),
|
||||
.field-wide:has(.code-required),
|
||||
.field-normal:has(select[data-validate-required="1"]),
|
||||
.field-wide:has(select[data-validate-required="1"]),
|
||||
.field-normal:has(input[data-validate-required="1"]),
|
||||
.field-wide:has(input[data-validate-required="1"]) {
|
||||
position: relative;
|
||||
|
||||
&:hover::after {
|
||||
content: "入力必須です";
|
||||
position: absolute;
|
||||
left: 120px;
|
||||
top: calc(100% - 9px);
|
||||
margin-top: 4px;
|
||||
background: #ff000080;
|
||||
color: #fff;
|
||||
padding: 4px 10px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
font-weight: normal !important;
|
||||
pointer-events: none;
|
||||
z-index: 9999;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.error {
|
||||
border: double 3px red !important;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 02_共通スタイル
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
/*見出しサイズ*/
|
||||
.field-section {
|
||||
font-size: 1.5em !important;
|
||||
font-weight: bold !important;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/*項目の後ろの行間を少し狭める*/
|
||||
.field-normal {
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
.field-wide {
|
||||
min-height: 35px;
|
||||
padding: 0 10px 5px 0;
|
||||
}
|
||||
|
||||
/*コメントのある項目の高さだけ少し広げる*/
|
||||
div:has(.commentAdd).field-normal {
|
||||
height: 50px;
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 03_プロセスボタンの変更
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
.processButtonSize {
|
||||
font-size: 1.5em !important;
|
||||
font-weight: bold !important;
|
||||
border: 2px solid black !important;
|
||||
}
|
||||
|
||||
/*新規作成ボタン*/
|
||||
#CreateCommand {
|
||||
font-size: 1.5em !important;
|
||||
font-weight: bold !important;
|
||||
background: blue !important;
|
||||
color: white !important;
|
||||
border: 2px solid black !important;
|
||||
}
|
||||
|
||||
#Process_1 {
|
||||
background: limegreen !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
#UpdateCommand {
|
||||
display: none !important;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/*
|
||||
@config : next999.json
|
||||
@filename : ${psFileBasename}
|
||||
@title : 04_個別表示調整処理
|
||||
@name :
|
||||
@siteIds : 335018
|
||||
@siteTitles : Re①基本情報
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
/*管理番号*/
|
||||
#Results_ClassA,
|
||||
label[for="Results_ClassA"] {
|
||||
font-size: 1.5em !important;
|
||||
font-weight: bold !important;
|
||||
height: 2.2em !important;
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
{
|
||||
"apiKey": "c38903157cbffc30961f50bc29d0991a6cd8af495ab3009b05c5f98e82b2e61b94ba2d5c0a48fc518b1cd74c9e427b01051a228f670f3c5282544dfbec93db87",
|
||||
"url": "https://neo999.next-hd.net/pleasanter/"
|
||||
}
|
||||
@ -338,6 +338,11 @@ $p.ex.processScript = function (procNum) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case '17':
|
||||
console.log('Process_' + procNum + ' Activate');
|
||||
$p.ex.getMyData(); // 自身のデータを取得し、ISO管理へデータを控えを送る処理
|
||||
$p.execProcess($('#Process_' + procNum));
|
||||
break;
|
||||
//default ---------------------------------
|
||||
default:
|
||||
flag = false;
|
||||
|
||||
@ -67,33 +67,33 @@ $p.events.before_set_Update = function () {
|
||||
//MSSの危険負担費の更新
|
||||
//稟議集計テーブルへのデータ計上
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$p.ex.chechMembers = function () {
|
||||
|
||||
//②以降 部署が空欄の場合は社員を空欄に変更
|
||||
$('#Results_Class142').val() == '' && $p.set($('#Results_Class152'), '');
|
||||
$('#Results_Class143').val() == '' && $p.set($('#Results_Class153'), '');
|
||||
$('#Results_Class144').val() == '' && $p.set($('#Results_Class154'), '');
|
||||
$('#Results_Class145').val() == '' && $p.set($('#Results_Class155'), '');
|
||||
$('#Results_Class146').val() == '' && $p.set($('#Results_Class156'), '');
|
||||
$('#Results_Class147').val() == '' && $p.set($('#Results_Class157'), '');
|
||||
$('#Results_Class148').val() == '' && $p.set($('#Results_Class158'), '');
|
||||
$('#Results_Class149').val() == '' && $p.set($('#Results_Class159'), '');
|
||||
$('#Results_Class150').val() == '' && $p.set($('#Results_Class160'), '');
|
||||
if ($('#Results_Class142').attr('data-readonly') != '1') {
|
||||
//②以降 部署が空欄の場合は社員を空欄に変更
|
||||
$('#Results_Class142').val() == '' && $p.set($('#Results_Class152'), '');
|
||||
$('#Results_Class143').val() == '' && $p.set($('#Results_Class153'), '');
|
||||
$('#Results_Class144').val() == '' && $p.set($('#Results_Class154'), '');
|
||||
$('#Results_Class145').val() == '' && $p.set($('#Results_Class155'), '');
|
||||
$('#Results_Class146').val() == '' && $p.set($('#Results_Class156'), '');
|
||||
$('#Results_Class147').val() == '' && $p.set($('#Results_Class157'), '');
|
||||
$('#Results_Class148').val() == '' && $p.set($('#Results_Class158'), '');
|
||||
$('#Results_Class149').val() == '' && $p.set($('#Results_Class159'), '');
|
||||
$('#Results_Class150').val() == '' && $p.set($('#Results_Class160'), '');
|
||||
|
||||
//②以降 社員が空欄の場合は部署を空欄に変更
|
||||
$('#Results_Class152').val() == '' && $p.set($('#Results_Class142'), '');
|
||||
$('#Results_Class153').val() == '' && $p.set($('#Results_Class143'), '');
|
||||
$('#Results_Class154').val() == '' && $p.set($('#Results_Class144'), '');
|
||||
$('#Results_Class155').val() == '' && $p.set($('#Results_Class145'), '');
|
||||
$('#Results_Class156').val() == '' && $p.set($('#Results_Class146'), '');
|
||||
$('#Results_Class157').val() == '' && $p.set($('#Results_Class147'), '');
|
||||
$('#Results_Class158').val() == '' && $p.set($('#Results_Class148'), '');
|
||||
$('#Results_Class159').val() == '' && $p.set($('#Results_Class149'), '');
|
||||
$('#Results_Class160').val() == '' && $p.set($('#Results_Class150'), '');
|
||||
//②以降 社員が空欄の場合は部署を空欄に変更
|
||||
$('#Results_Class152').val() == '' && $p.set($('#Results_Class142'), '');
|
||||
$('#Results_Class153').val() == '' && $p.set($('#Results_Class143'), '');
|
||||
$('#Results_Class154').val() == '' && $p.set($('#Results_Class144'), '');
|
||||
$('#Results_Class155').val() == '' && $p.set($('#Results_Class145'), '');
|
||||
$('#Results_Class156').val() == '' && $p.set($('#Results_Class146'), '');
|
||||
$('#Results_Class157').val() == '' && $p.set($('#Results_Class147'), '');
|
||||
$('#Results_Class158').val() == '' && $p.set($('#Results_Class148'), '');
|
||||
$('#Results_Class159').val() == '' && $p.set($('#Results_Class149'), '');
|
||||
$('#Results_Class160').val() == '' && $p.set($('#Results_Class150'), '');
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@ -103,16 +103,31 @@ $p.ex.calcMoney = function () {
|
||||
//人数(申請者分1名固定)
|
||||
let members_Count = 1;
|
||||
|
||||
//②以降 社員が空欄の場合は部署を空欄に変更
|
||||
$('#Results_Class152').val() != '' && members_Count++;
|
||||
$('#Results_Class153').val() != '' && members_Count++;
|
||||
$('#Results_Class154').val() != '' && members_Count++;
|
||||
$('#Results_Class155').val() != '' && members_Count++;
|
||||
$('#Results_Class156').val() != '' && members_Count++;
|
||||
$('#Results_Class157').val() != '' && members_Count++;
|
||||
$('#Results_Class158').val() != '' && members_Count++;
|
||||
$('#Results_Class159').val() != '' && members_Count++;
|
||||
$('#Results_Class160').val() != '' && members_Count++;
|
||||
if ($('#Results_Class152').attr('data-readonly')) {
|
||||
$('#Results_Class152').text() != '' && members_Count++;
|
||||
$('#Results_Class153').text() != '' && members_Count++;
|
||||
$('#Results_Class154').text() != '' && members_Count++;
|
||||
$('#Results_Class155').text() != '' && members_Count++;
|
||||
$('#Results_Class156').text() != '' && members_Count++;
|
||||
$('#Results_Class157').text() != '' && members_Count++;
|
||||
$('#Results_Class158').text() != '' && members_Count++;
|
||||
$('#Results_Class159').text() != '' && members_Count++;
|
||||
$('#Results_Class160').text() != '' && members_Count++;
|
||||
|
||||
} else {
|
||||
//②以降 社員が空欄の場合は部署を空欄に変更
|
||||
$('#Results_Class152').val() != '' && members_Count++;
|
||||
$('#Results_Class153').val() != '' && members_Count++;
|
||||
$('#Results_Class154').val() != '' && members_Count++;
|
||||
$('#Results_Class155').val() != '' && members_Count++;
|
||||
$('#Results_Class156').val() != '' && members_Count++;
|
||||
$('#Results_Class157').val() != '' && members_Count++;
|
||||
$('#Results_Class158').val() != '' && members_Count++;
|
||||
$('#Results_Class159').val() != '' && members_Count++;
|
||||
$('#Results_Class160').val() != '' && members_Count++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//販売金額(税別)を人数で按分して計上
|
||||
let money = parseFloat($('#Results_NumZ').val().toString().replaceAll(/[¥,]/g, ''));
|
||||
@ -341,6 +356,17 @@ $p.ex.processScript = function (procNum) {
|
||||
|
||||
$p.execProcess($('#Process_' + procNum));
|
||||
}
|
||||
break;
|
||||
case '6':
|
||||
console.log('Process_' + procNum + ' Activate');
|
||||
flag = window.confirm('部署担当者別に再計上します。宜しいですか?');
|
||||
//ISO集計へデータを飛ばす
|
||||
if (flag) {
|
||||
$p.ex.getMyData();
|
||||
$p.ex.updateSummaryData(myData);
|
||||
$p.execProcess($('#Process_' + procNum));
|
||||
}
|
||||
|
||||
break;
|
||||
//default ---------------------------------
|
||||
default:
|
||||
@ -372,6 +398,7 @@ $p.ex.getMyData = function () {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
$p.ex.updateSummaryData = function (myData) {
|
||||
let userList = [];
|
||||
|
||||
@ -379,6 +406,7 @@ $p.ex.updateSummaryData = function (myData) {
|
||||
let numQ = parseFloat($('#Results_NumQ').val().toString().replaceAll(/[¥,]/g, ''));
|
||||
|
||||
//$('#Results_Class151').val() != '' && userList.push($('#Results_Class151').val());
|
||||
|
||||
$('#Results_Class152').val() != '' && userList.push($('#Results_Class152').val());
|
||||
$('#Results_Class153').val() != '' && userList.push($('#Results_Class153').val());
|
||||
$('#Results_Class154').val() != '' && userList.push($('#Results_Class154').val());
|
||||
@ -412,10 +440,93 @@ $p.ex.updateSummaryData = function (myData) {
|
||||
$('#Results_Class160').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class150').val(), $('#Results_Class160').val(), numQ);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
$p.ex.updateSummaryData = function (myData) {
|
||||
let userList = [];
|
||||
|
||||
let numP = parseFloat($('#Results_NumP').val().toString().replaceAll(/[¥,]/g, ''));
|
||||
let numQ = parseFloat($('#Results_NumQ').val().toString().replaceAll(/[¥,]/g, ''));
|
||||
|
||||
|
||||
if ($('#Results_Class142').attr('data-readonly') == '1') {
|
||||
myData.ClassHash.Class152 != '' && userList.push(myData.ClassHash.Class152);
|
||||
myData.ClassHash.Class153 != '' && userList.push(myData.ClassHash.Class153);
|
||||
myData.ClassHash.Class154 != '' && userList.push(myData.ClassHash.Class154);
|
||||
myData.ClassHash.Class155 != '' && userList.push(myData.ClassHash.Class155);
|
||||
myData.ClassHash.Class156 != '' && userList.push(myData.ClassHash.Class156);
|
||||
myData.ClassHash.Class157 != '' && userList.push(myData.ClassHash.Class157);
|
||||
myData.ClassHash.Class158 != '' && userList.push(myData.ClassHash.Class158);
|
||||
myData.ClassHash.Class159 != '' && userList.push(myData.ClassHash.Class159);
|
||||
myData.ClassHash.Class160 != '' && userList.push(myData.ClassHash.Class160);
|
||||
|
||||
//申請部署、申請者
|
||||
$p.ex.updateSummary(myData.ClassHash.Class141, myData.ClassHash.Class151, numP);
|
||||
|
||||
//関連部署・関連社員
|
||||
myData.ClassHash.Class152 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class142, myData.ClassHash.Class152, numQ);
|
||||
myData.ClassHash.Class153 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class143, myData.ClassHash.Class153, numQ);
|
||||
myData.ClassHash.Class154 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class144, myData.ClassHash.Class154, numQ);
|
||||
myData.ClassHash.Class155 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class145, myData.ClassHash.Class155, numQ);
|
||||
myData.ClassHash.Class156 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class146, myData.ClassHash.Class156, numQ);
|
||||
myData.ClassHash.Class157 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class147, myData.ClassHash.Class157, numQ);
|
||||
myData.ClassHash.Class158 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class148, myData.ClassHash.Class158, numQ);
|
||||
myData.ClassHash.Class159 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class149, myData.ClassHash.Class159, numQ);
|
||||
myData.ClassHash.Class160 != '' &&
|
||||
$p.ex.updateSummary(myData.ClassHash.Class150, myData.ClassHash.Class160, numQ);
|
||||
|
||||
} else {
|
||||
$('#Results_Class152').val() != '' && userList.push($('#Results_Class152').val());
|
||||
$('#Results_Class153').val() != '' && userList.push($('#Results_Class153').val());
|
||||
$('#Results_Class154').val() != '' && userList.push($('#Results_Class154').val());
|
||||
$('#Results_Class155').val() != '' && userList.push($('#Results_Class155').val());
|
||||
$('#Results_Class156').val() != '' && userList.push($('#Results_Class156').val());
|
||||
$('#Results_Class157').val() != '' && userList.push($('#Results_Class157').val());
|
||||
$('#Results_Class158').val() != '' && userList.push($('#Results_Class158').val());
|
||||
$('#Results_Class159').val() != '' && userList.push($('#Results_Class159').val());
|
||||
$('#Results_Class160').val() != '' && userList.push($('#Results_Class160').val());
|
||||
|
||||
//申請部署、申請者
|
||||
$p.ex.updateSummary($('#Results_Class141').val(), $('#Results_Class151').val(), numP);
|
||||
|
||||
//関連部署・関連社員
|
||||
$('#Results_Class152').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class142').val(), $('#Results_Class152').val(), numQ);
|
||||
$('#Results_Class153').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class143').val(), $('#Results_Class153').val(), numQ);
|
||||
$('#Results_Class154').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class144').val(), $('#Results_Class154').val(), numQ);
|
||||
$('#Results_Class155').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class145').val(), $('#Results_Class155').val(), numQ);
|
||||
$('#Results_Class156').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class146').val(), $('#Results_Class156').val(), numQ);
|
||||
$('#Results_Class157').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class147').val(), $('#Results_Class157').val(), numQ);
|
||||
$('#Results_Class158').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class148').val(), $('#Results_Class158').val(), numQ);
|
||||
$('#Results_Class159').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class149').val(), $('#Results_Class159').val(), numQ);
|
||||
$('#Results_Class160').val() != '' &&
|
||||
$p.ex.updateSummary($('#Results_Class150').val(), $('#Results_Class160').val(), numQ);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$p.ex.updateSummary = function (busyo, user, money) {
|
||||
//console.log(myData);
|
||||
console.log('Update Summary:' + busyo);
|
||||
console.log('Update Summary:' + user);
|
||||
console.log('Update Summary:' + money);
|
||||
|
||||
let classHash = {
|
||||
'ClassA': myData.ClassHash.ClassA, //稟議コード
|
||||
@ -423,11 +534,11 @@ $p.ex.updateSummary = function (busyo, user, money) {
|
||||
'ClassB': busyo, //該当部署
|
||||
'ClassC': user, //該当社員
|
||||
'ClassD': areaList[busyo].areaName, //稟議内容
|
||||
'ClassI': $('#Results_Class105').val(), //計上年
|
||||
'ClassJ': $('#Results_Class106').val(), //計上月
|
||||
'ClassK': $('#Results_Class107').val(), //計上年月
|
||||
'ClassO': $('#Results_Class110').val(), //稟議項目
|
||||
'ClassP': $('#Results_Class111').val(), //稟議の原因
|
||||
'ClassI': $('#Results_Class105').attr('data-readonly') ? myData.ClassHash.Class105 : $('#Results_Class105').val(), //計上年
|
||||
'ClassJ': $('#Results_Class106').attr('data-readonly') ? myData.ClassHash.Class106 : $('#Results_Class106').val(), //計上月
|
||||
'ClassK': $('#Results_Class107').attr('data-readonly') ? myData.ClassHash.Class107 : $('#Results_Class107').val(), //計上年月
|
||||
'ClassO': $('#Results_Class110').attr('data-readonly') ? myData.ClassHash.Class110 : $('#Results_Class110').val(), //稟議項目
|
||||
'ClassP': $('#Results_Class111').attr('data-readonly') ? myData.ClassHash.Class111 : $('#Results_Class111').val(), //稟議の原因
|
||||
'Class100': $p.id(), //ISO稟議管理レコードID
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user