バージョン選択

フォーラム

メニュー

オンライン状況

50 人のユーザが現在オンラインです。 (39 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 50
もっと...

サイト内検索

質問 > 管理機能 > 関数内数値計算の四捨五入/切り捨てについて

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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を処理する前に小数を切り捨てるにすれば良いかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

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側の設定野四捨五入・切り捨てなどが反映するのでしょうか。

訂正:
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

    /**
     * Calculate SubTotal.
     *
     * @return integer
     */
    public function calculateSubTotal()
    {
        $subTotal = 0;
        foreach ($this->getOrderDetails() as $OrderDetail) {
            //$subTotal += $OrderDetail->getPriceIncTax() * $OrderDetail->getQuantity();
            $subTotal += $OrderDetail->getPrice() * $OrderDetail->getQuantity();
        }

        return $subTotal;
    }

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 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,281名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.