No description
Find a file
2026-02-23 20:41:05 +09:00
audit_export 電子帳簿保存法 2026-02-21 09:40:53 +09:00
components 一覧で苦しむ 2026-02-23 08:57:59 +09:00
generated_pdfs 休憩 2026-02-22 11:59:22 +09:00
models 休憩 2026-02-22 11:59:22 +09:00
scripts baseline: quarantine generated files and stabilize project 2026-02-22 23:50:41 +09:00
services スナック見えない 2026-02-23 20:41:05 +09:00
.gitignore baseline: quarantine generated files and stabilize project 2026-02-22 23:50:41 +09:00
app.log 赤伝 2026-02-20 23:24:01 +09:00
audit_export.py 電子帳簿保存法 2026-02-21 09:40:53 +09:00
build.py 一覧で苦しむ 2026-02-23 08:57:59 +09:00
compliance.py 最初 2026-02-19 11:53:09 +09:00
data_export.py 最初 2026-02-19 11:53:09 +09:00
main.py スナック見えない 2026-02-23 20:41:05 +09:00
README.md 一覧で苦しむ 2026-02-23 08:57:59 +09:00
requirements.txt 最初 2026-02-19 11:53:09 +09:00
sales_assist.db 赤伝 2026-02-20 23:24:01 +09:00
todo.md snackbarが出ないんだってよ 2026-02-23 17:44:15 +09:00

販売アシスト1号

Python + Flet で開発した、Android向けスタンドアロン販売管理アプリです。

主な機能

  • ダッシュボード(顧客数・商品数・売上件数・総売上)
  • 顧客管理(追加・編集・削除)
  • 商品管理(追加・編集・削除・在庫管理)
  • 売上管理(記録・閲覧)
  • データ出力JSON/CSV

セットアップ

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

実行

python main.py

伝票エクスプローラー(一覧)

伝票一覧画面で以下の操作ができます。

  • 検索: 伝票番号 / 顧客名 / 種別 / 備考
  • 期間: 直近7日 / 30日 / 3ヶ月 / 1年 / 全期間
  • ソート: 日付 / 伝票番号 / 顧客名 / 種別 / 更新日時
  • 並び順切替: 昇順 / 降順
  • 赤伝の表示切替
  • ページ送り(前 / 次)
  • 「マスタ編集」ボタンから顧客/商品マスタ編集へ遷移

大量データ7年分想定でも、SQLiteの条件検索とページングで段階的に表示します。

伝票エディタ(明細編集)

  • 明細は行追加 / 行削除で編集
  • 保存時に明細を正規化(空行除去、数量補正)
  • 保存時バリデーション:
    • 商品名必須
    • 数量は1以上
    • 単価は0以上

不正な行がある場合は保存せず、先頭エラーを画面通知します。

再利用用の最小フレーム:

  • components/explorer_framework.py(検索状態・期間・ソート)
  • components/editor_framework.py(明細正規化・検証・表示/編集テーブル)
  • components/universal_master_editor.py(顧客/商品マスタで検索・ソート・ページングを共通利用)

Androidビルド

直接コマンド

flet build apk . --module-name main

リリース用AAB:

flet build aab . --module-name main

build.py を使う場合

python build.py apk
python build.py aab

APKインストール

Androidエミュレータ

  • 方法A: 生成された APK をエミュレータへドラッグ&ドロップ
  • 方法B:
adb install -r <APKのパス>

トラブルシュート

1. 実機で起動時に落ちる

adb logcat -c
adb logcat

必要箇所だけ抽出:

adb logcat | grep -E "FATAL EXCEPTION|Traceback|Python|Chaquopy|sqlite|Permission denied|No such file"

2. Fletコマンドが見つからない

source .venv/bin/activate
pip install -r requirements.txt

3. ビルドが失敗する

  • Python/Flet バージョンを確認
  • Android SDK / JDK の設定を確認
  • 失敗ログ全文を保存して原因行を確認

データ保存

SQLite (sales.db) を使用します。主なテーブル:

  • customers
  • products
  • sales
  • audit_logs
  • integrity_checks
  • archive_sales

電子帳簿保存法対応(要点)

  • 取引データの長期保存10年
  • 監査証跡の記録
  • 整合性チェック(改ざん検知)
  • 検索・閲覧可能な形式での保管

リポジトリ整理の自動化

生成物や試作ファイルを削除せず trash/ に隔離するスクリプト:

bash scripts/auto_recover_and_build.sh /home/user/dev/h-1.flet.3

実行内容:

  • プロジェクトバックアップ作成
  • 生成物の trash/<timestamp>/ 移動
  • .gitignore 整備
  • Git ベースラインコミット作成(必要時)