149 lines
3.4 KiB
Markdown
149 lines
3.4 KiB
Markdown
# 販売アシスト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 <APKのパス>
|
||
```
|
||
|
||
## トラブルシュート
|
||
|
||
### 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/<timestamp>/` 移動
|
||
- `.gitignore` 整備
|
||
- Git ベースラインコミット作成(必要時)
|