11-Flask

Flask(Part.81)| 【注文一覧の更新時のバグ・会計処理で支払確定が行えないバグの修正】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

  • 注文一覧の更新時のバグを修正する
  • 会計処理で支払確定が行えないバグを修正する

注文一覧の更新時のバグ

ここでは、注文一覧の更新時のバグを修正します。具体的には「未提供」と「提供済み」の切り替え時の挙動に対してとなります。この部分は、該当アプリケーションの作成時にはうまく動いていた機能ですが、様々なアプリケーションや機能を追加したり、修正を行ったことで、意図しない動きが現れるようになっています。

修正用のブランチ release-order-listブランチを作成します。次のコマンドでブランチを作成します。

$ git checkout -b release-order-list

apps/registerapp/app.py

apps/registerapp/app.py のルート:register_order_listにある次の部分を編集します。

修正前

    if filter_date_str:
        # datetime-localは"YYYY-MM-DDThh:mm"形式で送られる
        filter_date_str = filter_date_str.replace("T", " ")  # 時間の間にTが入るので置換
        filter_date = datetime.strptime(filter_date_str, "%Y-%m-%d %H:%M")
        # 日本時間(JST)を適用
        filter_date = filter_date.replace(tzinfo=JST)

修正後

    if filter_date_str and filter_date_str.lower() != "none":
        try:
            filter_date_str = filter_date_str.replace("T", " ")
            filter_date = datetime.strptime(filter_date_str, "%Y-%m-%d %H:%M")
            filter_date = filter_date.replace(tzinfo=JST)
        except ValueError as e:
            print("日付変換エラー:", e)
            filter_date_str = ""  # ← テンプレートにも安全な値を渡す
            filter_date = None

Flaskアプリケーションを再起動して、「注文一覧」をクリックします。

「未提供」ボタンをクリックします。エラーにはならず、提供済みに変更されました。

ここまでの内容をGitでコミットします。

$ git status

$ git add .

$ git status

$ git commit –no-verify

Fix: 注文一覧の更新時のバグ修正(20250424)

注文一覧の更新時のバグを修正しています。具体的には「未提供」と「提供済み」の切り替え時の挙動に対してとなります。この部分は、該当アプリケーションの作成時にはうまく動いていた機能ですが、様々なアプリケーションや機能を追加したり、修正を行ったことで、意図しない動きが現れるようになっていました。

上書き保存をしてCOMMIT_EDITMSGファイルを閉じます。

その後、developブランチへマージして、 release-order-listブランチは削除します。

git checkout developコマンドでブランチをdevelopブランチへ切り替えます。

git merge release-order-listコマンドでdevelopブランチへマージします。

次のようなエラーが表示される場合は git restore instance/main.db コマンドでmain.dbを削除します。

利用コマンド

$ git restore instance/main.db

最後にgit branch -d release-order-listコマンドでrelease-order-listブランチを削除します。

会計処理で支払確定が行えないバグ

ここでは、会計処理の時に支払確定が行えないバグについて修正します。この部分は、割引や消費税率を変更した際に、小数点以下の数値が発生し、1円単位のズレが生じるためにおこるものです。

修正用のブランチ release-paybillブランチを作成します。次のコマンドでブランチを作成します。

$ git checkout -b release-paybill

apps/registerapp/app.py

apps/registerapp/app.py のルート:pay_billにある次の部分を編集します。

修正前

        bill.total_price = sum(
            (order.total * (100 - (order.discount_number or 0)) / 100)
            + (
                (order.total * (100 - (order.discount_number or 0)) / 100)
                / 100
                * (order.vat_number or 0)
            )  # VATがない場合は0%
            for order in orders
        )
        expected_total = int(bill.total_price)

修正後

        bill.total_price = sum(
            int(order.total * (100 - (order.discount_number or 0)) / 100)
            + int(
                int(order.total * (100 - (order.discount_number or 0)) / 100)
                / 100
                * (order.vat_number or 0)
            )  # VATがない場合は0%
            for order in orders
        )
        expected_total = int(bill.total_price)

ここまでの内容をGitでコミットします。

$ git status

$ git add .

$ git status

$ git commit –no-verify

Fix: 会計処理で支払確定が行えないバグ修正(20250424)

会計処理の時に支払確定が行えないバグについて修正しています。この部分は、割引や消費税率を変更した際に、小数点以下の数値が発生し、1円単位のズレが生じるためにおこるものでした。プログラム内の計算部分にキャストを行い修正しています。

上書き保存をしてCOMMIT_EDITMSGファイルを閉じます。

その後、developブランチへマージして、 release-paybillブランチは削除します。

git checkout developコマンドでブランチをdevelopブランチへ切り替えます。

git merge release-paybillコマンドでdevelopブランチへマージします。

次のようなエラーが表示される場合は git restore instance/main.db コマンドでmain.dbを削除します。

利用コマンド

$ git restore instance/main.db

最後にgit branch -d release-paybillコマンドでrelease-paybillブランチを削除します。

今回は以上になります。

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

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
11-Flask

Flask(Part.43)| 【消費税額管理アプリケーションのプログラミング(2)ユーザー側】

2025年4月5日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.27)| 【注文管理アプリケーションのプログラミング(3)】

2025年3月20日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.18)| 【画像のアップロードと利用(実装編)】

2025年3月11日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.17)| 【画像のアップロードと利用(概要編)】

2025年3月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site