質問 > 管理機能 > 関数内数値計算の四捨五入/切り捨てについて |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Pinker |
投稿日時: 2019/3/29 9:54
対応状況: −−−
|
新米 登録日: 2019/3/29 居住地: 投稿: 4 |
関数内数値計算の四捨五入/切り捨てについて よろしくお願い致します。
利用ver EC-CUBE 3.0.16 「目的」 商品の消費税の計算方法について、不都合があり編集しています。 ECキューブの初期仕様が 製品A*1.08+製品B*1.08+.......という計算方法であるはずなので、 それをまず (製品A+製品B+....)*1.08 にし、さらに小数点以下切り捨ての計算方法を目的にしました。 しかしテンプレート上で*1.08すると自動的に四捨五入?されてしまい切り捨て対応ができませんのでお力添えいただけましたら幸いです。 「具体例」 初期設定:消費税設定8%で切り捨ての場合 111円の商品を59個買うと、デフォルトでは 111*1.08*59=119(119.88の切り捨て)となってから*59=7,021 現状:設定→消費税率0%で切り捨てにしテンプレート側で、*1.08 111*59*1.08=7073(7072.92の四捨五入?)=7,073 目標 上記の7,072.92の箇所を小数点切り捨てで最終金額を7,072にしたい。 「変更箇所」 設定を上述通り消費税率0%にし、商品ページ内は税抜で表示。 【ご注文内容のご確認】ページのみ、税込金額が吐き出されるように、 Shopping/index.twig に{{ (Order.total * 1.08)|price }}と記述し強制的に税率を計算。 当方ECキューブのカスタムに慣れておらず、お詳しい方のお知恵を拝借できましたら幸いです。 どうぞよろしくお願いいたします。 |
468 |
投稿日時: 2019/3/29 12:25
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 関数内数値計算の四捨五入/切り捨てについて {***|price}の処理は、内部的にPHPのnumber_formatを利用しています。
/src/Eccube/Twig/Extension/EccubeExtension.php 238行目 ここでnumber_formatを処理する前に小数を切り捨てるにすれば良いかと思います。
|
Ringo |
投稿日時: 2019/3/29 13:36
対応状況: −−−
|
常連 登録日: 2018/8/10 居住地: 投稿: 70 |
Re: 関数内数値計算の四捨五入/切り捨てについて ↓これのことですかね?
「Re: カート画面の小計を税別表示にする方法」 https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=21651&forum=10&post_id=90725#forumpost90725 |
Pinker |
投稿日時: 2019/3/29 14:24
対応状況: 解決済
|
新米 登録日: 2019/3/29 居住地: 投稿: 4 |
Re: 関数内数値計算の四捨五入/切り捨てについて >468様
なんとも迅速なご回答ありがとうございます。 また詳しい記述箇所もご教示いただき助かります。 当方php記述に詳しくないのでいろいろ模索しながら試してみます。 ありがとうございます。 |
Pinker |
投稿日時: 2019/3/29 14:29
対応状況: 確認中
|
新米 登録日: 2019/3/29 居住地: 投稿: 4 |
Re: 関数内数値計算の四捨五入/切り捨てについて >Ringo様
丁寧にリンクもつけていただきありがとうございます。 はい、やろうとしていることはこちらの流れとなります。 なるほど、このやり方だと、ECCUBE側の設定野四捨五入・切り捨てなどが反映するのでしょうか。 参考になります。 |
Ringo |
投稿日時: 2019/3/29 14:51
対応状況: −−−
|
常連 登録日: 2018/8/10 居住地: 投稿: 70 |
Re: 関数内数値計算の四捨五入/切り捨てについて >なるほど、このやり方だと、ECCUBE側の設定野四捨五入・切り捨てなどが反映するのでしょうか。
訂正: 「参考として」に「提示」しましたが「未反応」でしたので「放置」してました。 『「管理画面」での「設定」は「未反映」』については、時間が取れたら、反映Tryしてみます。 【Order.tax】は「管理画面」の「税率・端数処理」を反映しているはず。 で、この【Order.tax】が、ご指摘の「誤計算」のままだと(まだ、裏が取れてません。)、 「税抜き総合計」に「管理画面」の「税率・端数処理」を最終段階で計算する必要がありそうな気配がします。 |
Pinker |
投稿日時: 2019/3/29 15:43
対応状況: 開発中
|
新米 登録日: 2019/3/29 居住地: 投稿: 4 |
Re: 関数内数値計算の四捨五入/切り捨てについて >Ringo様
この辺りは実際に変更してみて挙動を見つつですね。 ただ、大きなヒントありがとうございます。 できるだけECキューブの仕様に添いつつ対応できればと考えております。 ソースコードご提示頂けて大変助かります。 |
Ringo |
投稿日時: 2019/3/31 12:33
対応状況: −−−
|
常連 登録日: 2018/8/10 居住地: 投稿: 70 |
Re: 関数内数値計算の四捨五入/切り捨てについて 小計の計算に修正漏れがありました。
あと、消費税計算もおかしそう。 こちらも、時間が取れてたら、追ってみます。 eccube-3.0.17/src/Eccube/Entity/Order.php
|
joolensato |
投稿日時: 2019/4/1 10:23
対応状況: −−−
|
常連 登録日: 2019/3/20 居住地: 投稿: 51 |
Re: 関数内数値計算の四捨五入/切り捨てについて twigに自作関数を作成して、自作関数内で目標の計算をすることも可能ですよ。
|
Ringo |
投稿日時: 2019/4/2 8:13
対応状況: −−−
|
常連 登録日: 2018/8/10 居住地: 投稿: 70 |
Re: 関数内数値計算の四捨五入/切り捨てについて >【Order.tax】は「管理画面」の「税率・端数処理」を反映しているはず。
反映はしてましたが「内税」でした。 >>商品の消費税の計算方法について、不都合があり編集しています。 ここで言う不都合とは、 ECCUBEが「内税」なのを、『「外税」「小計課税」に変更したい』という理解でよいでしょうか? 「...IncTax」→「...」ではなく、「...IncTax」値に「Tax」を含めない値にしようとしてみましたが、「全面改修」の予感がして、止めました。 やはり、 1. フロント価格表示 2. カート価格表示 3. 帳票「メール」「明細」他、価格表示 4. 管理画面価格表示 を「...IncTax」→「...」化するのが、てっとり早いかな、、、といった感触です。 >「税抜き総合計」に「管理画面」の「税率・端数処理」を最終段階で計算する必要がありそうな気配がします。 【Order.tax】を「内税」→端数処理(「小計*消費税率」)への変更が、意図通りに演算出来無い。 ※これは、ひとえに、小生がPHPの関数間参照を習得出来ていないのが原因なのは分かってはいるのですが。。。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |