簡単な事で申し訳ございませんが、文字列に「年度」を設けて、デフォルトで「年度」を入れて、その文字を足して、見積番号(自動採番)をしようと思っています。
サイボウズで提供していたプログラムを変更して試していますが、どうも上手く行きません。
-01-01 で指定すると正しく採番するのですが、-06-01 で指定すると同じ番号を取得してしまいます。 誰か手助けを頂けると幸いです。
コードは次の通りです。
(() => {
‘use strict’;
const autoNum = (event) => {
const record = event.record;
// 日付を取得し、2桁の年を取得する
const dt = record[‘見積日付’].value;
const nt = record[‘年度’].value;
const dtyy = dt.substring(0, 4);
const dtmin = ${dtyy}-06-01
;
const dtmax = ${(parseInt(dtyy, 10) + 1)}-06-01
;
// クエリ文の設定
const query = {
‘app’: kintone.app.getId(),
‘query’: 見積日付 \>= "${dtmin}" and 見積日付 \< "${dtmax}" order by 自動採番 desc limit 1
};
// 設定された日付から最新の番号を取得する
return kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, query).then((resp) => {
const records = resp.records;
// 対象レコードがあった場合
if (records.length > 0) {
const rec = records[0];
let autono = rec[‘自動採番’].value;
autono = parseInt(autono.substring(3), 10) + 1;
autono = 00000${autono}
;
autono = ${nt}-${autono.substring(autono.length - 5)}
;
event.record[‘自動採番’].value = autono;
// 対象レコードがなかった場合
} else {
event.record[‘自動採番’].value = ${nt}-00001
;
}
return event;
}).catch((e) => {
alert(レコードの取得でエラーが発生しました - error: ${e.message}
);
return false;
});
};
// 新規作成画面の保存
kintone.events.on(‘app.record.create.submit’, autoNum);
// 新規作成画面表示
kintone.events.on(‘app.record.create.show’, (event) => {
const record = event.record;
// フィールドを非活性にする
record[‘自動採番’].disabled = true;
return event;
});
// 編集画面表示
kintone.events.on([‘app.record.edit.show’, ‘app.record.index.edit.show’], (event) => {
const record = event.record;
// フィールドを非活性にする
record[‘自動採番’].disabled = true;
record[‘見積日付’].disabled = true;
record[‘年度’].disabled = true;
return event;
});
})();