Various bankroll fixes

dev
Laurent 7 years ago
parent 37d410cd76
commit 272d06674c
  1. 2
      app/src/main/java/net/pokeranalytics/android/calculus/bankroll/BankrollReport.kt
  2. 80
      app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt
  3. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/data/DataManagerFragment.kt
  4. 30
      app/src/main/java/net/pokeranalytics/android/ui/fragment/data/TransactionDataFragment.kt

@ -114,7 +114,7 @@ class BankrollReport(var setup: BankrollReportSetup) : RowRepresentable {
* Computes the net banked amount * Computes the net banked amount
*/ */
private fun computeNetBanked() { private fun computeNetBanked() {
this.netBanked = this.withdrawalTotal - this.depositTotal this.netBanked = -this.withdrawalTotal - this.depositTotal
} }
/** /**

@ -37,46 +37,46 @@ class BankrollActivity : PokerAnalyticsActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_bankroll) setContentView(R.layout.activity_bankroll)
this.computableResults = getRealm().where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended // this.computableResults = getRealm().where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended
this.computableResults.addChangeListener { t, changeSet -> // this.computableResults.addChangeListener { t, changeSet ->
//
val bankrolls = mutableSetOf<Bankroll>() // val bankrolls = mutableSetOf<Bankroll>()
val indexes = mutableSetOf<Int>() // val indexes = mutableSetOf<Int>()
indexes.addAll(changeSet.changes.toList()) // indexes.addAll(changeSet.changes.toList())
indexes.addAll(changeSet.insertions.toList()) // indexes.addAll(changeSet.insertions.toList())
indexes.addAll(changeSet.deletions.toList()) // indexes.addAll(changeSet.deletions.toList())
indexes.forEach { index -> // indexes.forEach { index ->
t[index]?.session?.bankroll?.let { br -> // t[index]?.session?.bankroll?.let { br ->
bankrolls.add(br) // bankrolls.add(br)
} // }
} // }
this.computeBankrollReports(bankrolls) // this.computeBankrollReports(bankrolls)
} // }
this.bankrolls = getRealm().where(Bankroll::class.java).findAll() // ComputableResult are existing only if sessions are ended // this.bankrolls = getRealm().where(Bankroll::class.java).findAll() // ComputableResult are existing only if sessions are ended
this.bankrolls.addChangeListener { _, changeSet -> // this.bankrolls.addChangeListener { _, changeSet ->
//
//
//
//
//
} // }
this.transactions = getRealm().where(Transaction::class.java).findAll() // ComputableResult are existing only if sessions are ended // this.transactions = getRealm().where(Transaction::class.java).findAll() // ComputableResult are existing only if sessions are ended
this.transactions.addChangeListener { t, changeSet -> // this.transactions.addChangeListener { t, changeSet ->
//
val bankrolls = mutableSetOf<Bankroll>() // val bankrolls = mutableSetOf<Bankroll>()
val indexes = mutableSetOf<Int>() // val indexes = mutableSetOf<Int>()
indexes.addAll(changeSet.changes.toList()) // indexes.addAll(changeSet.changes.toList())
indexes.addAll(changeSet.insertions.toList()) // indexes.addAll(changeSet.insertions.toList())
indexes.addAll(changeSet.deletions.toList()) // indexes.addAll(changeSet.deletions.toList())
indexes.forEach { index -> // indexes.forEach { index ->
if (t.isNotEmpty()) { // if (t.isNotEmpty()) {
t[index]?.bankroll?.let { br -> // t[index]?.bankroll?.let { br ->
bankrolls.add(br) // bankrolls.add(br)
} // }
} // }
} // }
this.computeBankrollReports(bankrolls) // this.computeBankrollReports(bankrolls)
} // }
} }

@ -86,6 +86,8 @@ open class DataManagerFragment : RealmFragment() {
protected open fun saveData() { protected open fun saveData() {
val savable = this.item val savable = this.item
this.willSaveData()
when (savable) { when (savable) {
is Savable -> { is Savable -> {
val status = savable.getSaveValidityStatus(realm = this.getRealm()) val status = savable.getSaveValidityStatus(realm = this.getRealm())
@ -117,6 +119,10 @@ open class DataManagerFragment : RealmFragment() {
} }
open fun willSaveData() {
}
/** /**
* Delete data * Delete data
*/ */

@ -58,8 +58,18 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? { override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? {
return when (row) { return when (row) {
TransactionRow.BANKROLL -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.bankroll, "data" to getRealm().sorted<Bankroll>() )) TransactionRow.BANKROLL -> row.editingDescriptors(
TransactionRow.TYPE -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.type, "data" to getRealm().sorted<TransactionType>() )) mapOf(
"defaultValue" to this.transaction.bankroll,
"data" to getRealm().sorted<Bankroll>()
)
)
TransactionRow.TYPE -> row.editingDescriptors(
mapOf(
"defaultValue" to this.transaction.type,
"data" to getRealm().sorted<TransactionType>()
)
)
TransactionRow.AMOUNT -> row.editingDescriptors(mapOf("defaultValue" to (if (this.transaction.amount != 0.0) this.transaction.amount.round() else ""))) TransactionRow.AMOUNT -> row.editingDescriptors(mapOf("defaultValue" to (if (this.transaction.amount != 0.0) this.transaction.amount.round() else "")))
TransactionRow.COMMENT -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.comment)) TransactionRow.COMMENT -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.comment))
else -> super.editDescriptors(row) else -> super.editDescriptors(row)
@ -68,7 +78,14 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
when (row) { when (row) {
TransactionRow.DATE -> DateTimePickerManager.create(requireContext(), row, this, this.transaction.date, onlyDate = true, isClearable = false) TransactionRow.DATE -> DateTimePickerManager.create(
requireContext(),
row,
this,
this.transaction.date,
onlyDate = true,
isClearable = false
)
else -> super.onRowSelected(position, row, fromAction) else -> super.onRowSelected(position, row, fromAction)
} }
} }
@ -88,7 +105,14 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa
} }
} }
} }
}
override fun willSaveData() {
super.willSaveData()
val additive = this.transaction.type?.additive ?: true
if (!additive) {
this.transaction.amount *= -1
}
} }
} }
Loading…
Cancel
Save