Fixes bankroll graph currencies

csv
Laurent 7 years ago
parent 7e267abe27
commit 29b3d55340
  1. 13
      app/src/main/java/net/pokeranalytics/android/calculus/bankroll/BankrollReport.kt
  2. 7
      app/src/main/java/net/pokeranalytics/android/model/interfaces/Dated.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  4. 10
      app/src/main/java/net/pokeranalytics/android/model/realm/Currency.kt
  5. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  6. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Transaction.kt

@ -7,11 +7,12 @@ import io.realm.Realm
import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.model.filter.Query
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.model.interfaces.DatedGraphEntry
import net.pokeranalytics.android.model.interfaces.DatedBankrollGraphEntry
import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.model.realm.Transaction
import net.pokeranalytics.android.ui.graph.DataSetFactory
import net.pokeranalytics.android.util.extensions.findById
import timber.log.Timber
import java.util.*
import kotlin.collections.HashMap
@ -122,12 +123,12 @@ class BankrollReport(var setup: BankrollReportSetup) {
/**
* The list of dated items used for the graph
*/
private var evolutionItems: MutableList<DatedGraphEntry> = mutableListOf()
private var evolutionItems: MutableList<DatedBankrollGraphEntry> = mutableListOf()
/**
* Adds a list of dated items to the evolution items used to get the bankroll graph
*/
fun addDatedItems(items: Collection<DatedGraphEntry>) {
fun addDatedItems(items: Collection<DatedBankrollGraphEntry>) {
this.evolutionItems.addAll(items)
}
@ -167,7 +168,11 @@ class BankrollReport(var setup: BankrollReportSetup) {
var total = this.initial
this.evolutionItems.forEach {
total += it.amount
val rate = it.bankroll?.rate ?: 1.0
Timber.d("rate = $rate, amount = ${it.amount}")
total += it.amount * rate
Timber.d("total = $total")
val point = BRGraphPoint(total, it.date, it.objectIdentifier)
this.evolutionPoints.add(point)
}

@ -1,5 +1,6 @@
package net.pokeranalytics.android.model.interfaces
import net.pokeranalytics.android.model.realm.Bankroll
import java.util.*
interface Dated {
@ -14,4 +15,8 @@ interface DatedValue : Dated {
}
interface DatedGraphEntry : DatedValue, GraphIdentifiableEntry
interface DatedBankrollGraphEntry : DatedValue, GraphIdentifiableEntry {
var bankroll: Bankroll?
}

@ -41,7 +41,7 @@ open class Bankroll : RealmObject(), NameManageable, RowRepresentable {
val rate: Double
get() {
return this.currency?.rate ?: 1.0
return this.currency?.rate ?: Currency.DEFAULT_RATE
}
override fun getDisplayName(context: Context): String {

@ -8,8 +8,12 @@ import java.util.*
open class Currency : RealmObject() {
companion object {
@Ignore
val DEFAULTRATE: Double = 1.0
val DEFAULT_RATE: Double = 1.0
}
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -22,11 +26,11 @@ open class Currency : RealmObject() {
/**
* The rate of the currency with the main currency
*/
var rate: Double? = DEFAULTRATE
var rate: Double? = DEFAULT_RATE
fun refreshRelatedRatedValues() {
val rate = this.rate ?: DEFAULTRATE
val rate = this.rate ?: DEFAULT_RATE
val query = this.realm.where(ComputableResult::class.java)
query.`in`("session.bankroll.currency.id", arrayOf(this.id))
val cResults = query.findAll()

@ -46,7 +46,7 @@ import kotlin.collections.ArrayList
typealias BB = Double
open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDataSource, RowRepresentable, Timed,
TimeFilterable, Filterable, DatedGraphEntry {
TimeFilterable, Filterable, DatedBankrollGraphEntry {
enum class Type {
CASH_GAME,
@ -235,7 +235,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
var creationDate: Date = Date()
// The bankroll hosting the results
var bankroll: Bankroll? = null
override var bankroll: Bankroll? = null
set(value) {
field = value
this.updateRowRepresentation()
@ -399,7 +399,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
@Ignore
override var amount: Double = 0.0
get() {
return this.computableResult?.ratedNet ?: 0.0
return this.result?.net ?: 0.0
}
/**

@ -27,7 +27,7 @@ import kotlin.collections.ArrayList
open class Transaction : RealmObject(), Manageable, StaticRowRepresentableDataSource, RowRepresentable, TimeFilterable,
Filterable, DatedGraphEntry {
Filterable, DatedBankrollGraphEntry {
companion object {
@ -60,7 +60,7 @@ open class Transaction : RealmObject(), Manageable, StaticRowRepresentableDataSo
override var id = UUID.randomUUID().toString()
// The bankroll of the transaction
var bankroll: Bankroll? = null
override var bankroll: Bankroll? = null
// The amount of the transaction
override var amount: Double = 0.0
@ -144,7 +144,7 @@ open class Transaction : RealmObject(), Manageable, StaticRowRepresentableDataSo
}
override fun formattedValue(stat: Stat): TextFormat {
return stat.format(this.amount)
return stat.format(this.amount, currency = this.bankroll?.utilCurrency)
}
override fun legendValues(

Loading…
Cancel
Save