diff --git a/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/AccountTransaction.kt b/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/AccountTransaction.kt index 171e63b5..387403b5 100644 --- a/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/AccountTransaction.kt +++ b/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/AccountTransaction.kt @@ -10,43 +10,43 @@ import java.util.* @JsonIdentityInfo(property = "id", generator = ObjectIdGenerators.PropertyGenerator::class) // to avoid stack overflow due to circular references open class AccountTransaction( - val bankAccount: BankAccount, - val amount: BigDecimal, - val currency: String, - val unparsedUsage: String, - val bookingDate: Date, - val otherPartyName: String?, - val otherPartyBankCode: String?, - val otherPartyAccountId: String?, - val bookingText: String?, - val valueDate: Date, - val statementNumber: Int, - val sequenceNumber: Int?, - val openingBalance: BigDecimal?, - val closingBalance: BigDecimal?, + open val bankAccount: BankAccount, + open val amount: BigDecimal, + open val currency: String, + open val unparsedUsage: String, + open val bookingDate: Date, + open val otherPartyName: String?, + open val otherPartyBankCode: String?, + open val otherPartyAccountId: String?, + open val bookingText: String?, + open val valueDate: Date, + open val statementNumber: Int, + open val sequenceNumber: Int?, + open val openingBalance: BigDecimal?, + open val closingBalance: BigDecimal?, - val endToEndReference: String?, - val customerReference: String?, - val mandateReference: String?, - val creditorIdentifier: String?, - val originatorsIdentificationCode: String?, - val compensationAmount: String?, - val originalAmount: String?, - val sepaUsage: String?, - val deviantOriginator: String?, - val deviantRecipient: String?, - val usageWithNoSpecialType: String?, - val primaNotaNumber: String?, - val textKeySupplement: String?, + open val endToEndReference: String?, + open val customerReference: String?, + open val mandateReference: String?, + open val creditorIdentifier: String?, + open val originatorsIdentificationCode: String?, + open val compensationAmount: String?, + open val originalAmount: String?, + open val sepaUsage: String?, + open val deviantOriginator: String?, + open val deviantRecipient: String?, + open val usageWithNoSpecialType: String?, + open val primaNotaNumber: String?, + open val textKeySupplement: String?, - val currencyType: String?, - val bookingKey: String, - val referenceForTheAccountOwner: String, - val referenceOfTheAccountServicingInstitution: String?, - val supplementaryDetails: String?, + open val currencyType: String?, + open val bookingKey: String, + open val referenceForTheAccountOwner: String, + open val referenceOfTheAccountServicingInstitution: String?, + open val supplementaryDetails: String?, - val transactionReferenceNumber: String, - val relatedReferenceNumber: String? + open val transactionReferenceNumber: String, + open val relatedReferenceNumber: String? ) { companion object { @@ -66,14 +66,11 @@ open class AccountTransaction( null, null, null, null, null, null, null, null, null, null, null, null, null, null, "", "", null, null, "", null) + open var id: String = "${bankAccount.id} ${IdDateFormat.format(bookingDate)} ${IdDateFormat.format(valueDate)} $amount $currency $unparsedUsage $otherPartyName $otherPartyBankCode $otherPartyAccountId" - var id: String = "${bankAccount.id} ${IdDateFormat.format(bookingDate)} ${IdDateFormat.format(valueDate)} $amount $currency $unparsedUsage $otherPartyName $otherPartyBankCode $otherPartyAccountId" - - - val showOtherPartyName: Boolean + open val showOtherPartyName: Boolean get() = otherPartyName.isNullOrBlank() == false /* && type != "ENTGELTABSCHLUSS" && type != "AUSZAHLUNG" */ // TODO - - val usage: String + open val usage: String get() = sepaUsage ?: unparsedUsage diff --git a/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/BankAccount.kt b/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/BankAccount.kt index b17f1611..a63d4dcf 100644 --- a/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/BankAccount.kt +++ b/ui/BankingUiCommon/src/main/java/net/dankito/banking/ui/model/BankAccount.kt @@ -8,33 +8,32 @@ import java.util.* @JsonIdentityInfo(property = "id", generator = ObjectIdGenerators.PropertyGenerator::class) // to avoid stack overflow due to circular references open class BankAccount @JvmOverloads constructor( - val customer: Customer, - val identifier: String, - var accountHolderName: String, - var iban: String?, - var subAccountNumber: String?, - val customerId: String, - var balance: BigDecimal = BigDecimal.ZERO, - var currency: String = "EUR", - var type: BankAccountType = BankAccountType.Girokonto, - val productName: String? = null, - val accountLimit: String? = null, - var lastRetrievedTransactionsTimestamp: Date? = null, - var supportsRetrievingAccountTransactions: Boolean = false, - var supportsRetrievingBalance: Boolean = false, - var supportsTransferringMoney: Boolean = false, - var supportsInstantPaymentMoneyTransfer: Boolean = false, + open val customer: Customer, + open val identifier: String, + open var accountHolderName: String, + open var iban: String?, + open var subAccountNumber: String?, + open val customerId: String, + open var balance: BigDecimal = BigDecimal.ZERO, + open var currency: String = "EUR", + open var type: BankAccountType = BankAccountType.Girokonto, + open val productName: String? = null, + open val accountLimit: String? = null, + open var lastRetrievedTransactionsTimestamp: Date? = null, + open var supportsRetrievingAccountTransactions: Boolean = false, + open var supportsRetrievingBalance: Boolean = false, + open var supportsTransferringMoney: Boolean = false, + open var supportsInstantPaymentMoneyTransfer: Boolean = false, bookedAccountTransactions: List = listOf() ) { internal constructor() : this(Customer(), "", "", null, null, "") // for object deserializers - var id: String = UUID.randomUUID().toString() - protected set + open var id: String = UUID.randomUUID().toString() - val displayName: String + open val displayName: String get() { val productName = productName ?: subAccountNumber @@ -46,14 +45,14 @@ open class BankAccount @JvmOverloads constructor( return identifier } - val displayNameIncludingBankName: String + open val displayNameIncludingBankName: String get() = "${customer.bank.name} ${displayName}" - var bookedTransactions: List = bookedAccountTransactions + open var bookedTransactions: List = bookedAccountTransactions protected set - var unbookedTransactions: List = listOf() + open var unbookedTransactions: List = listOf() protected set