Allow including other spendings in a budget
This commit is contained in:
@@ -29,6 +29,8 @@ class Budget {
|
||||
|
||||
late double income;
|
||||
|
||||
late bool includeOtherSpendings;
|
||||
|
||||
final account = IsarLink<Account>();
|
||||
|
||||
final items = IsarLinks<BudgetItem>();
|
||||
|
||||
@@ -394,18 +394,23 @@ const BudgetSchema = CollectionSchema(
|
||||
name: r'Budget',
|
||||
id: -3383598594604670326,
|
||||
properties: {
|
||||
r'income': PropertySchema(
|
||||
r'includeOtherSpendings': PropertySchema(
|
||||
id: 0,
|
||||
name: r'includeOtherSpendings',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'income': PropertySchema(
|
||||
id: 1,
|
||||
name: r'income',
|
||||
type: IsarType.double,
|
||||
),
|
||||
r'name': PropertySchema(
|
||||
id: 1,
|
||||
id: 2,
|
||||
name: r'name',
|
||||
type: IsarType.string,
|
||||
),
|
||||
r'period': PropertySchema(
|
||||
id: 2,
|
||||
id: 3,
|
||||
name: r'period',
|
||||
type: IsarType.byte,
|
||||
enumMap: _BudgetperiodEnumValueMap,
|
||||
@@ -454,9 +459,10 @@ void _budgetSerialize(
|
||||
List<int> offsets,
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
writer.writeDouble(offsets[0], object.income);
|
||||
writer.writeString(offsets[1], object.name);
|
||||
writer.writeByte(offsets[2], object.period.index);
|
||||
writer.writeBool(offsets[0], object.includeOtherSpendings);
|
||||
writer.writeDouble(offsets[1], object.income);
|
||||
writer.writeString(offsets[2], object.name);
|
||||
writer.writeByte(offsets[3], object.period.index);
|
||||
}
|
||||
|
||||
Budget _budgetDeserialize(
|
||||
@@ -467,10 +473,11 @@ Budget _budgetDeserialize(
|
||||
) {
|
||||
final object = Budget();
|
||||
object.id = id;
|
||||
object.income = reader.readDouble(offsets[0]);
|
||||
object.name = reader.readString(offsets[1]);
|
||||
object.includeOtherSpendings = reader.readBool(offsets[0]);
|
||||
object.income = reader.readDouble(offsets[1]);
|
||||
object.name = reader.readString(offsets[2]);
|
||||
object.period =
|
||||
_BudgetperiodValueEnumMap[reader.readByteOrNull(offsets[2])] ??
|
||||
_BudgetperiodValueEnumMap[reader.readByteOrNull(offsets[3])] ??
|
||||
BudgetPeriod.month;
|
||||
return object;
|
||||
}
|
||||
@@ -483,10 +490,12 @@ P _budgetDeserializeProp<P>(
|
||||
) {
|
||||
switch (propertyId) {
|
||||
case 0:
|
||||
return (reader.readDouble(offset)) as P;
|
||||
return (reader.readBool(offset)) as P;
|
||||
case 1:
|
||||
return (reader.readString(offset)) as P;
|
||||
return (reader.readDouble(offset)) as P;
|
||||
case 2:
|
||||
return (reader.readString(offset)) as P;
|
||||
case 3:
|
||||
return (_BudgetperiodValueEnumMap[reader.readByteOrNull(offset)] ??
|
||||
BudgetPeriod.month) as P;
|
||||
default:
|
||||
@@ -643,6 +652,16 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QAfterFilterCondition>
|
||||
includeOtherSpendingsEqualTo(bool value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'includeOtherSpendings',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> incomeEqualTo(
|
||||
double value, {
|
||||
double epsilon = Query.epsilon,
|
||||
@@ -962,6 +981,18 @@ extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
|
||||
}
|
||||
|
||||
extension BudgetQuerySortBy on QueryBuilder<Budget, Budget, QSortBy> {
|
||||
QueryBuilder<Budget, Budget, QAfterSortBy> sortByIncludeOtherSpendings() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'includeOtherSpendings', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QAfterSortBy> sortByIncludeOtherSpendingsDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'includeOtherSpendings', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QAfterSortBy> sortByIncome() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'income', Sort.asc);
|
||||
@@ -1012,6 +1043,18 @@ extension BudgetQuerySortThenBy on QueryBuilder<Budget, Budget, QSortThenBy> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QAfterSortBy> thenByIncludeOtherSpendings() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'includeOtherSpendings', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QAfterSortBy> thenByIncludeOtherSpendingsDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'includeOtherSpendings', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QAfterSortBy> thenByIncome() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'income', Sort.asc);
|
||||
@@ -1050,6 +1093,12 @@ extension BudgetQuerySortThenBy on QueryBuilder<Budget, Budget, QSortThenBy> {
|
||||
}
|
||||
|
||||
extension BudgetQueryWhereDistinct on QueryBuilder<Budget, Budget, QDistinct> {
|
||||
QueryBuilder<Budget, Budget, QDistinct> distinctByIncludeOtherSpendings() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'includeOtherSpendings');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, Budget, QDistinct> distinctByIncome() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'income');
|
||||
@@ -1077,6 +1126,12 @@ extension BudgetQueryProperty on QueryBuilder<Budget, Budget, QQueryProperty> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, bool, QQueryOperations> includeOtherSpendingsProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'includeOtherSpendings');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Budget, double, QQueryOperations> incomeProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'income');
|
||||
|
||||
Reference in New Issue
Block a user