2.3 KiB
2.3 KiB
依頼内容
Flutterプロジェクトのビルドエラーを解消し、顧客マスター管理(GPSソート/電話帳連携)と請求書履歴一覧の機能を完成させてください。
現状の問題
CustomerPickerModal内で DB のCustomer型とアプリ用Customerモデルが衝突し、型エラーが発生している。pdf_list_screen.dartで、DB から顧客情報付きの請求データを取得するInvoiceWithCustomer型やwatchAllInvoices()メソッドが見つからずエラーになっている。invoice_input_screen.dartでCustomerPickerModalを呼び出す際、古い引数existingCustomersを渡しておりエラーになっている。
実行ステップ
-
lib/data/database.dart の更新:
InvoicesとCustomersを結合して取得するためのInvoiceWithCustomerクラスを定義してください。AppDatabaseクラスに、最新順でデータを流すStream<List<InvoiceWithCustomer>> watchAllInvoices()メソッドを実装してください。- その後、
flutter pub run build_runner build --delete-conflicting-outputsを実行してコード生成を完了させてください。
-
lib/screens/customer_picker_modal.dart の修正:
- インポートで
../models/invoice_models.dartをapp_modelとして別名を付け、DBのCustomer型と明確に区別してください。 - GPS座標(latitude/longitude)を使用して、現在地に近い順にリストをソートするロジックを実装してください。
- 電話帳(flutter_contacts)からの取り込みと、DBへの保存(insertOnConflictUpdate)が正常に動くようにしてください。
- インポートで
-
lib/screens/pdf_list_screen.dart の修正:
database.watchAllInvoices()を使用して履歴一覧を表示するようにしてください。- リストタップ時に、DBのモデルからアプリ用の
Invoiceモデルへ変換して詳細画面へ遷移させてください。
-
lib/screens/invoice_input_screen.dart の修正:
CustomerPickerModalの呼び出し箇所から、存在しない引数existingCustomersを削除してください。
完了条件
flutter build apk --debug がエラーなく通り、かつ顧客マスターのGPSソートが機能すること。