バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > フロント側と受注登録側での消費税設定の違い

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
cmaith
投稿日時: 2014/12/11 11:06
対応状況: −−−
半人前
登録日: 2013/9/23
居住地:
投稿: 15
フロント側と受注登録側での消費税設定の違い
お世話になっております。

ショッピングカートを通さずに、電話注文を「受注登録」から手入力する場合の消費税率についてです。


基本情報管理>税率設定

・商品別税率機能:無効
・税率8% 四捨五入 2014-03-31 23:59:00 適用済

例えば、952円の商品の消費税は1028円ですが、
フロント側------1028円と表示されている。
受注登録(手動)------単価952円→税率[8%]・計算結果の確認→1029円
となってしまいます。

ちなみにショッピングカートを通して同じ商品を注文した結果は
受注一覧 > 編集 > 単価952円/税率[8%]/1028円

です。

同じ事象になっている方はいらっしゃいますでしょうか。
よろしくお願いいたします。

---------------------
EC CUBE 2.13.1
---------------------
s_goto
投稿日時: 2014/12/11 12:42
対応状況: −−−
常連
登録日: 2013/11/28
居住地:
投稿: 52
Re: フロント側と受注登録側での消費税設定の違い
cmaith 様

私も同現象発生しました。


=============================================
EC-CUBE 2.13.1
PostgreSQL 9.1.9
PHP Version 5.3.26
=============================================
sumida
投稿日時: 2014/12/11 23:17
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: フロント側と受注登録側での消費税設定の違い
あてずっぽうですが。

v2.13.1 --> v2.13.2 で、
こちらのチケットが適用されていますよ。
http://svn.ec-cube.net/open_trac/ticket/2430
http://svn.ec-cube.net/open_trac/ticket/2504
cmaith
投稿日時: 2014/12/12 8:18
対応状況: −−−
半人前
登録日: 2013/9/23
居住地:
投稿: 15
Re: フロント側と受注登録側での消費税設定の違い
ありがとうございます。

税率は合っていて、四捨五入か切り上げかの部分で不整合が起きているためちょっと違うようです。

アップデートもしてみようと思うのですが
中身をいろいろカスタマイズしてしまったので
勇気と時間がかかりそうで…
sumida
投稿日時: 2014/12/12 22:02
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: フロント側と受注登録側での消費税設定の違い
勝手に机上で検証してみました。

税込金額の表示部分
テンプレート:edit.tpl

                <td class="right">
                    <!--{$price|sfCalcIncTax:$tax_rate:$tax_rule|number_format}--> 円<br />
                    <!--{assign var=key value="tax_rate"}-->
                    <span class="attention"><!--{$arrErr[$key][$product_index]}--></span>
                    税率<input type="text" name="<!--{$key}-->[<!--{$product_index}-->]" value="<!--{$arrForm[$key].value[$product_index]|h}-->" size="3" class="box3" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key][$product_index]|sfGetErrorColor}-->" id="<!--{$key}-->_<!--{$product_index}-->" />%
                </td>
                <td class="right"><!--{$price|sfCalcIncTax:$tax_rate:$tax_rule|sfMultiply:$quantity|number_format}-->円</td>

ここで、表示にあたり、sfCalcIncTaxを使用している。
sfCalcIncTaxは、SC_Utils.phpにあり、

    public function sfCalcIncTax($price, $tax, $tax_rule)
    {
        return $price + SC_Utils_Ex::sfTax($price, $tax, $tax_rule);
    }

    public function sfTax($price, $tax, $tax_rule)
    {
        $real_tax = $tax / 100;
        $ret = $price * $real_tax;
        switch ($tax_rule) {
            // 四捨五入
            case 1:
                $ret = round($ret);
                break;
            // 切り捨て
            case 2:
                $ret = floor($ret);
                break;
            // 切り上げ
            case 3:
                $ret = ceil($ret);
                break;
            // デフォルト:切り上げ
            default:
                $ret = ceil($ret);
                break;
        }

        return $ret;
    }

ここでは、$tax_ruleがないと、「切り上げ」としている。

そこで、$tax_ruleがない可能性を考えてみた。
LC_Page_Admin_Order_Edit.phpは、何となくこの部分のような。

    public function checkInsertOrderProducts(&$objFormParam, $arrProductClassIds, $insert_product_class_id, $arrAddProductInfo)
    {
        if(!$arrProductClassIds || !in_array($insert_product_class_id, $arrProductClassIds)){
            $arrAddProducts = array();

            $arrAddProductInfo['product_name'] = ($arrAddProductInfo['product_name'])?
                                                 $arrAddProductInfo['product_name']:$arrAddProductInfo['name'];
            $arrAddProductInfo['price']        = ($arrAddProductInfo['price'])?
                                                 $arrAddProductInfo['price']:$arrAddProductInfo['price02'];
            $arrAddProductInfo['quantity']     = 1;
            $arrAddProductInfo['tax_rate']     = ($objFormParam->getValue('order_tax_rate') == '')?
                                                 $this->arrInfo['tax']     :$objFormParam->getValue('order_tax_rate');
            $arrAddProductInfo['tax_rule']     = ($objFormParam->getValue('order_tax_rule') == '')?
                                                 $this->arrInfo['tax_rule']:$objFormParam->getValue('order_tax_rule');
            foreach ($this->arrProductKeys as $insert_key) {
                $value = $objFormParam->getValue($insert_key);
                $arrAddProducts[$insert_key]   = (is_array($value))? $value: array();
                $arrAddProducts[$insert_key][] = $arrAddProductInfo[$insert_key];
            }

            return $arrAddProducts;
        } else {
            //受注商品の数量は、複数配送側の集計で出しているので、重複しても数量を増やさない。
            return null;
        }
    }

ここは、v2.13.2では、先の投稿でも触れた
http://svn.ec-cube.net/open_trac/ticket/2430
の修正が行われている場所になる。

あくまで机上の検証です。
この部分で、端数の指定は、説明がつきそうなのですが、
税率の指定は、説明がつきませんでした。
cmaith
投稿日時: 2014/12/13 9:40
対応状況: 解決済
半人前
登録日: 2013/9/23
居住地:
投稿: 15
Re: フロント側と受注登録側での消費税設定の違い
ありがとうございます!

うちはデフォルトで四捨五入で良さそうだったので
data/class/util/SC_Utils.phpの

707行目

// デフォルト:切り上げ
default:
$ret = ceil($ret);
break;



// デフォルト:四捨五入
default:
$ret = round($ret);
break;

に変更することで、この部分は解決いたしました。

アップデートについては時間があるときに
慎重に行っていきたいと思います。

どうもありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
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.