いつも大変お世話になっております。
総人数:19人 報酬:¥24,000にしたいですが、どうすればよろしいでしょうか?
kintoneのアプリ設定→高度な設定→丸めかた→切捨てにしてみたら、総人数は19人になりますが、報酬はやっぱり¥24,500になってしまいます。
ソースのほうでなにかできるでしょうか?アドバイス頂ければ幸いです。よろしくお願い致します。
(function () {
“use strict”;
kintone.events.on([‘app.record.create.submit’, ‘app.record.edit.submit’], function (event){
var record = event.record;
var 人数 = Number(record[‘人数’].value);
var 枚数 = Number(record[‘枚数’].value);
var 基本料金 = Number(record[‘基本料金’].value);
var 計算料金 = Number(record[‘計算料金’].value);
var 総人数 = 人数 + 枚数 / 2 ;
var 報酬 = 計算料金 * ( 総人数 - 5 ) + 基本料金;
record[‘総人数’].value = 総人数;
record[‘報酬’].value = 報酬;
return event;
});})();
玲香様
お世話になっております。
cstapの江田です。
JavaScriptでの小数切り上げは、Math.floor()で行えます。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
今回の場合は、
var 総人数 = 人数 + 枚数 / 2 ;
を
var 総人数 = Math.floor(人数 + 枚数 / 2) ;
とすればよいかと思います。
江田篤史 様
いつもお世話になっております。
教えていただき、ありがとうございます。おかげさまで無事解決致しました。
初心者で大変恐縮ですが、
今のアプリは無事動きましたが、それに他の手入力の項目もつけて、たまには、ここでの項目すべて入力しないときもありますが、
そうしたら、レコードを保存するときに、「総人数」と「報酬」項目には、「数字でなければなりません。」とエラーとなり、保存すらできなくなります。
どうすれば、動くようになりますでしょうか?
お手数ですが、アドバイス頂ければ幸いです。よろしくお願い致します。
玲香様
空欄のまま保存する可能性のある項目に関しては、条件分岐をさせて、空欄だったとき用の値を設定するとよいと思います。
(function () {
"use strict";
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function (event){
var record = event.record;
var 人数 = Number(record['人数'].value);
var 枚数 = Number(record['枚数'].value);
var 基本料金 = Number(record['基本料金'].value);
var 計算料金 = Number(record['計算料金'].value);
if(typeof record['追加項目'].value === "undefined"){
var 追加項目 = 1;
}else{
var 追加項目 = Number(record['追加項目'].value);
}
var 総人数 = Math.floor(人数 + 枚数 / 2) * 追加項目;
var 報酬 = 計算料金 * ( 総人数 - 5 ) + 基本料金;
record['総人数'].value = 総人数;
record['報酬'].value = 報酬;
return event;
});})();
また、if文の代わりに、三項演算子や論理演算子の「||」を用いるとより短くコードを書けるので知っておくとよいと思います。
//三項演算子を用いた場合
var 追加項目 = (typeof record['追加項目'].value === "undefined") ? 1 : Number(record['追加項目'].value);
//論理演算子の「||」を用いた場合
var 追加項目 = Number(record['追加項目'].value) || 1;
ただし、「0」を入力する可能性がある場合は「||」を用いた方法は使わない方が良いかと思います。
江田篤史 様
いつも大変お世話になっております。
お返事いただき、本当に感謝しております。
空欄のまま保存する可能性のある項目は
人数、枚数、総人数、報酬、基本料金、計算料金といった今のすべての項目となりまして、
**特に、「総人数」と「報酬」項目を「数字でなければなりません。」とエラーを出せないようにしたいです。**
言葉の表現がうまくできず、大変申し訳ございませんでした。
アドバイスいただいたように、ちょっと試してみます。