消費税が5%や8%の税込価格から消費税10%の場合の価格を出してみた

  • 投稿者:
  • カテゴリ:
このエントリーをはてなブックマークに追加

GourmetVox.comの税込価格から消費税10%の場合の価格を出してみた

消費税が10%になってから3ヶ月になろうとしてますね。消費税は1989年(平成元年)4月1日の3%から始まり、1997年(平成9年)4月1日には5%、2014年(平成26年)4月1日には8%となり、来年にオリンピックを控える今年2019年(令和元年)10月1日からは10%となりました

消費税が10%になってから、ふと食べ歩きブログのGourmetVox.comの価格は飲食した時の消費税を含んだ税込価格なんだよな〜。消費税が5%や8%だった時の記事はその時の消費税を含んだ価格なので10%に直した価格も乗せてみようかなと思い、テンプレートを弄ってみました。

GourmetVox.comの税込価格から消費税10%の場合の価格を出してみた

昔の価格の消費税を10%に直して掲載したところで、その価格については全く参考にならないですが、自己満足で乗せてみます。前半は設定部分、後半は消費税が10%の場合の価格の算出とページに表示させるHTML部分。

<mt:EntryDate format="%Y%m%d" setvar="entrydate">
<mt:SetVar name="current_tax" value="10">

<mt:If name="entrydate" ge="20191001">
<mt:SetVar name="tax" value="10">
<mt:ElseIf ge="20140401">
<mt:SetVar name="tax" value="8">
<mt:ElseIf ge="19970401">
<mt:SetVar name="tax" value="5">
<mt:ElseIf ge="19890401">
<mt:SetVar name="tax" value="3">
<mt:Else>
<mt:SetVar name="tax" value="0">
</mt:If>

<mt:unless tag="EntryDataPrice"><mt:SetVar name="tax" value="$current_tax"></mt:unless>
<mt:If name="tax" lt="$current_tax">
<mt:Var name="tax" op="/" value="100" setvar="tax_rate">
<mt:Var name="tax_rate" op="+" value="1" setvar="tax_rate2">
<mtSetVar name="current_tax_rate" value="1.1">
<mt:Var name="current_tax_rate" op="/" value="$tax_rate2" setvar="tax_rate3">
<mt:EntryDataPrice setvar="price">
<mt:Var name="tax_rate3" op="*" value="$price" setvar="modified_price">
<mt:Var name="modified_price" regex_replace="/(\d*)\.(\d*)/","$1" setvar="modified_price">
<div id="modified_price" class="price"><span class="tax_txt">ちなみに消費税が10%だったら...</span><span class="modifi_price_txt">大体</span><mt:Var name="modified_price"><span class="yen">円くらい</span></div>
</mt:If>

詳しくみて行くと下記のようになります。

まずは初期設定と言ったらいいのか...。
ブログ記事の日付をYYYYMMDDでentrydateに、現在の消費税率をcurrent_taxに設定します。

// ブログ記事の日付をYYYYMMDDでentrydateに格納します。
<mt:EntryDate format="%Y%m%d" setvar="entrydate">

// 現在の消費税率をcurrent_taxに格納します。
<mt:SetVar name="current_tax" value="10">

続いてentrydateに設定した値から、そのブログ記事が書かれた時の消費税率をそれぞれのブログ記事に設定します。gourmetvox.com内のブログ記事は消費税が導入されてからのものだけですが、一応、最後の設定でどの条件にも当てはまらなかったものは「0」が設定されるようにしました。

// 先ほどのentrydateの値を使って、条件分岐に設定した値(YYYYMMDD)以上か、否かでブログ記事ごとに消費税率をtaxに設定します。
<mt:If name="entrydate" ge="20191001">
<mt:SetVar name="tax" value="10">
<mt:ElseIf ge="20140401">
<mt:SetVar name="tax" value="8">
<mt:ElseIf ge="19970401">
<mt:SetVar name="tax" value="5">
<mt:ElseIf ge="19890401">
<mt:SetVar name="tax" value="3">
<mt:Else>
<mt:SetVar name="tax" value="0">
</mt:If>

それとGourmetVox.com内に値段が不明の記事があります。それらの記事には現在の消費税が設定されるようにしました。現在の消費税を設定するようにしたのは、ブログ記事に書き出す際の条件分岐で書き出さないようにするためです。詳細は後ほど...。

// 値段が不明のエントリーはtaxに現在の消費税を上書き設定する。価格が不明の場合は、価格の入力欄が空欄になっています。
<mt:unless tag="EntryDataPrice"><mt:SetVar name="tax" value="$current_tax"></mt:unless>

ここからは実際にブログ記事内に書き出すための処理とテンプレートになります。

// ブログ記事ごとに設定された消費税taxがcurrent_taxに設定された現在の消費税率より小さいか、否かの判別。小さい場合に処理されます。
// 価格が不明の記事は現在の消費税率が設定されているのでcurrent_taxの値と同じなため、current_taxより値が小さい場合の条件に当てはまらないので、下記の処理は実行されず、HTMLも書き出されません。
<mt:If name="tax" lt="$current_tax">

// taxに設定されている値を100で割ってtax_rateに格納します。
<mt:Var name="tax" op="/" value="100" setvar="tax_rate">

// tax_rateに格納された値に1を足します。
<mt:Var name="tax_rate" op="+" value="1" setvar="tax_rate2">

// 当時の税込価格を消費税10%にするために掛ける値を算出するため、後ほど必要になるcurrent_tax_rateに1.1を設定します。
<mtSetVar name="current_tax_rate" value="1.1">

// 消費税が10%だった場合の価格を算出するため「当時の税込価格÷tax_rate2×current_tax_rate」という計算をするのでcurrent_tax_rateをブログ記事に設定されている消費税から出したtax_rate2で割って、「当時の税込価格」に掛ける値を算出してtax_rate3に格納します。
<mt:Var name="current_tax_rate" op="/" value="$tax_rate2" setvar="tax_rate3">

// ブログ記事に登録してある税込価格をpriceに設定します。
<mt:EntryDataPrice setvar="price">

// tax_rate3にブログ記事に登録してある税込価格をpriceを掛けて、消費税が10%の場合の価格をmodified_priceに格納します。
<mt:Var name="tax_rate3" op="*" value="$price" setvar="modified_price">

// 消費税が10%の場合の価格modified_priceの小数点以下を切り捨てます。
<mt:Var name="modified_price" regex_replace="/(\d*)\.(\d*)/","$1" setvar="modified_price">

// 消費税が10%と仮定した場合の価格を書き出すHTMLソース部分です。
<div id="modified_price" class="price"><span class="tax_txt">ちなみに消費税が10%だったら...</span><span class="modifi_price_txt">大体</span><mt:Var name="modified_price"><span class="yen">円くらい</span></div>
</mt:If>

この記事書いてて、ちょっと直した方がいいかなというところが出てきた。必要ない処理がされているから後で直さないと。

このエントリーをはてなブックマークに追加