add transaction filtering management

dev
Razmig Sarkissian 7 years ago committed by Razmig Sarkissian
parent d0743a9dfd
commit 7c2fa52db7
  1. 12
      app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt
  2. 7
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  4. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Transaction.kt
  5. 4
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt

@ -67,7 +67,17 @@ class Query {
}
}
return realmQuery
val queryLastGame = this.conditions.filter {
it is QueryCondition.LastGame
}.firstOrNull()
val queryLastSession = this.conditions.filter {
it is QueryCondition.LastSession
}.firstOrNull()
queryLastGame?.let {
}
return realmQuery
}
fun merge(query: Query) : Query {

@ -473,6 +473,13 @@ sealed class QueryCondition : FilterElementRow {
calendar.add(Calendar.HOUR_OF_DAY, -24)
return realmQuery.greaterThanOrEqualTo(fieldName, calendar.time.startOfDay()).and().lessThanOrEqualTo(fieldName, calendar.time.endOfDay())
}
is PastDay -> {
val startDate = Date()
val calendar = Calendar.getInstance()
calendar.time = startDate
calendar.add(Calendar.DAY_OF_YEAR, -singleValue)
return realmQuery.greaterThanOrEqualTo(fieldName, calendar.time.startOfDay()).and().lessThanOrEqualTo(fieldName, startDate.endOfDay())
}
is DuringThisWeek -> {
val startDate = Date()
val calendar = Calendar.getInstance()

@ -91,7 +91,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
AnyDayOfWeek::class.java, IsWeekEnd::class.java, IsWeekDay::class.java -> "dayOfWeek"
AnyMonthOfYear::class.java -> "month"
AnyYear::class.java -> "year"
IsToday::class.java, WasYesterday::class.java, WasTodayAndYesterday::class.java, DuringThisYear::class.java, DuringThisMonth::class.java, DuringThisWeek::class.java -> "startDate"
PastDay::class.java, IsToday::class.java, WasYesterday::class.java, WasTodayAndYesterday::class.java, DuringThisYear::class.java, DuringThisMonth::class.java, DuringThisWeek::class.java -> "startDate"
StartedFromTime::class.java -> "startDateHourMinuteComponent"
EndedToTime::class.java -> "endDateHourMinuteComponent"
Duration::class.java -> "netDuration"

@ -37,8 +37,12 @@ open class Transaction : RealmObject(), Manageable, StaticRowRepresentableDataSo
return when (queryCondition) {
QueryCondition.AnyBankroll::class.java -> "bankroll.id"
QueryCondition.AnyTransactionType::class.java -> "type"
QueryCondition.AnyTransactionType::class.java -> "type.id"
QueryCondition.StartedFromDate::class.java, QueryCondition.StartedToDate::class.java -> "date"
QueryCondition.AnyDayOfWeek::class.java, QueryCondition.IsWeekEnd::class.java, QueryCondition.IsWeekDay::class.java -> "dayOfWeek"
QueryCondition.AnyMonthOfYear::class.java -> "month"
QueryCondition.AnyYear::class.java -> "year"
QueryCondition.PastDay::class.java, QueryCondition.IsToday::class.java, QueryCondition.WasYesterday::class.java, QueryCondition.WasTodayAndYesterday::class.java, QueryCondition.DuringThisYear::class.java, QueryCondition.DuringThisMonth::class.java, QueryCondition.DuringThisWeek::class.java -> "date"
else -> null
}
}

@ -113,9 +113,7 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable {
addAll(QueryCondition.moreOrLess<QueryCondition.NetAmountWon>())
addAll(QueryCondition.moreOrLess<QueryCondition.NetAmountLost>())
}
TRANSACTION_TYPES -> arrayListOf<QueryCondition>().apply {
}
TRANSACTION_TYPES -> Criteria.TransactionTypes.queryConditions.mapFirstCondition()
else -> arrayListOf()
}.apply {
this.forEach {

Loading…
Cancel
Save