feat: managing returns
This commit is contained in:
parent
ca1eeafd8f
commit
6947bcfb01
11 changed files with 521 additions and 22 deletions
20
lib/domain/models/accounting.dart
Normal file
20
lib/domain/models/accounting.dart
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import 'package:seshat/domain/models/book.dart';
|
||||
import 'package:seshat/domain/models/return_owner.dart';
|
||||
|
||||
class Accounting {
|
||||
Accounting(this.owners, this.books);
|
||||
List<ReturnOwner> owners;
|
||||
Map<String, Book> books;
|
||||
|
||||
factory Accounting.fromJSON(Map<String, dynamic> json) {
|
||||
final ownersJson = json["owners"] as List<dynamic>;
|
||||
List<ReturnOwner> owners = ownersJson
|
||||
.map((el) => ReturnOwner.fromJSON(el))
|
||||
.toList();
|
||||
|
||||
final booksJson = json["book_map"] as Map<String, dynamic>;
|
||||
Map<String, Book> books = {};
|
||||
booksJson.forEach((k, v) => books[k] = Book.fromJSON(v));
|
||||
return Accounting(owners, books);
|
||||
}
|
||||
}
|
||||
28
lib/domain/models/bal_stats.dart
Normal file
28
lib/domain/models/bal_stats.dart
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
class BalStats {
|
||||
BalStats(
|
||||
this.totalOwnedCollectedMoney,
|
||||
this.totalDifferentOwners,
|
||||
this.totalCollectedMoney,
|
||||
this.balId,
|
||||
this.totalSoldBooks,
|
||||
this.totalOwnedSoldBooks,
|
||||
);
|
||||
|
||||
int balId;
|
||||
double totalCollectedMoney;
|
||||
double totalOwnedCollectedMoney;
|
||||
int totalDifferentOwners;
|
||||
int totalSoldBooks;
|
||||
int totalOwnedSoldBooks;
|
||||
|
||||
factory BalStats.fromJSON(Map<String, dynamic> json) {
|
||||
return BalStats(
|
||||
json["total_owned_collected_money"],
|
||||
json["total_different_owners"],
|
||||
json["total_collected_money"],
|
||||
json["bal_id"],
|
||||
json["total_sold_books"],
|
||||
json["total_owned_sold_books"],
|
||||
);
|
||||
}
|
||||
}
|
||||
1
lib/domain/models/enums.dart
Normal file
1
lib/domain/models/enums.dart
Normal file
|
|
@ -0,0 +1 @@
|
|||
enum ReturnType { books, money, all }
|
||||
|
|
@ -1,11 +1,22 @@
|
|||
import 'package:seshat/domain/models/book_instance.dart';
|
||||
import 'package:seshat/domain/models/owner.dart';
|
||||
import 'package:seshat/domain/models/search_result.dart';
|
||||
|
||||
class ReturnOwner {
|
||||
ReturnOwner(this.owner, this.owned, this.ownedMoney);
|
||||
Owner owner;
|
||||
List<BookInstance> owned;
|
||||
double ownedMoney;
|
||||
ReturnOwner(this.ownerId, this.owedInstances, this.owedMoney);
|
||||
int ownerId;
|
||||
Owner? owner;
|
||||
List<BookInstance> owedInstances;
|
||||
List<SearchResult> owed = [];
|
||||
double owedMoney;
|
||||
|
||||
// factory ReturnOwner.fromJSON(Map<String, dynamic>) {}
|
||||
factory ReturnOwner.fromJSON(Map<String, dynamic> json) {
|
||||
int owner = json["owner_id"];
|
||||
double owedMoney = json["owed_money"];
|
||||
final owedJson = json["owed_books"] as List<dynamic>;
|
||||
List<BookInstance> owed = owedJson
|
||||
.map((el) => BookInstance.fromJSON(el))
|
||||
.toList();
|
||||
return ReturnOwner(owner, owed, owedMoney);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue