自動採番を「日付フィールドの選択した月日から日単位で採番をリセット」できるようにしたい

日付フィールドの選択した月日から日単位で採番をリセットできるよう

改良したいです。ご教授いただけないでしょうか。

 (function(){

    'use strict';

    kintone.events.on([

        // レコード保存実行前イベント(「保存」をクリックした時)

        'app.record.create.submit',

        // 'app.record.edit.show',

    ], function(event){

       

        // GETのパラメータ

        const body = {

            // 当月中の最新レコードから一つ前

            'app':event.appId,

            'query': '作成日時 = TODAY() and 計量機No in ("' + event.record.計量機No.value + '") order by 作成日時 desc limit 1'

       

        };

       

        // kintone.Promiseを使用した同期的処理

        return kintone.api(kintone.api.url('/k/v1/records.json', true),'GET', body).then(function(resp){

           

            const records = resp.records;

            const rec = records[0];

            var autono = '';

            // 日付のフォーマット関数

            function dateToStr(date) {

                return date.getFullYear() + ('0' + (date.getMonth() + 1)).slice(-2) + ('0' + (date.getDate())).slice(-2);

            }

           

               if (event.record.計量機No.value == "手詰め"){

                  var keiryouki = 0;

                }

               else {

                  var keiryouki = event.record.計量機No.value;

                }

            // 当月のレコードが存在する場合の処理      

                if (records.length > 0){

                    autono = rec['連番'].value.slice(-4);

                    autono = ('000'+(Number(autono)+1)).slice(-4);

                    autono = dateToStr(new Date()) +"-"+ keiryouki +"-"+ autono;

                }

           

            // 当月のレコードが存在しない場合(月初のレコードの場合)の処理

                else {

                    autono = dateToStr(new Date())+ "-"+ keiryouki  +'-0001';

                }

             

            // autonoをフィールドに入れる

            if (event.record.計量機No.value == "手詰め") event.record.連番.value = autono;  

            if (event.record.計量機No.value == 1) event.record.連番.value = autono;

            if (event.record.計量機No.value == 2) event.record.連番.value = autono;

            if (event.record.計量機No.value == 3) event.record.連番.value = autono;

            if (event.record.計量機No.value == 4) event.record.連番.value = autono;

            if (event.record.計量機No.value == 5) event.record.連番.value = autono;

            return event;

               

   

        });

    });

}) ();

G.Qさん

こんにちは。

 

以下を修正してみてください。

 

①クエリを作成日時ではなく日付で取る

'query': '日付 = "' + event.record.日付.value + '" and 計量機No in ("' + event.record.計量機No.value + '") order by 連番 desc limit 1'

 

②採番の頭を日付にする

ハイフンを消すためにreplaceでハイフンを空文字に置換

autono = event.record.日付.value.replace(/-/g, '') + '-' + keiryouki + "-" + autono;

autono = event.record.日付.value.replace(/-/g, '') + '-' + keiryouki + '-0001';

koichiさん

お久しぶりです。

返信ありがとうございます。

上記の通りで、無事実装できました。

ありがとうございました:bangbang:

お久しぶりです。

ご確認ありがとうございます。

解決に繋がり何よりです。