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>
5.2 KiB
5.2 KiB
別記資料 スクリプト(Scripts)全文 (18/28)
/*
@config :
@filename : 03_質疑応答スクリプト.js
@title : 03_質疑応答スクリプト
@name :
@siteIds :
@siteTitles : 問合せ内容管理
@disabled: false
*/
//----------------------------------------------------------------------
//質疑応答機能:configs\参考ソース\■3_310405_Re③依頼項目\sites\scripts\03_質疑応答スクリプト.js を
//本サイト(335411)の既存予約項目(Description075/076/071、Num071/072、Class071/075/077、Date073/074、
//Attachments071/072)に合わせて移植・拡張したもの。
//
//項目対応(参照元 → 本サイト)
// Description131(質疑入力欄) → Description075「質疑内容」
// Description132(回答入力欄) → Description076「回答内容」
// Description135(ログ保存用) → Description071「質疑回答データ保存用」
// Num131/132(質疑回数/回答回数) → Num071/Num072
// Class131(質疑回答ステータス0-3) → Class071(選択肢の値・色分けとも参照元と一致)
// Attachments131/132 → Attachments071/072
//
//本サイトにのみ存在し参照元スクリプトにはなかった項目は、下記の想定で組み込んでいます(要確認)。
// Class075「質疑回答送信者」 :質疑または回答を送信した本人の氏名を、送信のたびに上書き記録
// Class077「質疑送付先」 :質疑送信時に選択した宛先ユーザーを、ログの表示にのみ利用(通知メール送信は未実装)
// Date073「質疑回答期日」 :質疑送信時に、$p.getHolidayTable()と同じ祝日データ(HolidaysList)を使って
// 土日祝を除く5営業日後を自動計算して設定
// Date074「営業積算確認日」 :営業積算課が回答内容を確認した際(営業積算確認プロセス実行時)に本日日付を設定
//
//回答送信ボタンの表示自体はProcess「回答送信」側のView条件(ClassC:["Own"])でサーバー側に強制されている
//(ClassC=依頼者本人のみ実行可)。processScript側にも念のため同じ判定を残している
//(processScript本体は04_プロセス処理スクリプト.jsへ統合済み。プロセスボタン共通ディスパッチャは
// 1ファイルに1つしか定義できないため、19プロセス全件を扱う04側へ集約し、本ファイルには
// saveQuestionMessage等の実処理関数のみを残す構成にしている)。
//----------------------------------------------------------------------
//営業積算課からの質疑を保存
$p.ex.saveQuestionMessage = function () {
let message = $('#Results_Description075').val();
let userName = $p.userName();
let now = new Date();
let nowStr = now.getFullYear() + '/' + (now.getMonth() + 1).toString().padStart(2, '0') + '/' + now.getDate().toString().padStart(2, '0') + ' ' +
now.getHours().toString().padStart(2, '0') + ':' + now.getMinutes().toString().padStart(2, '0') + ':' + now.getSeconds().toString().padStart(2, '0');
let messageID = 'a' + now.getFullYear() + '' + (now.getMonth() + 1).toString().padStart(2, '0') + '' + now.getDate().toString().padStart(2, '0') + '' +
now.getHours().toString().padStart(2, '0') + '' + now.getMinutes().toString().padStart(2, '0') + '' + now.getSeconds().toString().padStart(2, '0') + '-' + $p.userId();
let num = parseFloat($('#Results_Num071').val() || 0) + 1;
//質疑送付先(Class077:複数ユーザー選択、要確認:表示形式によってはセレクタの調整が必要)
let sendToText = $('#Results_Class077').val() || '';
let data = {
'messageID': messageID,
'type': 'Question',
'num': toCircledNumber(num),
'typeStr': '営業積算課からの質疑',
'userName': userName,
'sendTo': sendToText,
'messageTime': nowStr,
'messageBody': message,
'enabled': true,
};
//質疑回答 保管用項目に保存する
let saveData = $('#Results_Description071').val();
let shitsugiData;
if (saveData == '') {
shitsugiData = [];
shitsugiData.push(data);
} else {
shitsugiData = JSON.parse(saveData);
shitsugiData.push(data);
}
$p.set($('#Results_Description071'), JSON.stringify(shitsugiData));
//送信者を記録
$p.set($('#Results_Class075'), userName);
//質疑回数をカウントアップ
$p.set($('#Results_Num071'), num);
//質疑回答ステータスを「質疑あり」に更新
$p.set($('#Results_Class071'), '1');
//質疑回答期日(土日祝を除く5営業日後)を設定
$p.set($('#Results_Date073'), $p.ex.calcBusinessDeadline(5));
//質疑ありチェックをオンにする
$p.set($('#Results_Check071'), 'checked');
//送信したら入力欄は削除する
$p.set($('#Results_Description075'), '');
}
//依頼者からの回答を保存
$p.ex.saveAnswerMessage = function () {
let message = $('#Results_Description076').val();
let userName = $p.userName();
// ...(次ファイルへ続く)