プルダウンによる別フィールドに入力

お世話になります。

https://developer.cybozu.io/hc/ja/articles/202341954-%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%83%80%E3%82%A6%E3%83%B3%E3%81%AE%E5%80%A4%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E5%88%A5%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E5%80%A4%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%82%8A-%E7%84%A1%E5%8A%B9%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B

の記事を参考にしています。

消費税のプルダウンにより税金率のフィールドを記入したいです。

.showイベントではできるんですが、app.record.edit.change.SalesTax のイベントでは情報が入りません。

これはなぜでしょうか?

よろしくお願いいたします。

(function () {

“use strict”;

function ChangeSalesTax(event){
var record = event.record;
var GrandTotal = record[‘GrandTotal’][‘value’];
var Tax = record[‘Tax’][‘value’];
var SalesTax = Math.floor(GrandTotal * (Tax / 100));

switch (record[‘SalesTax’][‘value’]){
case “非課税”:
record[‘Tax’].value = “0”;
record[‘SalesTaxAmt’].value = “0”;
record[‘SalesTaxAmt’][‘disabled’] = true;
break;
case “課税”:
record[‘Tax’][‘value’] = “10”;
record[‘SalesTaxAmt’][‘value’] = SalesTax;
record[‘SalesTaxAmt’][‘disabled’] = false;
break;
default:
record[‘Tax’][‘value’] = “10”;
record[‘SalesTaxAmt’][‘value’] = SalesTax;
record[‘SalesTaxAmt’][‘disabled’] = false;
break;
}
return event;
}

var events = [‘app.record.create.show’,‘app.record.edit.show’,‘app.record.index.edit.show’,
‘app.record.edit.change.SalesTax’,‘app.record.create.change.SalesTax’,‘app.record.index.edit.change.SalesTax’];
kintone.events.on(events, function(event) {
ChangeSalesTax(event);
});

})();

山本さん、こんにちは。プロジェクト・アスノートの松田です。

 

2020年1月のアップデートで、計算式にIF関数が使えるようになりました。

これを使って、消費税ドロップダウンの選択内容によって、税率を変更させることが可能になります。

こちら、同様の内容を説明した記事ですので参考にしてください。

https://pj.asunote.jp/if-for-reduced-tax-invoice/

 

 

早急なご回答ありがとうございます。フィールドでのIF分利用は参考になりました。

今回のは簡単の例ですが、JAVASCRIPTで複雑なロジックによりフィールドの結果を変えたいと思っております。

今回の例でなぜJAVASCRIPTでそのフィールドの数値が変わらないのでしょうか?

よろしくお願いいたします。

追加でのコメントですが、今回おこないたいとは税区分のプルダウンを課税に変更したタイミングで税率のフィールドの数値を更新したいです。

app.record.edit.change.SalesTax プルダウンはSalesTaxと名前を付けております。

なにとぞよろしくお願いいたします。

山本さん

kintone.events.on のハンドラーで、eventオブジェクトをreturnしていないから更新されないのではないかと思います。

カスタマイズの内容がこの部分だけでしたら、普通にkintone.events.on のハンドラーの中に処理を書いたほうがわかりやすいかもしれませんね。

松田さん

アドバイスありがとうございました。kintone.events.onの中で処理したほうがわかりやすいし、問題解決しました。本当たすかりました。

ずっとC#だったのでJavascriptとKintoneに少しずつなれていっています。