下記のようなJsで、ログイン時本人コードIDと日付を連携させ見積NO を設定しています。見積内容が同じ場合に右上の再利用ボタンを使って入力手間を省こうとしていますが、自動採番ができずに困っています。
アドバイスよろしくお願いいたします。
(function() {
“use strict”;
// 登録・編集・詳細表示イベント
var events = [‘app.record.create.show’,‘app.record.edit.show’,‘app.record.detail.show’];
kintone.events.on(events, function (event) {
var record = event.record;
return event;
});
// 編集イベント
var events = [‘app.record.edit.show’];
kintone.events.on(events, function (event) {
var record = event.record;
return event;
});
// 登録イベント
var events = [‘app.record.create.show’];
kintone.events.on(events, function (event) {
var record = event.record;
//当日日付を取得
var date = new Date();
var strYear = date.getFullYear().toString().slice(-2); //西暦の下2桁
var month = date.getMonth() + 1;
var strMonth = month.toString();
// var strDay = date.getDate().toString();
if (strMonth.length == 1) {
strMonth = “0” + strMonth;
}
var StrDate = strYear + strMonth;
// 自アプリID
var myAppID = 000;
// ユーザーマスタアプリID
var userMstAppID = 00;
// ログインユーザ情報を取得
var user = kintone.getLoginUser();
// 担当者の当月発行枚数取得クエリ
//var query2 = ‘見積NO like "’ + StrDate + userEngCode + ‘"’;
var query2 = ‘見積NO_記号 = "’ + StrDate + user.code + ‘" order by 見積NO desc limit 1’;
// 自身が当日発行した帳票枚数を取得
var appUrl2 = kintone.api.url(‘/k/v1/records’) + ‘?app=’+ myAppID + ‘&query=’ + encodeURIComponent(query2);
var xmlHttp2 = new XMLHttpRequest();
xmlHttp2.open(“GET”, appUrl2, false);
xmlHttp2.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
//キャッシュ対策(常にレスポンスが取得できる状態にする)
xmlHttp2.setRequestHeader(‘If-Modified-Since’,‘Thu, 01 Jun 1970 00:00:00 GMT’);
xmlHttp2.send(null);
if (xmlHttp2.status == 200){
//レスポンスのレコードを取得
var records2 = JSON.parse(xmlHttp2.responseText).records;
// 対象レコードがあった場合(カウントアップ)
if(records2.length > 0){
var mitsumoriNO = records2[0][‘見積NO’].value;
var intCount = parseInt(mitsumoriNO.slice(-2),10) + 1;
var recCount = intCount.toString();
if (recCount.length == 1) {
recCount = “00” + recCount;
} else if (recCount.length == 2) {
recCount = “0” + recCount;
}
record[‘見積NO’].value = StrDate + user.code + recCount;
record[‘見積NO_記号’].value = StrDate + user.code;
// 対象レコードがなかった場合(1枚目)
}else{
record[‘見積NO’].value = StrDate + user.code + “001”;
record[‘見積NO_記号’].value = StrDate + user.code;
}
var tableRecords = event.record.見積テーブル.value;
tableRecords[0].value[‘見積書NO_見積’].value = record[‘見積NO’].value + “-01”;
}else{
alert(“レコードの取得でエラーが発生しました。- error:”+xmlHttp2.status);
return event;
}
//見積NOは入力不可
record[‘見積NO’].disabled = true;
return event;
});
})();