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. 32
      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
*/
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)
setContentView(R.layout.activity_bankroll)
this.computableResults = getRealm().where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended
this.computableResults.addChangeListener { t, changeSet ->
val bankrolls = mutableSetOf<Bankroll>()
val indexes = mutableSetOf<Int>()
indexes.addAll(changeSet.changes.toList())
indexes.addAll(changeSet.insertions.toList())
indexes.addAll(changeSet.deletions.toList())
indexes.forEach { index ->
t[index]?.session?.bankroll?.let { br ->
bankrolls.add(br)
}
}
this.computeBankrollReports(bankrolls)
}
this.bankrolls = getRealm().where(Bankroll::class.java).findAll() // ComputableResult are existing only if sessions are ended
this.bankrolls.addChangeListener { _, changeSet ->
}
this.transactions = getRealm().where(Transaction::class.java).findAll() // ComputableResult are existing only if sessions are ended
this.transactions.addChangeListener { t, changeSet ->
val bankrolls = mutableSetOf<Bankroll>()
val indexes = mutableSetOf<Int>()
indexes.addAll(changeSet.changes.toList())
indexes.addAll(changeSet.insertions.toList())
indexes.addAll(changeSet.deletions.toList())
indexes.forEach { index ->
if (t.isNotEmpty()) {
t[index]?.bankroll?.let { br ->
bankrolls.add(br)
}
}
}
this.computeBankrollReports(bankrolls)
}
// this.computableResults = getRealm().where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended
// this.computableResults.addChangeListener { t, changeSet ->
//
// val bankrolls = mutableSetOf<Bankroll>()
// val indexes = mutableSetOf<Int>()
// indexes.addAll(changeSet.changes.toList())
// indexes.addAll(changeSet.insertions.toList())
// indexes.addAll(changeSet.deletions.toList())
// indexes.forEach { index ->
// t[index]?.session?.bankroll?.let { br ->
// bankrolls.add(br)
// }
// }
// this.computeBankrollReports(bankrolls)
// }
// this.bankrolls = getRealm().where(Bankroll::class.java).findAll() // ComputableResult are existing only if sessions are ended
// this.bankrolls.addChangeListener { _, changeSet ->
//
//
//
//
//
// }
// this.transactions = getRealm().where(Transaction::class.java).findAll() // ComputableResult are existing only if sessions are ended
// this.transactions.addChangeListener { t, changeSet ->
//
// val bankrolls = mutableSetOf<Bankroll>()
// val indexes = mutableSetOf<Int>()
// indexes.addAll(changeSet.changes.toList())
// indexes.addAll(changeSet.insertions.toList())
// indexes.addAll(changeSet.deletions.toList())
// indexes.forEach { index ->
// if (t.isNotEmpty()) {
// t[index]?.bankroll?.let { br ->
// bankrolls.add(br)
// }
// }
// }
// this.computeBankrollReports(bankrolls)
// }
}

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

@ -58,8 +58,18 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? {
return when (row) {
TransactionRow.BANKROLL -> row.editingDescriptors(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.BANKROLL -> row.editingDescriptors(
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.COMMENT -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.comment))
else -> super.editDescriptors(row)
@ -68,7 +78,14 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
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)
}
}
@ -80,7 +97,7 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa
if (primaryKey == null) { // automatically change the row for new data
GlobalScope.launch(Dispatchers.Main) {
delay(200)
when(row) {
when (row) {
TransactionRow.BANKROLL -> onRowSelected(0, TransactionRow.TYPE)
TransactionRow.TYPE -> onRowSelected(0, TransactionRow.AMOUNT)
// TransactionRow.AMOUNT -> onRowSelected(0, TransactionRow.DATE)
@ -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