ken_nogi/Pleasanter/営業積算システム/docs/新・営業積算システム仕様書_分割/042_新・営業積算システム仕様書_別記資料スクリプト(12/28).md
Kenichiro NOGI ce58cb4be4 初回コミット: dev配下(NodeSrv/Pleasanter等)をGitea管理下に統合
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>
2026-09-04 15:37:06 +09:00

5.2 KiB
Raw Permalink Blame History

別記資料 スクリプトScripts全文 1228

// ...(前ファイルからの続き)
        $('#Results_Description055Field').hide();
        $('#Attachments055_dlButton1').hide(); //添付ファイルのダウンロードボタンを非表示
        $('#Attachments055_dlButton2').hide(); //添付ファイルのダウンロードボタンを非表示
    }
}
*/

//入力チェック前処理
$p.events.before_validate = function (args) {

    //ClassZ①物件基本情報からのリンク元IDが空欄の場合、新規作成をブロックする
    if (!$p.ex.checkClassZRequired()) {
        return false;
    }

    //問合せ種別で選択されなかった側の項目をクリア
    $p.ex.clearInquiryTypeFields();

    //依頼内容マージ
    $p.mergeMainMessage();

    //算出対応ログの保存
    $p.saveCalculateLog();

    //遅延連絡ログ
    $p.saveReasonLog();

    //見積回答・別途費用の統合と転記
    $p.mergeEstimateResult();

    //営業積算タブ→問い合わせ情報タブへの転記(同一レコード内)
    $p.syncSekisanTabToGeneralTab();

    //依頼者(ClassC)担当者・CC一覧(Class153)をマージしてClassY依頼者・担当者・CC一覧へ保存
    $p.mergeClassY();

    //ClassG現在の進捗の必須チェックは「新規依頼」プロセス実行前処理04_プロセス処理スクリプト.jsへ移設。
    //新規依頼プロセス実行後はClassG/ClassH/ClassIが読取専用化され$('#Results_ClassH').val()等が取得できなくなるため、
    //通常保存時(本関数)では行わない

    //DescriptionC依頼内容はHide化しmergeMainMessageによる自動集約専用項目になったため、
    //ユーザー入力前提の必須チェックcheckDescriptionCRequiredは廃止
}

//入力チェック後処理
$p.events.after_validate = function (args) {

}

//画面更新後
$p.events.after_set_Update = function (args) {
    //初期処理
    $p.ex.init();
}

//①物件基本情報から新規依頼作成後、遷移元(①)へ戻らず作成した②自身のレコードに留まる設定は
//ClassZ①物件基本情報からのリンク元IDのChoicesText側でNotReturnParentRecordオプションとして
//宣言的に設定するPleasanter標準機能。スクリプト側での対応は不要
//参照: https://pleasanter.org/ja/manual/table-management-choices-text-link


//アップ希望日時の確認と警告
$p.upDateCheck = function () {
    if ($('#Results_DateA').val() != '') {
        let dateA = new Date($('#Results_DateA').val());
        let dateJ = new Date($('#Results_DateJ').val());

        //もしdateJが空の場合 $p.getHolidayTable() を再度実行して、dateJを取得する
        if ($('#Results_DateJ').val() == '') {
            $p.getHolidayTable();
            dateJ = new Date($('#Results_DateJ').val());
        }

        //アップ希望日が期限日より手前の場合
        if (dateA.getTime() < dateJ.getTime()) {
            $('#Results_DateA').addClass('dateA_alert');
            $p.ex.setMyMessage('new-status-red', '期日は選択可最短日以降を選択してください。');

            return false;
        } else {
            $('#Results_DateA').removeClass('dateA_alert');

            return true;
        }
    }
}

//祝日判定テーブルの取得
//ServerScript「祝日リスト取得スクリプト」が画面表示前に取得済みのHolidaysListHidden項目から読み込む
$p.getHolidayTable = function () {
    let holidays = $('#HolidaysList').length > 0 ? JSON.parse($('#HolidaysList').val()) : [];

    let limitDate = new Date();
    limitDate.setHours(0);
    limitDate.setMinutes(0);
    limitDate.setSeconds(0);

    //土日祝日を除く5日後をカウント
    let count = 0;
    while (count < 5) {
        limitDate.setDate(limitDate.getDate() + 1);
        let limitDateStr = limitDate.getFullYear() + '/' + (limitDate.getMonth() + 1).toString().padStart(2, '0') + '/' + limitDate.getDate().toString().padStart(2, '0');
        if (!(limitDate.getDay() == 0) && !(limitDate.getDay() == 6) && !(holidays.includes(limitDateStr))) {
            count++;
        }
    }

    let limitDateStr = limitDate.getFullYear() + '/' + (limitDate.getMonth() + 1).toString().padStart(2, '0') + '/' + limitDate.getDate().toString().padStart(2, '0');
    $p.set($('#Results_DateJ'), limitDateStr);
}


//----------------------------------------------------------------------
//依頼内容マージOK6/21
//問合せ種別(Class007)により、DescriptionCへマージする項目セットを切り替える
//0:マトリックス以外→Class031(メーカー)、Class032(商品名)、Class033(品番)、Class034(施工範囲・箇所)、
//                  Description031(依頼内容補足)、Class045(標準仕様)、Class050(前回の管理番号)
//1:マトリックス→Class038(積算Ver.)、Class039(マトリックスサイズ)、Class040(nexthouseシリーズ)
$p.mergeMainMessage = function (args) {
    //対象項目(種別自体の変更含む)の変更があった場合のみ処理する
// ...(次ファイルへ続く)