自動採番で、下記のプログラムは役に立っていますが、年替わり、0001から開始したいのと依頼があり、別のプログラムでも試しましたが、上手く行きません。
何か良い方法があればご教授願いたく
年号で変化するとの情報はこちらです。
https://www.joyzo.co.jp/blog/259
(function () {
“use strict”;
function createNo(event) {
var maxNum = 0; //見積番号の枝番の最大値
var date = new Date();
var year = date.getYear().toString().substr(1,2); //西暦の下2桁を取得する
var month = date.getMonth() + 1;
var day = date.getDay();
// アプリIDを取得する
var appId = kintone.app.getId();
//最新の見積番号を取得するためのURLを生成
var sch = year + “-”;
var tmpNo = 0;
var query_string = ‘no like "’ + sch + ‘" order by no desc limit 1&fields[0]=no’ //見積番号の最大値を取得するクエリ
var apiUrl = kintone.api.url(‘/k/v1/records’) + ‘?app=’ + appId + ‘&query=’ + encodeURI(query_string);
var xmlHttp;
xmlHttp = getXmlHttp();
// 同期リクエストを行う
xmlHttp.open(“GET”, apiUrl, false);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.send(null);
if (xmlHttp.status == 200){
if(window.JSON){
var obj = JSON.parse(xmlHttp.responseText);
if (obj.records[0] != null){
tmpNo = obj.records[0][‘見積番号’].value.split(“-”); //見積番号を-で区切る(年度と見積番号を分ける)
maxNum = parseInt(tmpNo[1]); //最後の数字(枝番)を取得
}else{
maxNum = 0; //データが存在しない = 新年度なので枝番を初期化
}
if (maxNum === null) {
event.record[‘見積番号’].error = ‘見積番号が取得できませんでした’;
return event;
} else {
var num = parseInt(maxNum) + 1; //最新の見積番号を発番
event.record[‘見積番号’][‘value’] = year + “-” + (‘0000’ + num).slice(-4); // 発番した見積番号を設定する
}
} else{
event.record[‘見積番号’].error = xmlHttp.statusText;
}
} else{
event.record[‘見積番号’].error = ‘見積番号取得に失敗しました。’;
}
return event;
}
//xmlhttpオブジェクトを生成
function getXmlHttp() {
var xmlhttp = false;
if(typeof ActiveXObject != “undefined”){ //IE
try {
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
} catch (e) {
xmlhttp = false;
}
}
if(!xmlhttp && typeof XMLHttpRequest != “undefined”) { //IE以外
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
// 新規作成画面から保存時のイベント
kintone.events.on(‘app.record.create.submit’, createNo);
})();
初歩的な件で恐縮です。