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 { fun merge(query: Query) : Query {

@ -473,6 +473,13 @@ sealed class QueryCondition : FilterElementRow {
calendar.add(Calendar.HOUR_OF_DAY, -24) calendar.add(Calendar.HOUR_OF_DAY, -24)
return realmQuery.greaterThanOrEqualTo(fieldName, calendar.time.startOfDay()).and().lessThanOrEqualTo(fieldName, calendar.time.endOfDay()) 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 -> { is DuringThisWeek -> {
val startDate = Date() val startDate = Date()
val calendar = Calendar.getInstance() 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" AnyDayOfWeek::class.java, IsWeekEnd::class.java, IsWeekDay::class.java -> "dayOfWeek"
AnyMonthOfYear::class.java -> "month" AnyMonthOfYear::class.java -> "month"
AnyYear::class.java -> "year" 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" StartedFromTime::class.java -> "startDateHourMinuteComponent"
EndedToTime::class.java -> "endDateHourMinuteComponent" EndedToTime::class.java -> "endDateHourMinuteComponent"
Duration::class.java -> "netDuration" Duration::class.java -> "netDuration"

@ -37,8 +37,12 @@ open class Transaction : RealmObject(), Manageable, StaticRowRepresentableDataSo
return when (queryCondition) { return when (queryCondition) {
QueryCondition.AnyBankroll::class.java -> "bankroll.id" 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.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 else -> null
} }
} }

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

Loading…
Cancel
Save