20250718
This commit is contained in:
parent
4ff6e12165
commit
5ecf58a26e
Binary file not shown.
Binary file not shown.
@ -119,4 +119,40 @@ $p.ex.processButtonControl = function () {
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//指定したサイトIDの子テーブルのステータスとコメントを変更する
|
||||
$p.ex.changeChildTable = async function (siteId, statusId, comment) {
|
||||
|
||||
//プリザンターへゲット処理
|
||||
const url = 'https://' + location.hostname + '/pleasanter/api/items/' + siteId + '/bulkupsert'
|
||||
const thisId = $p.id();
|
||||
const json = {
|
||||
'ApiVersion': 1.1,
|
||||
'ApiKey': apiKey,
|
||||
'Keys': [
|
||||
'ClassX'
|
||||
],
|
||||
'KeyNotFoundCreate': false,
|
||||
'Data': [
|
||||
{
|
||||
'ClassHash': {
|
||||
'Status': statusId,
|
||||
'ClassX': thisId,
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
const res = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(json)
|
||||
});
|
||||
|
||||
const resData = await res.json();
|
||||
//console.log(resData);
|
||||
return resData.Response.Data[0];
|
||||
|
||||
}
|
||||
@ -33,7 +33,7 @@ function getMessageData() {
|
||||
}
|
||||
|
||||
let results = items.Get(326371, JSON.stringify(data));
|
||||
if (results.length === 0) {
|
||||
if (results.Length === 0) {
|
||||
context.Log('メッセージデータが見つかりませんでした。');
|
||||
return;
|
||||
}
|
||||
@ -51,7 +51,7 @@ function getMessageData() {
|
||||
}
|
||||
|
||||
//取得したメッセージデータをhiddenに格納
|
||||
if (messageData.length > 0) {
|
||||
if (messageData.Length > 0) {
|
||||
hidden.Add('messageData', JSON.stringify(messageData));
|
||||
} else {
|
||||
context.Log('メッセージデータが見つかりませんでした。');
|
||||
|
||||
@ -215,8 +215,14 @@ $p.ex.createReportButton = function () {
|
||||
});
|
||||
}
|
||||
|
||||
//tbody行数をカウント
|
||||
let count = 0;
|
||||
|
||||
//tbody行処理
|
||||
$table.find('tbody tr').each(function () {
|
||||
count++;
|
||||
|
||||
//行が空でない場合のみ処理
|
||||
const $row = $(this);
|
||||
const $firstTd = $row.find('td').first();
|
||||
const value = $firstTd.text().trim();
|
||||
@ -254,23 +260,26 @@ $p.ex.createReportButton = function () {
|
||||
$headerCb.prop('checked', !$headerCb.prop('checked')).trigger('change');
|
||||
});
|
||||
|
||||
//帳票出力ボタンを追加
|
||||
const $reportBtn = $('<button id="no3-report-btn" style="padding:5px !important; font-size:1.5em;">帳票出力</button>');
|
||||
$reportBtn.button();
|
||||
$table.after($('<div style="margin-top:5px; text-align:right;"></div>').append($reportBtn));
|
||||
//メッセージ表示
|
||||
if (count > 0) {
|
||||
//帳票出力ボタンを追加
|
||||
const $reportBtn = $('<button id="no3-report-btn" style="padding:5px !important; font-size:1.5em;">帳票出力</button>');
|
||||
$reportBtn.button();
|
||||
$table.after($('<div style="margin-top:5px; text-align:right;"></div>').append($reportBtn));
|
||||
|
||||
//帳票出力ボタンのクリックイベントに関数を紐付け
|
||||
$('#no3-report-btn').on('click', function () {
|
||||
//ここで取得した値を利用してレポート出力処理を実行
|
||||
if (confirm('依頼項目の帳票を出力しますか?')) {
|
||||
$p.ex.getCheckedReportValues();
|
||||
}
|
||||
//帳票出力ボタンのクリックイベントに関数を紐付け
|
||||
$('#no3-report-btn').on('click', function () {
|
||||
//ここで取得した値を利用してレポート出力処理を実行
|
||||
if (confirm('依頼項目の帳票を出力しますか?')) {
|
||||
$p.ex.getCheckedReportValues();
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
const $reportMesssage = $('<div id="no3-report-message" style="color: red; font-weight: bold;"> ▲チェックした依頼項目をまとめて帳票に出力できます(1回上限10個まで)▼</div>');
|
||||
$table.after($reportMesssage);
|
||||
|
||||
const $reportMesssage = $('<div id="no3-report-message" style="color: red; font-weight: bold;"> ▲チェックした依頼項目がまとめて帳票に出力されます▼</div>');
|
||||
$table.after($reportMesssage);
|
||||
}
|
||||
}
|
||||
|
||||
$p.ex.getCheckedReportValues = async function () {
|
||||
|
||||
@ -30,6 +30,7 @@ async function createReport(templateId, recordData = [], templateType = 'xlsx')
|
||||
|
||||
//XlsPopulate Workbookを作成
|
||||
let workbook = await XlsxPopulate.fromDataAsync(templateBinary);
|
||||
|
||||
//paramシート取得
|
||||
let param = workbook.sheet('param');
|
||||
if (!param) {
|
||||
@ -39,13 +40,30 @@ async function createReport(templateId, recordData = [], templateType = 'xlsx')
|
||||
|
||||
//レコードデータを取得
|
||||
let col = 2;
|
||||
let ResultIdList = [];
|
||||
let uniqueIdList = [];
|
||||
for (let record of recordData) {
|
||||
Object.keys(record).forEach(function (key) {
|
||||
param = setValueToSheet(param, col, key, record[key]);
|
||||
if (key === 'ResultId') {
|
||||
ResultIdList.push(record[key]);
|
||||
}
|
||||
|
||||
if (key === 'ClassC') {
|
||||
uniqueIdList.push(record[key]);
|
||||
}
|
||||
});
|
||||
col++;
|
||||
}
|
||||
|
||||
console.log('ResultIdList:', ResultIdList);
|
||||
console.log('uniqueIdList:', uniqueIdList);
|
||||
|
||||
for(let i = 0; i < ResultIdList.length; i++) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
const blob = await workbook.outputAsync();
|
||||
//return blob;
|
||||
|
||||
|
||||
@ -133,7 +133,7 @@ function getMessageData() {
|
||||
}
|
||||
|
||||
let results = items.Get(326371, JSON.stringify(data));
|
||||
if (results.length === 0) {
|
||||
if (results.Length === 0) {
|
||||
context.Log('メッセージデータが見つかりませんでした。');
|
||||
return;
|
||||
}
|
||||
@ -151,7 +151,7 @@ function getMessageData() {
|
||||
}
|
||||
|
||||
//取得したメッセージデータをhiddenに格納
|
||||
if (messageData.length > 0) {
|
||||
if (messageData.Length > 0) {
|
||||
hidden.Add('messageData', JSON.stringify(messageData));
|
||||
} else {
|
||||
context.Log('メッセージデータが見つかりませんでした。');
|
||||
|
||||
@ -192,7 +192,7 @@ function getMessageData() {
|
||||
}
|
||||
|
||||
let results = items.Get(326371, JSON.stringify(data));
|
||||
if (results.length === 0) {
|
||||
if (results.Length === 0) {
|
||||
//context.Log('メッセージデータが見つかりませんでした。');
|
||||
return;
|
||||
}
|
||||
@ -210,7 +210,7 @@ function getMessageData() {
|
||||
}
|
||||
|
||||
//取得したメッセージデータをhiddenに格納
|
||||
if (messageData.length > 0) {
|
||||
if (messageData.Length > 0) {
|
||||
hidden.Add('messageData', JSON.stringify(messageData));
|
||||
} else {
|
||||
//context.Log('メッセージデータが見つかりませんでした。');
|
||||
|
||||
@ -48,8 +48,8 @@ let templateFiles = {
|
||||
|
||||
};
|
||||
|
||||
//let userList = {};
|
||||
let userList = $('#userList').length > 0 ? JSON.parse($('#userList').val()) : {};
|
||||
let userList = {};
|
||||
//let userList = $('#userList').length > 0 ? JSON.parse($('#userList').val()) : {};
|
||||
|
||||
let syukyaku = {};
|
||||
let tenpoList = {};
|
||||
@ -142,8 +142,8 @@ function onLoad() {
|
||||
|
||||
houjinCheck2();
|
||||
|
||||
getUserList(0);
|
||||
|
||||
//getUserList(0);
|
||||
flag = 0;
|
||||
createShiharaiGrid();
|
||||
createMitsumoriGrid();
|
||||
@ -248,6 +248,7 @@ function getKeiyakuCodeData() {
|
||||
}
|
||||
|
||||
function getTenpoTable() {
|
||||
/*
|
||||
$p.apiGet({
|
||||
'id': '96243',
|
||||
'data': {
|
||||
@ -266,6 +267,53 @@ function getTenpoTable() {
|
||||
|
||||
},
|
||||
});
|
||||
*/
|
||||
|
||||
let tenpoListStr = $('#tenpoList').length > 0 ? JSON.parse($('#tenpoList').val()) : [];
|
||||
|
||||
for (tenpo of tenpoListStr) {
|
||||
tenpoList[tenpo.ResultId] = {
|
||||
'ResultId': tenpo.ResultId,
|
||||
'ShopName': tenpo.ShopName,
|
||||
'ShopName0': tenpo.ShopName0,
|
||||
'QRFile': tenpo.QRFile,
|
||||
'QRGuid': tenpo.QRGuid,
|
||||
}
|
||||
}
|
||||
|
||||
if ($('#Results_ClassF').val()) {
|
||||
let tenpoId = $('#Results_ClassF').val();
|
||||
if (tenpoList[tenpoId]) {
|
||||
console.log(tenpoList[tenpoId]);
|
||||
let guid = tenpoList[tenpoId].QRGuid;
|
||||
|
||||
if (guid) {
|
||||
let downloadUrl = '/pleasanter/binaries/' + guid + '/download';
|
||||
let button = document.createElement('button');
|
||||
button.type = 'button';
|
||||
button.id = 'openQRCodeFile';
|
||||
button.innerHTML = 'Google口コミQRコードDL';
|
||||
button.setAttribute('onclick', 'window.open("' + downloadUrl + '", "_blank")');
|
||||
button.style.margin = '5px';
|
||||
|
||||
$('#reportButtons').append(button);
|
||||
$('#openQRCodeFile').button({
|
||||
icon: 'ui-icon-image'
|
||||
});
|
||||
} else {
|
||||
console.log('QRコードファイルがありません。');
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
console.log('該当する店舗IDがありません。');
|
||||
|
||||
}
|
||||
} else {
|
||||
console.log('店舗IDが設定されていません。');
|
||||
}
|
||||
|
||||
//console.log(tenpoList);
|
||||
}
|
||||
|
||||
//添付ファイル入力欄にコメントを追加する汎用関数
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
@siteTitles : ★マスターシート
|
||||
@disabled: false
|
||||
*/
|
||||
|
||||
let myData;
|
||||
let arariData;
|
||||
|
||||
@ -373,6 +372,8 @@ function customizeReport(guid, templateName) {
|
||||
workbook.sheet('param').cell('C18').value(data003.ClassHash.ClassF);
|
||||
workbook.sheet('param').cell('C19').value(eigyo1);
|
||||
|
||||
workbook.sheet('param').cell('C20').value(keiyakuDateStr);
|
||||
|
||||
break;
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
//4.御提案書
|
||||
|
||||
@ -10,11 +10,14 @@
|
||||
|
||||
try {
|
||||
//context.Log('汎用ユーザーリスト取得スクリプトを実行します。');
|
||||
getUserList();
|
||||
//getUserList();
|
||||
|
||||
//自分のデータの取得取得
|
||||
//getMyData();
|
||||
|
||||
//店舗リストの取得
|
||||
getTenpoList()
|
||||
|
||||
} catch (error) {
|
||||
context.Log(error);
|
||||
}
|
||||
@ -57,4 +60,49 @@ function getMyData() {
|
||||
|
||||
//context.Log($ps.JSON.stringify(model));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getTenpoList() {
|
||||
let data = {
|
||||
"View": {
|
||||
"ColumnSorterHash": {
|
||||
"ClassI": "asc",
|
||||
"Title": "asc",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let results = items.Get(96243, JSON.stringify(data));
|
||||
context.Log(`取得した店舗の件数: ${results.Length}`);
|
||||
|
||||
if (results.Length === 0) {
|
||||
context.Log('店舗データが見つかりませんでした。1');
|
||||
return;
|
||||
}
|
||||
|
||||
let tenpoList = []
|
||||
for (let item of results) {
|
||||
let QRFile = '';
|
||||
let QRGuid = '';
|
||||
for (let file of item.AttachmentsA) {
|
||||
//context.Log(`添付ファイル名: ${file.Name}`);
|
||||
QRFile = file.Name;
|
||||
QRGuid = file.Guid;
|
||||
}
|
||||
tenpoList.push({
|
||||
'ResultId': item.ResultId,
|
||||
'ShopName0': item.Title,
|
||||
'ShopName': item.ClassT,
|
||||
'QRFile': QRFile,
|
||||
'QRGuid': QRGuid,
|
||||
});
|
||||
}
|
||||
|
||||
//取得したメッセージデータをhiddenに格納
|
||||
if (tenpoList.length > 0) {
|
||||
hidden.Add('tenpoList', JSON.stringify(tenpoList));
|
||||
} else {
|
||||
context.Log('店舗データが見つかりませんでした。2');
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/10.銀行提出用総額_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/10.銀行提出用総額_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/11.御確認書_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/11.御確認書_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/12.追加変更工事契約書.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/12.追加変更工事契約書.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/19.ハウスジーメン確認シートv2.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/19.ハウスジーメン確認シートv2.xlsx
Normal file
Binary file not shown.
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/20.契約日スケジュール.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/20.契約日スケジュール.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/21.契約時書類チェックシート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/21.契約時書類チェックシート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/22.プランチェック依頼書.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/22.プランチェック依頼書.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/25.敷地調査報告書.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/25.敷地調査報告書.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/26.敷地写真図テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/26.敷地写真図テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/27.委任状.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/27.委任状.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/3.請負代金内訳書_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/3.請負代金内訳書_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/4.御提案書_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/4.御提案書_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/5.振込案内_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/5.振込案内_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/6.ポイントクラブ初回登録.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/6.ポイントクラブ初回登録.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/6b.ポイントクラブ登録案内.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/6b.ポイントクラブ登録案内.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/7.約款口座_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/7.約款口座_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/A建物工事見積書_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/A建物工事見積書_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/B建物工事見積書_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/B建物工事見積書_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/C付帯工事見積書_テンプレート.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/C付帯工事見積書_テンプレート.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/画像掲載承諾書.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/画像掲載承諾書.xlsx
Normal file
Binary file not shown.
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/粗利益確認書.xlsx
Normal file
BIN
pleasanter/develop/★MSS/★マスターシート/帳票テンプレート/粗利益確認書.xlsx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user