ken_nogi/Pleasanter/営業積算システム/docs/新・営業積算システム仕様書_分割/044_新・営業積算システム仕様書_別記資料スクリプト(14/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

4.9 KiB
Raw Blame History

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

// ...(前ファイルからの続き)
    $.each($p.data.MainForm, function (index, val) {
        if (index.startsWith('Results')) {
            if (includeList.includes(index)) {
                // 処理内容
                checkFlug = true;
            }
        }
    });

    if (checkFlug) {
        //Class101算出者、Class102チェック者、Date103返信日、Class103返信者
        //Description091見積回答、Description092別途費用・伝達事項"
        let logStr = [];
        logStr.push('算出者:' + resolveUserName($('#Results_Class101').val()));      //Class101の値を氏名に解決して配列に格納
        logStr.push('チェック者:' + resolveUserName($('#Results_Class102').val()));  //Class102の値を氏名に解決して配列に格納
        logStr.push('返信日:' + $('#Results_Date103').val());       //Date103の値を配列に格納
        logStr.push('返信者:' + resolveUserName($('#Results_Class103').val()));      //Class103の値を氏名に解決して配列に格納

        //ラベルと内容の間に改行を入れることで、ラベルが独立した行になり、内容は次の行から表示される
        logStr.push('見積回答:' + '\n' + $('#Results_Description091').val());             //Description091の値を配列に格納
        logStr.push('別途費用・伝達事項:' + '\n' + $('#Results_Description092').val());   //Description092の値を配列に格納

        let orgLog = $('#Results_Description101').val();   //Description101の既存の値を取得

        //既存のログがある場合はそれを先頭にして新しいログを結合、ない場合は新しいログのみを結合
        let saveLog = orgLog ? orgLog + '\n----------------------\n' + logStr.join('\n') : logStr.join('\n');
        $p.set($('#Results_Description101'), saveLog);   //Description101に保存
    }
}

//見積回答(Description091)・別途費用・伝達事項(Description092)をDescription093へ統合し、
//Description093の内容をDescription061見積結果へ転記する
$p.mergeEstimateResult = function () {
    //対象項目の変更があった場合のみ処理する
    let includeList = ['Results_Description091', 'Results_Description092'];
    let checkFlug = false;
    $.each($p.data.MainForm, function (index, val) {
        if (index.startsWith('Results')) {
            if (includeList.includes(index)) {
                checkFlug = true;
            }
        }
    });

    if (checkFlug) {
        //091・092を改行で結合してDescription093へ格納内容に変更が無ければ上書きしない
        let mergeStr = $('#Results_Description091').val() + '\n' + $('#Results_Description092').val();
        if ($('#Results_Description093').val() !== mergeStr) {
            $p.set($('#Results_Description093'), mergeStr);
        }

        //Description093をDescription061へ転記内容に変更が無ければ上書きしない
        if ($('#Results_Description061').val() !== mergeStr) {
            $p.set($('#Results_Description061'), mergeStr);
        }
    }
}

//----------------------------------------------------------------------
//ClassZ①物件基本情報からのリンク元IDが新規作成時に空欄の場合、新規作成をブロックする
//(①物件基本情報のリンクを経由せず直接このサイトで新規作成しようとした異常系を検知)
$p.ex.checkClassZRequired = function () {
    if ($p.action() == 'new' && !$('#Results_ClassZ').val()) {
        $p.ex.setMyMessage('new-status-red', '①物件基本情報から新規依頼を作成してください');
        return false;
    }
    return true;
}

//----------------------------------------------------------------------
//営業積算タブ_Tab-2→問い合わせ情報タブGeneralへの転記同一レコード内
//受付日Date081→Date061、受付者Class081→Class061
//見積依頼日Date082→Date062、見積依頼先Class083→Class063
//見積受信日Date090→Date063、見積種別Class091→Class065
//転記先の値に差異がある場合のみ転記し、差異が無い場合はスキップする
$p.syncSekisanTabToGeneralTab = function () {
    let mapping = [
        { from: 'Class081', to: 'Class061', resolveUser: true },   //受付者Usersマスタ参照のため氏名に解決して転記
        { from: 'Class083', to: 'Class063' },   //見積依頼先
        { from: 'Date081', to: 'Date061' },     //受付日
        { from: 'Date082', to: 'Date062' },     //見積依頼日
        { from: 'Date090', to: 'Date063' },     //見積受信日
        { from: 'Class091', to: 'Class065' },   //見積種別
    ];

    mapping.forEach(function (item) {
        let fromVal = $('#Results_' + item.from).val();
// ...(次ファイルへ続く)