CGI-BBS > SO−HO > ショッピングバスケット > ショッピングバスケット5.12の改造で消費税を無料にしたい。


カレッヂ
カレッヂ


質問者 ganちゃん  投稿日 7/6(土) 00:17:39
教えてください。
ショッピングバスケット 5.12zeusを使っています。
同じ商品をたくさん買ってくださる方には、JavaScriptで個数に対応して
単価を下げていますが、色々な商品を少しずつ買ってくださる方で合計金額が
5万円以上の方に対しては消費税を無料にしたいと思い、cgiをいじっています。
全くの素人なので分からない部分がたくさんあります。
買い物かごの1ページめと2ページめの消費税は何とかこれでクリアーできましたが、

$OVER=50000;
$_FEE=0;
587行目 
if ($items[8] ne "") { ($s) = &figure($SHOKEIS); print "<TD ALIGN=RIGHT><FONT COLOR=#000000>$s</FONT></TD>\n"; }
*if ($SHOKEIS >= $OVER) { $TAXES = $_FEE ; }
if ($items[9] ne "") { $s = int($TAXES); ($s) = &figure($s); print "<TD ALIGN=RIGHT><FONT COLOR=#000000>$s</FONT></TD>\n"; }
if ($items[10] ne "") { if ($ZOUGEN1 eq "") { $s = '&nbsp;'; } else { ($s) = &figure($ZOUGEN1); } print "<TD ALIGN=RIGHT><FONT COLOR=#000000>$s</FONT></TD>\n"; }
if ($items[11] ne "") { if ($ZOUGEN2 eq "") { $s = '&nbsp;'; } else { ($s) = &figure($ZOUGEN2); } print "<TD ALIGN=RIGHT><FONT COLOR=#000000>$s</FONT></TD>\n"; }
*if ($SHOKEIS >= $OVER) { $ALL = $SHOKEIS; }
if ($items[12] ne "") { $s = int($ALL); ($s) = &figure($s); print "<TD ALIGN=RIGHT><FONT COLOR=#000000><B>$s</B></FONT></TD>\n"; }

最後に現れる確認のページの消費税と消費税を含む合計金額がクリアー出来ません。
それと、確認メールの消費税もクリアーできません。
消費税の合計額を0にする方法をできれば分かりやすく教えてください。
よろしくお願いいたします。

プロバイダ参照:https://admin.deskwing.net/
サーバのOS:UNIXサーバ
パソコンのOS:Mac9
エディタ:Adobe GoLive 5.0
FTPソフト:Adobe GoLive 5.0
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:middle

回答者 呑兵衛@大阪  [削除]  投稿日 7/11(木) 23:04:43
このバージョンでは、最終的に全購入商品の合計に5%を掛けるのではなく
それぞれの項目の縦合計を計算します。

全購入商品の合計は         $SHOKEIS += $shokei1;
全購入商品の消費税の合計は $TAXES += $tax[$i];
全購入商品の税込み合計額は $ALL += $SHOKEI[$i];
のようになっています。
商品ごとの消費税は計算させ、合計の段階で消費税を計算するかどうかを
判断させるといいでしょう。なので

$over = 50000;

420行目付近
$SHOKEIS += $shokei1;
TAXES = $TAXES_2 += $tax[$i];
$ALL += $SHOKEI[$i];
if ($SHOKEIS >= $over) { $TAXES = 0; $ALL -= $TAXES_2; }

とします。
ちなみに $_FEE の $_ は スカラーの特殊変数で紛らわしいので
使わないように心がけてください。
質問者 ganちゃん  [削除]  投稿日 7/13(土) 22:40:37
呑兵衛@大阪様 

何とか理解でき、うまく消費税が0になりました。

呑兵衛@大阪様に教えていただいたスクリプトは、
一人で考えても絶対考えつきませんでした。

返信が遅くなりましたが、大変感謝しています。
ありがとうございました。

このページは終了したので返信(回答)は書きこめません

Web裏技