Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

電気料金シュミレーション機能の追加 #313

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

ityusuke
Copy link

No description provided.

@ghost
Copy link

ghost commented May 26, 2021

Sider has detected 1 error and 2 warnings on analyzing the commit 79a1285.

We recommend fixing them as possible by updating the dependencies, configuring the analysis tool, configuring sider.yml, turning off unused tools, and so on.

If you have problems or questions still, feel free to ask us via chat. 💬


You can turn off such notifications if unnecessary.

def calc_as_pay_charge(input_amount)

# 入力された電気使用量に対応する従量料金の単価を算出する
target_range = self.as_pay.find {|a| (a["to"] == AS_PAY_CHARGE_RANGE_MAX ) ? true : (a["from"] <= input_amount && input_amount <= a["to"])}
Copy link
Contributor

@yuyasat yuyasat May 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

従量料金の計算方法も、改めて正しいかご確認いただけますでしょうか?

def calc_base_charge(input_amp)

# 入力された契約アンペア数に対応する基本料金を算出する
target_amp = self.base.find {|b| b["amp"] == input_amp}
Copy link
Contributor

@yuyasat yuyasat May 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

基本料金の導出について、改めて正しいか確認いただきたいです・・・!

@yuyasat
Copy link
Contributor

yuyasat commented May 27, 2021

@ityusuke
チャレンジ取り組んでいただきありがとうございます!とても綺麗に整理されて実装されている印象をもちましたが、料金計算のところでちょっとご確認いただきたく、コメントさせていただきました!

@ityusuke
Copy link
Author

ityusuke commented May 27, 2021

@ityusuke
チャレンジ取り組んでいただきありがとうございます!とても綺麗に整理されて実装されている印象をもちましたが、料金計算のところでちょっとご確認いただきたく、コメントさせていただきました!

@yuyasat
ご確認いただきありがとうございます!
こちらで何パターンか動作確認させていただいたのですが、想定した値が出力されているようでした。
基本料金・従量料金ともに料金の算出ロジックに問題アリとのことですが、もう少し詳しくお聞かせ頂けないでしょうか?
(ユーザーの入力値が [30A, 100kWh] の場合、東京ガスずっとも電気1の料金はxxx円になるはずだが、実際はxxx円になっている等)

また、基本料金の算出について質問なのですが、対応外のアンペアが入力された場合どのように算出するべきでしょうか?
例えば「東京ガスずっとも電気1」において10Aが入力された場合
①1Aあたりの基本料金(28.6) × 10(A) = 286 を出力する
②「指定されたA(アンペア)は対応外です」という旨のメッセージを出力する

お忙しい中申し訳ありませんが対応いただけると幸いです

@yuyasat
Copy link
Contributor

yuyasat commented May 31, 2021

@ityusuke
ご確認ありがとうございます!

基本料金と従量料金について

こちら、私の方から言ってしまえば実装の難易度は高くないものとなります。
お伝えした資料から仕様を読み取っていただき、把握して実装できるかを確認したかった次第です。
一言だけ従量料金に関して言えば、

target_range = self.as_pay.find {|a| (a["to"] == AS_PAY_CHARGE_RANGE_MAX ) ? true : (a["from"] <= input_amount &&  input_amount <= a["to"])}

のところで、target_rangeを一つ取得してますが、250kWhのとき、計算で用いる従量料金単価は何になりますか?

基本料金で対応外のアンペアが入力された場合について

とてもいい指摘ですが、 @ityusuke さんが考えるあるべき形はどうでしょうか?enechange.jpやお渡ししたchallenge Aの資料、資料から貼られているリンク(約款等)、いろいろ総合して調べてみていただき、@ityusuke さんの仮定で構いませんので実装してみてください!

・電気を全く使用しない場合電気料金を半額にするよう修正
・対応外のアンペアが入力された場合のロジックを追加
・従量料金の計算方法を見直し(従量料金単価をそれぞれの単価において個別で計算したものを合算するように修正)
・月額使用料が最低料金を割る場合のロジックを追加
@ityusuke
Copy link
Author

ityusuke commented Jun 2, 2021

@yuyasat

250kWhのとき、計算で用いる従量料金単価は何になりますか?

こちら失念しておりました。それぞれの単価毎に計算したものを合算するべきでした。
(ex. 東京電力エナジーパートナー 従量電灯Bで140kWhの場合、120kWhまでとそれ以降で別々の単価を使用する)

enechange.jpやお渡ししたchallenge Aの資料、資料から貼られているリンク(約款等)、いろいろ総合して調べてみていただき、@ityusuke さんの仮定で構いませんので実装してみてください!

アドバイスありがとうございます!最新資材では従量料金の計算ロジック修正に加え下記も修正を行っておりますので、お手すきの際にご確認いただけると幸いです。

・電気を全く使用しない場合
・対応外のアンペアが入力された場合
・月額使用料が最低料金以下の場合

as_pay_charge = plan.calc_as_pay_charge(self.kwh)

# 電気を全く使用していない場合、基本料金が半額になる
if as_pay_charge == 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

使用料金が0なのか使用量が0なのかでいうと...!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちら、後者であるべきですね。失礼しました。
最新コミット(79a1285)で修正しました。

end

# 電気料金 = 基本料金 + 従量料金(少数切り捨て)
total_charge = (base_charge + as_pay_charge).floor
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

total_chargeに対して割引かけたり、下の方にある最低月額料金の適用だったりはプランによるので、total_chargeの算出もプランが持っていい責務かなと思いました。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます!
こちら最新コミット(79a1285)で修正いたしました。

・電気料金計算ロジックをPlanクラスに移行
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants