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

カンマ区切りされない。誤った値引き額が出力される。 #780

Closed
seasoftjapan opened this issue Oct 19, 2023 · 0 comments · Fixed by #782
Closed

カンマ区切りされない。誤った値引き額が出力される。 #780

seasoftjapan opened this issue Oct 19, 2023 · 0 comments · Fixed by #782
Assignees
Labels
Milestone

Comments

@seasoftjapan
Copy link
Contributor

PC「現在のカゴの中」画面で発現を確認。

Smarty 3 は、演算子よりも修飾子が優先らしい。マジか...
https://www.facebook.com/permalink.php?story_fbid=1173167822704766&id=1123011671053715

というか、「修飾子」は正確には「変数の修飾子」なのね。Smarty 2 のドキュメントもそうだけど。

grepすると、複数の疑わしい箇所がある。

$ grep -r -P '<!--\{\$[^}|]+[-+*/]\$[^}|]+\|'
data/Smarty/templates/mobile/mail_templates/order_mail.tpl:値引き ¥<!--{$arrOrder.use_point*$smarty.const.POINT_VALUE+$arrOrder.discount|n2s|default:0}-->
data/Smarty/templates/mobile/cart/index.tpl:                合計:<!--{$arrData[$key].total-$arrData[$key].deliv_fee|n2s}-->円<br>
data/Smarty/templates/sphone/cart/index.tpl:                            <div><span class="mini">合計:</span><span class="price fb"><!--{$arrData[$key].total-$arrData[$key].deliv_fee|n2s}--> 円</span></div>
data/Smarty/templates/default/mail_templates/order_mail.tpl:値引き ¥<!--{$arrOrder.use_point*$smarty.const.POINT_VALUE+$arrOrder.discount|n2s|default:0}-->
data/Smarty/templates/default/cart/index.tpl:                                <td class="alignR"><span class="price"><!--{$arrData[$key].total-$arrData[$key].deliv_fee|n2s|h}-->円</span></td>

data/Smarty/templates/default/cart/index.tpl

<td class="alignR"><span class="price"><!--{$arrData[$key].total-$arrData[$key].deliv_fee|n2s|h}-->円</span></td>

これ、最悪合計金額が誤って表示される懸念ありそうだけど。
実際試すと、$arrData[$key].deliv_fee が常に 0 のようで、問題ないかも。4桁以上の数値が入ったら崩壊するはず。

こんな引き算にしたの誰?と思って遡ったけど、2007年にはそうなっていたらしい。時効だね。6fda4d0dd2c9590765609edbcf2cf02db62f7e87

普通に $arrData[$key].subtotal 使っちゃ駄目でしたっけ?

data/Smarty/templates/default/mail_templates/order_mail.tpl

<!--{if $arrOrder.use_point > 0}-->
値引き ¥<!--{$arrOrder.use_point*$smarty.const.POINT_VALUE+$arrOrder.discount|n2s|default:0}-->
<!--{/if}-->

受注登録で値引き 12345 円と入力すると、12 円と誤出力される。
合計は支障ない。

小 計 ¥100,000
値引き ¥12
送 料 ¥1,000
手数料 ¥0
============================================
合 計 ¥88,655

というか、デフォルトだと、そもそもポイント値引きと併用しないと表示されない。(それはまた別の話)
応急的に IF 分岐を変えて試した。

@seasoftjapan seasoftjapan added this to the 2.17.3 milestone Oct 19, 2023
@seasoftjapan seasoftjapan self-assigned this Oct 19, 2023
@seasoftjapan seasoftjapan changed the title カンマ区切りされない カンマ区切りされない。誤った値引き額が出力される。 Oct 19, 2023
@seasoftjapan seasoftjapan linked a pull request Jan 4, 2024 that will close this issue
ji-eunsoo added a commit that referenced this issue Feb 14, 2024
カンマ区切りされない、他 #780 #781
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant