# 販売アシスト1号 Python + Flet で開発した、Android向けスタンドアロン販売管理アプリです。 ## 主な機能 - ダッシュボード(顧客数・商品数・売上件数・総売上) - 顧客管理(追加・編集・削除) - 商品管理(追加・編集・削除・在庫管理) - 売上管理(記録・閲覧) - データ出力(JSON/CSV) ## セットアップ ```bash python -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## 実行 ```bash 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ビルド ### 直接コマンド ```bash flet build apk . --module-name main ``` リリース用AAB: ```bash flet build aab . --module-name main ``` ### build.py を使う場合 ```bash python build.py apk python build.py aab ``` ## APKインストール ### Androidエミュレータ - 方法A: 生成された APK をエミュレータへドラッグ&ドロップ - 方法B: ```bash adb install -r ``` ## トラブルシュート ### 1. 実機で起動時に落ちる ```bash adb logcat -c adb logcat ``` 必要箇所だけ抽出: ```bash adb logcat | grep -E "FATAL EXCEPTION|Traceback|Python|Chaquopy|sqlite|Permission denied|No such file" ``` ### 2. Fletコマンドが見つからない ```bash 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 bash scripts/auto_recover_and_build.sh /home/user/dev/h-1.flet.3 ``` 実行内容: - プロジェクトバックアップ作成 - 生成物の `trash//` 移動 - `.gitignore` 整備 - Git ベースラインコミット作成(必要時)