Fix expense model

This commit is contained in:
Anmol Gupta 2018-06-22 12:17:25 +05:30
parent 366e8f30af
commit f669a01308
1 changed files with 47 additions and 43 deletions

View File

@ -5,25 +5,28 @@ import 'package:invoiceninja/data/models/entities.dart';
part 'expense_model.g.dart';
abstract class ExpenseListResponse implements Built<ExpenseListResponse, ExpenseListResponseBuilder> {
abstract class ExpenseListResponse
implements Built<ExpenseListResponse, ExpenseListResponseBuilder> {
BuiltList<ExpenseEntity> get data;
ExpenseListResponse._();
factory ExpenseListResponse([updates(ExpenseListResponseBuilder b)]) = _$ExpenseListResponse;
static Serializer<ExpenseListResponse> get serializer => _$expenseListResponseSerializer;
factory ExpenseListResponse([updates(ExpenseListResponseBuilder b)]) =
_$ExpenseListResponse;
static Serializer<ExpenseListResponse> get serializer =>
_$expenseListResponseSerializer;
}
abstract class ExpenseItemResponse implements Built<ExpenseItemResponse, ExpenseItemResponseBuilder> {
abstract class ExpenseItemResponse
implements Built<ExpenseItemResponse, ExpenseItemResponseBuilder> {
ExpenseEntity get data;
ExpenseItemResponse._();
factory ExpenseItemResponse([updates(ExpenseItemResponseBuilder b)]) = _$ExpenseItemResponse;
static Serializer<ExpenseItemResponse> get serializer => _$expenseItemResponseSerializer;
factory ExpenseItemResponse([updates(ExpenseItemResponseBuilder b)]) =
_$ExpenseItemResponse;
static Serializer<ExpenseItemResponse> get serializer =>
_$expenseItemResponseSerializer;
}
class ExpenseFields {
static const String privateNotes = 'privateNotes';
static const String publicNotes = 'publicNotes';
@ -52,112 +55,111 @@ class ExpenseFields {
static const String isDeleted = 'isDeleted';
}
abstract class ExpenseEntity extends Object with BaseEntity implements Built<ExpenseEntity, ExpenseEntityBuilder> {
abstract class ExpenseEntity extends Object
with BaseEntity
implements Built<ExpenseEntity, ExpenseEntityBuilder> {
static int counter = 0;
factory ExpenseEntity() {
return _$ExpenseEntity._(
id: --ExpenseEntity.counter,
privateNotes: '',
publicNotes: '',
shouldBeInvoiced: false,
transactionId: '',
transactionReference: '',
bankId: '',
expenseCurrencyId: 0,
exchangeCurrencyId: 0,
amount: 0.0,
expenseDate: '',
exchangeRate: 0.0,
invoiceCurrencyId: 0,
taxName1: '',
taxRate1: '',
taxRate2: '',
clientId: 0,
invoiceId: 0,
vendorId: 0,
customValue1: '',
customValue2: '',
);
}
@nullable
@BuiltValueField(wireName: 'private_notes')
String get privateNotes;
@nullable
@BuiltValueField(wireName: 'public_notes')
String get publicNotes;
@nullable
@BuiltValueField(wireName: 'should_be_invoiced')
bool get shouldBeInvoiced;
@nullable
@BuiltValueField(wireName: 'transaction_id')
String get transactionId;
@nullable
@BuiltValueField(wireName: 'transaction_reference')
String get transactionReference;
@nullable
@BuiltValueField(wireName: 'bank_id')
String get bankId;
@nullable
@BuiltValueField(wireName: 'expense_currency_id')
int get expenseCurrencyId;
@nullable
@BuiltValueField(wireName: 'expense_category_id')
int get exchangeCurrencyId;
@nullable
double get amount;
@nullable
@BuiltValueField(wireName: 'expense_date')
String get expenseDate;
@nullable
@BuiltValueField(wireName: 'exchange_rate')
double get exchangeRate;
@nullable
@BuiltValueField(wireName: 'invoiceCurrencyId')
int get invoiceCurrencyId;
@nullable
@BuiltValueField(wireName: 'tax_name1')
String get taxName1;
@nullable
@BuiltValueField(wireName: 'tax_rate1')
String get taxRate1;
@nullable
@BuiltValueField(wireName: 'tax_rate2')
String get taxRate2;
@nullable
@BuiltValueField(wireName: 'client_id')
int get clientId;
@nullable
@BuiltValueField(wireName: 'invoice_id')
int get invoiceId;
@nullable
@BuiltValueField(wireName: 'vendor_id')
int get vendorId;
@nullable
@BuiltValueField(wireName: 'custom_value1')
String get customValue1;
@nullable
@BuiltValueField(wireName: 'custom_value2')
String get customValue2;
@nullable
@BuiltValueField(wireName: 'expense_category')
BuiltList<ExpenseCategoryEntity> get expenseCtegories;
int compareTo(ExpenseEntity expense, String sortField, bool sortAscending) {
int response = 0;
ExpenseEntity creditA = sortAscending ? this : expense;
ExpenseEntity creditB = sortAscending ? expense: this;
ExpenseEntity creditB = sortAscending ? expense : this;
switch (sortField) {
case ExpenseFields.amount:
response = creditA.amount.compareTo(creditB.amount);
}
return response;
}
bool matchesSearch(String search) {
if (search == null || search.isEmpty) {
return true;
@ -165,17 +167,19 @@ abstract class ExpenseEntity extends Object with BaseEntity implements Built<Exp
return privateNotes.contains(search);
}
ExpenseEntity._();
static Serializer<ExpenseEntity> get serializer => _$expenseEntitySerializer;
}
abstract class ExpenseCategoryEntity extends Object with BaseEntity implements Built<ExpenseCategoryEntity, ExpenseCategoryEntityBuilder> {
@nullable
abstract class ExpenseCategoryEntity extends Object
with BaseEntity
implements Built<ExpenseCategoryEntity, ExpenseCategoryEntityBuilder> {
String get name;
ExpenseCategoryEntity._();
factory ExpenseCategoryEntity([updates(ExpenseCategoryEntityBuilder b)]) = _$ExpenseCategoryEntity;
static Serializer<ExpenseCategoryEntity> get serializer => _$expenseCategoryEntitySerializer;
}
factory ExpenseCategoryEntity([updates(ExpenseCategoryEntityBuilder b)]) =
_$ExpenseCategoryEntity;
static Serializer<ExpenseCategoryEntity> get serializer =>
_$expenseCategoryEntitySerializer;
}