バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 税率計算について

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
elleman
投稿日時: 2017/11/20 22:41
対応状況: −−−
新米
登録日: 2017/1/8
居住地:
投稿: 7
Re: 税率計算について
こちらの問題、その後どうでしょうか??
3.0.14の環境(3.0.11からのアップデート)で同じ現象がでて困っています。


    /**
     * 課税規則に応じて端数処理を行う
     *
     * @param  float|integer $value    端数処理を行う数値
     * @param  integer       $calcRule 課税規則
     * @return double        端数処理後の数値
     */
    public function roundByCalcRule($value, $calcRule)
    {
        switch ($calcRule) {
            // 四捨五入
            case \Eccube\Entity\Master\Taxrule::ROUND:
                $ret = round($value);
                break;
            // 切り捨て
            case \Eccube\Entity\Master\Taxrule::FLOOR:
                $ret = floor($value);
                break;
            // 切り上げ
            case \Eccube\Entity\Master\Taxrule::CEIL:
                $ret = ceil($value);
                break;
            // デフォルト:切り上げ
            default:
                $ret = ceil($value);
                break;
        }

        return $ret;
    }


処理を追っていくと、この関数で$calcRuleにnullが入っている場合があり、
その場合はdefaultのceilが適用されるので価格に差ができます。

- - - 追記1 - - -

注文時はdtb_order_detailのtax_ruleに適当な数字が入っていますが、
管理画面の注文情報編集画面で「受注情報を登録」ボタンを押して更新すると、
tax_ruleがnullになりますね。


- - - 追記2 - - -


    /**
     * フォームからの入直内容に基づいて、受注情報の再計算を行う
     *
     * @param $app
     * @param $Order
     */
    protected function calculate($app, \Eccube\Entity\Order $Order)
    {
        $taxtotal = 0;
        $subtotal = 0;

        // 受注明細データの税・小計を再計算
        /** @var $OrderDetails \Eccube\Entity\OrderDetail[] */
        $OrderDetails = $Order->getOrderDetails();
        foreach ($OrderDetails as $OrderDetail) {
            // 税
            $tax = $app['eccube.service.tax_rule']
                ->calcTax($OrderDetail->getPrice(), $OrderDetail->getTaxRate(), $OrderDetail->getTaxRule());
            $OrderDetail->setPriceIncTax($OrderDetail->getPrice() + $tax);

            $taxtotal += $tax * $OrderDetail->getQuantity();

            // 小計
            $subtotal += $OrderDetail->getTotalPrice();
        }



更新処理の中で、どうやら/src/Eccube/Controller/Admin/Order/EditController.phpの line 671 で$Order->getOrderDetails()しているのですが、$OrderDetail->getTaxRule()で取れるのが null のようです。

なぜnullになるのかがこれ以上デバッグをすすめることができなくてわかりませんでした。

どなたかご教授いただけないでしょうか??
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   税率計算について ina666rr 2017/9/20 12:07
   » Re: 税率計算について elleman 2017/11/20 22:41
       Re: 税率計算について elleman 2017/11/20 23:27
         Re: 税率計算について 468 2017/11/21 19:28
           Re: 税率計算について elleman 2017/11/22 1:01
             Re: 税率計算について 468 2017/11/22 9:47
               Re: 税率計算について elleman 2017/11/23 17:31

 



ログイン


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

統計情報

総メンバー数は88,972名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.