
python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...
目標
- 会計時の消費税率を一括で変更する機能を追加する
割引機能
ここでは割引率を一括で全商品に適用したプログラムを引用して消費税率を一括で変更するプログラムを実装します。作業は前回同様、feature-discountブランチで行います。
apps/registerapp/app.py
apps/registerapp/app.pyに次の内容を追加します。
ファイルの末尾
@register_bp.route("/bill/<int:bill_id>/apply_bulk_vat", methods=["POST"])
@login_required
def apply_bulk_vat(bill_id):
vat_id = request.form.get("vat_id")
if not vat_id:
flash("消費税率が選択されていません。", "warning")
return redirect(url_for("register.view_bill", bill_id=bill_id))
vat = Vat.query.get(vat_id)
if not vat:
flash("消費税率が見つかりません。", "danger")
return redirect(url_for("register.view_bill", bill_id=bill_id))
bill = Bill.query.get(bill_id)
if bill.status == "paid":
flash("支払い済みの伝票には適用できません。", "warning")
return redirect(url_for("register.view_bill", bill_id=bill_id))
orders = Order.query.filter_by(bill_id=bill_id).all()
for order in orders:
order.vat_id = vat.id
order.vat_number = vat.number
db.session.commit()
flash("すべての注文に消費税率を適用しました。", "success")
return redirect(url_for("register.view_bill", bill_id=bill_id))
apps/registerapp/templates/register_bill.html
apps/registerapp/templates/register_bill.htmlで一括適用のフォームを次のように編集します。ここでは優先フラグにチェックがある値が初期値として表示されるように編集しています。
<!-- 一括割引フォーム -->
{% if bill.status != 'paid' %}
<!-- 一括割引フォーム -->
<p>こちらは割引率の一括変更です</p>
<form action="{{ url_for('register.apply_bulk_discount', bill_id=bill.id) }}" method="post" style="margin-bottom: 1em;">
<label for="bulk_discount_id">一括割引:</label>
<select name="discount_id" id="bulk_discount_id" class="custom-select">
{% if discount_list %}
<!-- 優先の割引率を先に表示 -->
{% for discount in discount_list if discount.priority %}
<option value="{{ discount.id }}">{{ discount.number }}%(優先)</option>
{% endfor %}
<!-- 優先でない割引率 -->
{% for discount in discount_list if not discount.priority %}
<option value="{{ discount.id }}">{{ discount.number }}%</option>
{% endfor %}
{% endif %}
</select>
<button type="submit" class="update-button">適用</button>
</form>
<hr>
<!-- 一括消費税率フォーム -->
<p>こちらは<span style="color: red;">消費税率</span>の一括変更です</p>
<form action="{{ url_for('register.apply_bulk_vat', bill_id=bill.id) }}" method="post" style="margin-bottom: 1em;">
<label for="bulk_vat_id">一括消費税率:</label>
<select name="vat_id" id="bulk_vat_id" class="custom-select">
{% if vat_list %}
<!-- 優先の消費税率を先に表示 -->
{% for vat in vat_list if vat.priority %}
<option value="{{ vat.id }}">{{ vat.number }}%(優先)</option>
{% endfor %}
<!-- 優先でない消費税率 -->
{% for vat in vat_list if not vat.priority %}
<option value="{{ vat.id }}">{{ vat.number }}%</option>
{% endfor %}
{% endif %}
</select>
<button type="submit" class="update-button">適用</button>
</form>
{% endif %}
次は「register_bill.html」の全体です。

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...

【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
Blueprint Flask Flask-SQLAlchemy Jinja2 MVT python session SQLite アップロード エンジニア セッション テンプレートエンジン バリデーション フレームワーク ルーティング 作成方法 初心者 利用方法 注意点 画像 統合
この続きはNoteとなります。