ドロップダウンの値によってラジオボタンの値が連動し、ラジオボタンの値によって文字結合が行われるようにjavascriptを書いているのですが、下記コードをご覧頂くと分かるようにレコード作成時と編集画面で"ドロップダウン_0"の値が変更になった時のみ更新が行われるようにしたいと思っています。
しかし、
'app.record.edit.change.ドロップダウン_0'
のイベントを足すと
Uncaught Error: app.record.edit.change.ドロップダウン_0 is not allowed to return “Thenable” object.
というエラーになってしまいます。
javascript初心者のため何が原因なのかわかりません。
どなたか改善策をご教授いただけませんでしょうか。
下記が行いたいjavascriptになります。
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.change.ドロップダウン_0'], function(event){
return kintone.api(kintone.api.url('/k/v1/records'), 'GET', {
app: kintone.app.getId(),
fields: '正社員自動採番'
}).then(function(resp){
event.record.正社員自動採番.value = (resp.records.length === 0) ? '001' : ('000' + (Number(resp.records[0].正社員自動採番.value) + 1)).slice( -3 );
return event;
});
});
})();
// インターン用の自動採番
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.change.ドロップダウン_0'], function(event){
return kintone.api(kintone.api.url('/k/v1/records'), 'GET', {
app: kintone.app.getId(),
fields: 'インターン自動採番'
}).then(function(resp){
event.record.インターン自動採番.value = (resp.records.length === 0) ? '001' : ('000' + (Number(resp.records[0].インターン自動採番.value) + 1)).slice( -3 );
return event;
});
});
})();
// アルバイト用の自動採番
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.change.ドロップダウン_0'], function(event){
return kintone.api(kintone.api.url('/k/v1/records'), 'GET', {
app: kintone.app.getId(),
fields: 'アルバイト自動採番'
}).then(function(resp){
event.record.アルバイト自動採番.value = (resp.records.length === 0) ? '001' : ('000' + (Number(resp.records[0].アルバイト自動採番.value) + 1)).slice( -3 );
return event;
});
});
})();
// 業務委託用の自動採番
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.change.ドロップダウン_0'], function(event){
return kintone.api(kintone.api.url('/k/v1/records'), 'GET', {
app: kintone.app.getId(),
fields: '業務委託自動採番'
}).then(function(resp){
event.record.業務委託自動採番.value = (resp.records.length === 0) ? '001' : ('000' + (Number(resp.records[0].業務委託自動採番.value) + 1)).slice( -3 );
return event;
});
});
})();
// 関連会社社員用の自動採番
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.change.ドロップダウン_0'], function(event){
return kintone.api(kintone.api.url('/k/v1/records'), 'GET', {
app: kintone.app.getId(),
fields: 'Match自動採番'
}).then(function(resp){
event.record.Match自動採番.value = (resp.records.length === 0) ? '001' : ('000' + (Number(resp.records[0].その他自動採番.value) + 1)).slice( -3 );
return event;
});
});
})();
(function() {
"use strict";
//ドロップダウンとラジオボタンAを連動させる
kintone.events.on(['app.record.create.submit','app.record.edit.change.ドロップダウン_0'], function(event) {
var record = event.record;
var dropA = record.ドロップダウン_0.value;
//インターンの場合のドロップダウンからラジオボタンAへの連動
if (dropA === 'インターン') {
record.ラジオボタンA.value = 'インターン';
//アルバイトの場合のドロップダウンからラジオボタンAへの連動
} else if (dropA === 'アルバイト'){
record.ラジオボタンA.value = 'アルバイト';
//派遣社員・業務委託の場合のドロップダウンからラジオボタンAへの連動
} else if (dropA === '派遣社員'){
record.ラジオボタンA.value = '業務委託・派遣社員';
} else if (dropA === '業務委託'){
record.ラジオボタンA.value = '業務委託・派遣社員';
//正社員・契約社員の場合のドロップダウンからラジオボタンAへの連動
} else if (dropA === '取締役'){
record.ラジオボタンA.value = '正社員・契約社員';
} else if (dropA === '執行役員'){
record.ラジオボタンA.value = '正社員・契約社員';
} else if (dropA === '正社員'){
record.ラジオボタンA.value = '正社員・契約社員';
} else if (dropA === '契約社員'){
record.ラジオボタンA.value = '正社員・契約社員';
//その他社員の場合のドロップダウンからラジオボタンAへの連動
} else if (dropA === 'その他'){
record.ラジオボタンA.value = 'その他';
return event;
}
});
}());
//社員番号作成
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.change.ドロップダウン_0'],function(event){
var record = event.record;
var radioA = record['ラジオボタンA'].value;
//正社員の場合
if (radioA === '正社員・契約社員') {
var a = parseInt(10000, 10);
var b = parseInt(165, 10);
var c = parseInt(record.正社員自動採番.value, 10);
var total10 = a+b+c;
record.employee_number.value = total10;
//その他の自動採番を消去する
record.インターン自動採番.value = "";
record.アルバイト自動採番.value = "";
record.業務委託自動採番.value = "";
record.Match自動採番.value = "";
// インターンの場合
}else if (radioA === 'インターン'){
var d = parseInt(50000, 10);
var e = parseInt(94, 10);
var f = parseInt(record.インターン自動採番.value, 10);
var total50 = d+e+f;
record.employee_number.value = total50;
//その他の自動採番を消去する
record.正社員自動採番.value = "";
record.アルバイト自動採番.value = "";
record.業務委託自動採番.value = "";
record.その他自動採番.value = "";
//アルバイト・パートタイマーの場合
}else if (radioA === 'アルバイト'){
var g = parseInt(60000, 10);
var h = parseInt(48, 10);
var i = parseInt(record.アルバイト自動採番.value, 10);
var total60 = g+h+i;
record.employee_number.value = total60;
//その他の自動採番を消去する
record.正社員自動採番.value = "";
record.インターン自動採番.value = "";
record.業務委託自動採番.value = "";
record.その他自動採番.value = "";
//業務委託・派遣社員の場合
}else if (radioA === '業務委託・派遣社員'){
var j = parseInt(80000, 10);
var k = parseInt(43, 10);
var l = parseInt(record.業務委託自動採番.value, 10);
var total80 = j+k+l;
record.employee_number.value = total80;
//その他の自動採番を消去する
record.正社員自動採番.value = "";
record.インターン自動採番.value = "";
record.アルバイト自動採番.value = "";
record.その他自動採番.value = "";
//Matchなど関連会社社員の場合
}else if (radioA === 'Match'){
var m = parseInt(90000, 10);
var n = parseInt(2, 10);
var o = parseInt(record.その他自動採番.value, 10);
var total90 = m+n+o;
record.employee_number.value = total90;
//その他の自動採番を消去する
record.正社員自動採番.value = "";
record.インターン自動採番.value = "";
record.アルバイト自動採番.value = "";
record.業務委託自動採番.value = "";
}
return event;
});
}());