• 締切済み

カートcgiで消費税の内税計算から外税にするには?

cgiのテーダの中で下の部分だけの変更でいけるかどうかは理解していないのですが # 総合計金額 $param{'zeikin'} =~ s/,//g; $sougoukei = $param{'price2'} + $daibiki_calc + $souryou2; $uchizei = int($sougoukei / (100 + $zei) * $zei); 1 while $uchizei =~ s/(.*\d)(\d\d\d)/$1,$2/g; 1 while $param{'price2'} =~ s/(.*\d)(\d\d\d)/$1,$2/g; 1 while $sougoukei =~ s/(.*\d)(\d\d\d)/$1,$2/g; $indata .= qq| <input type="hidden" name="総合計金額" value="$sougoukei円(内消費税:$uchizei円)">\n |; 一番下のデータを以下に書き換えたのですが、ダメでした。 $indata .= qq| <input type="hidden" name="総合計金額" value="$sougoukei円" + "$uchizei円">\n |; どう書き換えたらよいか教えて下さい。

  • CGI
  • 回答数2
  • ありがとう数13

みんなの回答

  • chie65535
  • ベストアンサー率43% (8525/19381)
回答No.2

>お支払総合計9,280円 が 9114+464+630= >10208円になるようにcgiデータがなるように変更したいのです。 それ、消費税を2重取りしてるよ。間違い。 >1 6668□500ml ヴィッラ・ピロ エクストラ・ヴァージン・オリーヴオイル 3,234 1 3,234 これは「本体3080円、税込3234円」ですよ。 >2 2152●750ml コルナス<古木> 1996年 アラン・ヴォージュ 5,880 1 5,880 これも「本体5600円、税込5880円」ですよ。 なので、 >商品代金合計  9,114 は「税込9114円」です。本体価格は「8680円」で、5%の税金は「434円」です。 >消費税  464 この「464円」は「送料630円(税込)」の税の「30円」と、商品のみの消費税「434円」を足した「434+30=464」です。 >送料 ( 1 個口 ) 630 これは「税込」なので「本体価格600円、税30円」です。 お客が支払う「総合計」は「8680(本体)+434(税)+600(本体)+30(税)=9744円」です。 >お支払総合計 9,280円 + 464」 本体価格は「8680(本体)+600(本体)=9280円」です。 消費税は「434(税)+30(税)=464円」です。 なので「お支払総合計 9,280円 + 464」で正しいです。 >お支払総合計9,280円 が 9114+464+630= >10208円になるようにcgiデータがなるように変更したいのです。 それ、明らかに「消費税の2重取り」で、違法です。 商品明細を「本体価格」にして、送料も税別表示にして 1 6668□500ml ヴィッラ・ピロ エクストラ・ヴァージン・オリーヴオイル 3,080 1 3,080 2 2152●750ml コルナス<古木> 1996年 アラン・ヴォージュ 5,600 1 5,600 商品代金合計 8,680 消費税 464 送料 ( 1 個口 )600 お支払総合計9,280円 + 464」 となるのが正しい。 なお 「商品代金合計 8,680」の「8680」は「本体価格合計である」事に注意。 「消費税 464」の「464」は「送料600円の税30円も含む」事に注意。 「送料 ( 1 個口 )600」の「600」は「税抜きの本体価格である」事に注意。 >$sougoukei = $sougoukei - $uchizei; >を >$sougoukei = $sougoukei + $uchizei; >にするこで解決致しまた。 ほら、引き算を足し算しちゃってるから「消費税の2重取り」になってる。 このまま続けたら「顧客からクレームの嵐」になるから、素人が訳も判らず弄り回すのは止めましょう。絶対に酷い目にあいます。 少なくとも「今のままでは、詐欺と言われても、弁解は不可能」です。

ys55588
質問者

お礼

ありがとうございます。 確かに計算式の間違いでした。

  • chie65535
  • ベストアンサー率43% (8525/19381)
回答No.1

$sougoukeiには「税金が入っちゃってる」から、その分、引き算しないと。 $uchizei = int($sougoukei / (100 + $zei) * $zei); の行の次に $sougoukei = $sougoukei - $uchizei; の行を入れてみよう。 当然だけど、$param{'price2'}は「税込み価格」になってないといけない。

ys55588
質問者

お礼

ありがとうございます。 $sougoukei = $sougoukei - $uchizei; を $sougoukei = $sougoukei + $uchizei; にするこで解決致しまた。 ほんとうにありがとうございます。

ys55588
質問者

補足

早々のご教授ありがとうございます。 質問仕方がま違っていたようですみません。 金額「商品代金合計  9,114 + 消費税  464 + 送料 ( 1 個口 ) 630 = お支払総合計 9,280円 が 9114+464+630= 10208円になるようにcgiデータがなるように変更したいのです。 よろしくお願いいたします。 HTMLの注文確認画面は以下です。 「注 文 確 認 ●今回のお買い上げ内容 送料の欄はクール便使用の場合クール料金が加算表示されます NO 商品名 単価 数量 備考1 備考2 小計 1 6668□500ml ヴィッラ・ピロ エクストラ・ヴァージン・オリーヴオイル 3,234 1 3,234 2 2152●750ml コルナス<古木> 1996年 アラン・ヴォージュ 5,880 1 5,880 商品代金合計  9,114 消費税  464 送料 ( 1 個口 ) 630 お支払総合計 9,280円 + 464」

関連するQ&A

  • 教えてプログラム

    Java Scriptで自動計算を行いたいのですが、うまいくいきません もう少しだと思うのですが、修正をお願いいたします。 在庫確保数+新規作成数*単価=合計で算出したいです。 NuNがなるべくでないようにしたいです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>予約登録</title> </head> <script language="javascript"> <!-- var amount = 3; var zei; var goukei; function calc(){ var total=0; var total2=0; var i=0; var go=0; var suti1,suti2; suti1 = document.myForm.d1.value; suti2 = document.myForm.d2.value; go=parseInt(suti1)+parseInt(suti2); while(i<amount*2){ total = total + document.myForm.elements[i].value*document.myForm.elements[++i].value; i++; } document.myForm.itotal.value = total; zei = total * 0.05; zei = Math.floor(zei); goukei = total + zei; document.myForm.goukei.value = goukei*go; } //--> </script> <body onload="calc()"> <FORM name="myForm" method="post"> <h2>予約登録</h2> <h3>商品一覧</h3> <table border="1" width="610"> <tr> <td>商品名</td> <td>単価</td> <td>販売可能数</td> <td>在庫確保数</td> <td>新規作成数</td> <td>金額合計</td> </tr> <tr> <td>稲荷寿司</td> <td>40<Input type="hidden" name="row0v" value="40"></td> <td>50</td> <td><input type="text" name="d1" onChange="calc()" value="0"></td> <td><input type="text" name="d2" onChange="calc()" value="0"></td> <td><input type="text" name="itotal" value="0"></td> </tr> <tr> <td>かんぴょう巻き</td> <td>40<input type="hidden" name="row1v" value="40"></td> <td>50</td> <td><input type="text" name="kanpyou1" onChange="calc()" value="0"></td> <td><input type="text" name="kanpyou2" onChange="calc()" value="0"></td> <td><input type="text" name="itotal2" value="0"></td> </tr> <tr> <td>おにぎり(梅干)</td> <td>90</td> <td>50</td> <td><input type="text" name="umeoni" value="0"></td> <td><input type="text" name="umeoni" value="0"></td> <td><input type="text" name="kanpyou" value="0"></td> </tr> <tr> <td colspan="5" align="right">単品合計金額</td> <td><input type="text" name="goukei" value="0"></td> </tr> </table> <tr> <td colspan="5" align="right">パッケージ合計金額</td> <td><input type="text" name="pakke" value="0"></td> </tr> <tr> <td colspan="5" align="right">総合計金額</td> <td><input type="text" name="sougoukei" value="0"></td> </tr> </table> <br> <br> <input type="submit" value="予約"> </form> </body>

  • フリーのカートCGIを基にカスタマイズしているのですが、どうしても解決

    フリーのカートCGIを基にカスタマイズしているのですが、どうしても解決できない問題が出て困っています。 チェックボックスの「VALUE」で複数の値を設定し、それを分割させて反映したいのですが、どうしても出来ません。 【HTML】 <INPUT TYPE = "checkbox" NAME = "option1" VALUE = "オプション1,5000" /> オプション1を追加(+¥5,000円)   <INPUT TYPE = "checkbox" NAME = "option2" VALUE = "オプション2,2500" /> オプション2追加(+¥2,500円) 【CGI】 print <<EOM; <th class="th1">オプション</th> <th class="th1">合計</th> my (%option1name,%option1price); @furirua = split(/,/ , option1); $option1name = $option1[0]; $option1price = $option1[1]; my (%furirubname,%furirubprice); @option2 = split(/,/ , option2); $option2name = $option2[0]; $option2price = $option2[1]; print "<td align=\"center\" class=\"td1\">$option1name<br>$option2name</td>"; my $kei2 = ($price{$code} + $option1price + $option2price) * $num; my $kei3 = &comma($kei2); print "<td align=\"right\" class=\"td2\">$kei3円</td>"; VALUEの最初の値は「オプション名」次が「価格」です。(項目は「製品名」等他にもあります) カート内でそれぞれに分かれて、「オプション名」は「オプション」の項目内に、 「価格」は本体価格($price{$code})と合計して個数($num)で掛けた値を「合計」出す。 上記のやり方だと、「オプション」の項目に、オプション1のVALUEが2つとも表示されてしまいます。 また一つだけ選ぶと、減った分?VALUEの項目がずれてしまいました。 こんな状態です。 【例】 <th class="th1">オプション</th> <td>オプション1<br>5000</td> オプション2の内容は次の項目に反映されてしまいます。 目標は 【例】(本体価格10,000円 オプション1と2を選択) <th class="th1">オプション</th> <th class="th1">合計</th> <td>オプション1<br>オプション2</td> <td>17,500円</td> CGIはまだあまり詳しくなく、いろいろ調べて試しながらカスタマイズしているのですが、今回のチェックボックスは全然解決できず時間も無くなってきました。 すみませんが、宜しくお願いします。

  • 自動計算の合計金額を次ページで表示

    いつも『教えて!goo』を活用させていただきありがとうございます。 またお世話になます。 今回はJavascriptで自動計算させた合計金額を、別ページで表示させることで困っております。 同じページで合計金額の表示はでき、それを基にパラメータで引き渡そうとしているのですが、なかなかうまくいきません。 同じページで合計金額の表示のタグ構成は以下のとおりです。 <自動計算側ページ:index.html>============ <html> <head> <SCRIPT language="JavaScript"> <!-- function cal(f){ var price=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) price+=parseInt(f[i].value); } f.price.value=price; } //--> </SCRIPT> </head> <body> <form> <p> <input type="radio" name="group1" value="30" />金:30円 <input type="radio" name="group1" value="20" />銀:20円 <input type="radio" name="group1" value="10" />銅:10円 </p> <p> <input type="radio" name="group2" value="400" />ダイヤモンド:300円 <input type="radio" name="group2" value="300" />サファイア:200円 <input type="radio" name="group2" value="200" />ルビー:100円 <input type="radio" name="group2" value="100" />アメジスト:100円 </p> <p> <input type="radio" name="group3" value="3000" />リチウム:3,000円 <input type="radio" name="group3" value="2000" />チタン:2,000円 <input type="radio" name="group3" value="1000" />白金:1,000円 </p> <hr /> <p><input type="button" value="合計金額を計算" onClick="cal(this.form)" /><br /> 合計:<input type="text" name="price" style="text-align:right" size="10" />円</p> </form> </body> </html> <p><input type="button" value="合計金額を計算" onClick="cal(this.form)" /><br /> 合計:<input type="text" name="price" style="text-align:right" size="10" />円</p> の箇所を<input type="submit" value="次ページで計算" />に書き換えて、 function cal(f){内に var pram="price="+price location.href="price.html?"+price; return false; を追記し、以上でテストすると <index.html?group1=30&group2=300&group3=1000#>といった風に radioボタンのnameとvalueが付いてしまい<price.html>にリンクしません。 以下に<合計金額表示ページ:price.html>も明記させていただきますので 皆様には、大変ご迷惑をおかけしますが、何卒ご回答の程よろしくお願い申し上げます。 <合計金額表示ページ:price.html>============ <html> <head> <SCRIPT language="JavaScript"> <!-- function pramWrite() { var pram=location.search; if (!pram) return false; pram=pram.substring(1); document.form1.price.value=pram; } //--> </script> </head> <body onload="pramWrite()"> <form name="form1" action="#"> 合計:<input type="text" name="price" style="text-align:right" size="10" />円 </form> </body> </html>

  • INPUT上でリターンを押してもsubmitされない方法

    フォームにてキーワードを入力し、検索ボタン押したときに javascriptにて以下の動作をさせたいと思っています。  ・hidden項目に特定値をセットしてsubmitをかける 以下のコードを書いたのですが、INPUT上でリターンを押すと submitされてしまいます。 ボタン以外でリターンを押した場合に何も動作させないようにするにはどのようにすればよいのでしょうか? -------------------------------------------------------------- <SCRIPT language="JavaScript"> <!-- function javasc_name(param){ document.form.PARAM.value = param document.form.submit() } //--> </SCRIPT> <form method="POST" action="cgi-bin/xxx.exe"> <input type="text" name="KEYWORD"> <input type="hidden" name="PARAM"> <input type="button" value="検索" OnClick="javasc_name(10)"> </form> --------------------------------------------------------------

    • ベストアンサー
    • HTML
  • 消費税の外税・内税表示

    私の会社では取引先によって、請求書などを発行する際に内税表示のところと外税表示にて発行するところがあります。 営業担当が税込価格で価格を決定した場合、税抜価格の合計に消費税5%をかけると、もとの税込価格の合計と異なってしまうためです。 また端数処理については、四捨五入・切上げ・切捨てなど、お客さんからの要望があれば、その指示に従っています。 このように顧客によって分けることは、税務上問題ではないのでしょうか?

  • セレクトボックスの値から料金を計算したい

    お世話になります。 現在、HTML中に下記のソースを記述しセレクトボックスの数量が選択されたときに自動計算をしようとしています。 ------------------------------------------------------------------- <table summary="ご購入内容"> <tr> <th><p>カレンダー</p></th> <td class="price">1,000円(税込)</td> <td class="select"> <input type="hidden" name="field16_name" value="カレンダー" /> <input type="hidden" name="field16_req" value="no" /> <select type="select" id="item1" name="field16_text" accesskey="a" tabindex="1" onchange="keisan();"> <option value="0"> 0部</option> <option value="1"> 1部</option> <option value="2"> 2部</option> <option value="3"> 3部</option> <option value="4"> 4部</option> <option value="5"> 5部</option> </select></td> </tr> </table> <table summary="小計金額"> <tr> <th><p>小計金額</p></th> <td><input type="text" id="sender-shoukei1" name="field21_text" value="0" accesskey="k" tabindex="6" /> 円(税込)</td> </tr> <tr> <th><p>送料</p></th> <td> <input type="text" id="sender-postage1" name="field22_text" value="0" accesskey="k" tabindex="7" /> 円(税込)</td> </tr> </table> <table summary="合計金額" class="inner-02 m20"> <tr class="gokei"> <th>合計金額</th> <td> <input type="text" id="sender-goukei" name="field29_text" value="0" accesskey="k" tabindex="14" /> 円(税込)</td> </tr> </table> ------------------------------------------------------------------- <script type="text/javascript"> /* <![CDATA[ */ function keisan(){ /* 商品 */ var price1 = document.form.field16_text.options[document.form.field16_text.selectedIndex].value; var field21_text= parseInt(price1)*1470 ; /* 小計 */ document.form.field21_text.value = addFigure(field21_text); /*送料 */ var price1p = 0; if ( price1 < 2 ) { price1p = price1 * 290; } else { price1p = 0; } var field22_text = parseInt(price1p); if ( field21_text > 5000 ) { field22_text = 0; } document.form.field22_text.value = addFigure(field22_text); /* 合計 */ var field29_text = parseInt(field21_text); document.form.field29_text.value = addFigure(field29_text); function addFigure(str) { var num = new String(str).replace(/,/g, ""); while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return num; } } /* ]]> */ </script> ------------------------------------------------------------------- しかし、「'document.form.field16_text'はNullまたはオブジェクトではありません」とエラーが出てしまいます。 アンダーバーは利用できないのでしょうか?どこに問題があるのかお教えください。 どうぞ宜しくお願いいたします。

  • ラベルのマークアップ

    <input name="price_min" type="text" value="" id="price_min" />~ <input name="price_max" type="text" value="" id="price_max" />円 このようなフォーム要素があるとき、 どのようにラベル付けをするのが妥当なのでしょうか? <label> 価格:<br> <input name="price_min" type="text" value="" id="price_min" />~ <input name="price_max" type="text" value="" id="price_max" />円 </label> このように、ひとつの<label>に対して二つのコントロールを含めることはできるのでしょうか? 現在は<span>価格</span> のように<span>タグで代用しています。 ぜひアドバイスをお願いします。

    • ベストアンサー
    • HTML
  • MySQL 5 PHP 5 データの受け渡しについて 困ってます。。

    MySQL 5 PHP 5 データの受け渡しについて 困ってます。。 下記内容で困ってます。機能としては (1)プロダクトテーブルからデータを読み込み表示。 ※プロダクトテーブルには商品データが8件登録されています。 (2)注文ボタンが押されたら受注テーブルにデータをカキコミ。 なんですが。。。 プロダクトテーブルから読み込んだデータを受注テーブルに書き込むと $product_id がいつも8(受注テーブルデータの一番最後の数字) $product_name  同じ $product_price 同じ ・・・ になってしまいます。 whileループしているので変数に代入するのも繰り返されて一番最後のデータが いつも格納されている状態だと思うのですが、この解決策を教えて下さい! 最近始めたばかりで良く理解出来ないので噛み砕いて教えてくれる方お願いします>< <?php //---------------------------------------- // □:テーブルからデータを読む //---------------------------------------- $mysql->query("SELECT * FROM products ORDER BY product_id") or die(mysql_error()); while($row = $mysql->fetch()){ $product_id = $row["product_id"]; $product_name = $row["product_name"]; $product_price = $row["product_price"]; echo <<<EOT <tr> <td align="center">$product_id<input name="product_id" type="hidden" value="$product_id" size="10" /></td> <td align="center">$product_name<input name="product_name[$product_id]" type="hidden" value="$new_product_name" size="10" /></td> <td align="right">$product_price<input name="product_price[$product_id]" type="hidden" value="$new_product_price" size="10" /></td> <td><input name="new_use_date[$product_id]" type="text" value="$new_use_date" size="20" /></td> <td><input name="new_use_time[$product_id]" type="text" value="$new_use_time" size="20" /></td> <td><input name="remarks[$product_id]" type="text" value="$new_remarks" size="40" /></td> <td><input name="submit_add" type="submit" value="注文する" /></td> </tr> EOT; } //ここまでwhileループ[終了の閉じカッコ] ?>

    • ベストアンサー
    • MySQL
  • 内税、外税

    業務委託契約で働くデザイナーです。報酬は年俸制の12ヶ月均等割で頂き、賞与、残業代は支払われていません。契約書の年俸額に内税と書かれています。以前の会社では外税でした。内税、外税の違いと、確定申告時は計算法が違うのか解りません。もう少ししましたら、契約更新が近づくので教えてください。

  • スカラー変数から数字を取り出してパラメータとして外部に渡したい

    perl初心者です。 ショッピングカートCGIを利用して、合計額をあらわす変数から数字を取り出して、パラメータとしてFORMで別のGCIに渡したいのですが、方法がわかりません。 まずショッピングカートCGIで、合計額を計算して変数「$GOKEI」に入れました(例.計算結果=1500)。 この$GOKEIから1500を取り出して、「_price」というパラメータで別のCGIに渡したいのです。 <form action="別のcgi.cgi" method="post"> <input type="hidden" name="_price" value="$GOKEI"> <input type=submit value="支払う"> </form> この表現では、「_price」に合計金額の1500が入らず、エラーとなってしまいます。 ご教授いただけましたら幸いです。

    • ベストアンサー
    • Perl