S++Business systems language
DEMO SOURCE · SPP / APP / PHYRead the book

cboddeposit-10-opening.spp

cboddeposit/account/cboddeposit-10-opening.spp

Download original file · Bank deposit source contents

1domain cboddeposit;23Contract AccountOpeningAgreement {4    String openingNumber;5    DepositAccount account;6    AccountEligibility eligibility;7    CashSettlementAccount settlement;8}910atomic calculate prepareAccountOpening(11    BankAccount,12    DepositAccount,13    AccountEligibility,14    CashSettlementAccount,15    DepositAccrualState,16    AccountOpeningAgreement17) {18    DepositAccount.accountNumber = BankAccount.accountNumber;19    AccountEligibility.accountNumber = BankAccount.accountNumber;20    DepositAccrualState.accountNumber = BankAccount.accountNumber;21    DepositAccrualState.lastProductDate = AccountEligibility.openedOn;22    DepositAccount.loanState = LoanState.NORMAL;23    if (AccountEligibility.temporary == null) {24        AccountEligibility.temporary = false;25    }26    if (AccountEligibility.temporaryOpen == null) {27        AccountEligibility.temporaryOpen = false;28    }29    if (AccountEligibility.expiresOn == null) {30        AccountEligibility.expiresOn = 0;31    }32    AccountEligibility.status = AccountStatus.ACTIVE;33    AccountEligibility.detailCount = 0;34    AccountEligibility.lastTransactionDate = AccountEligibility.openedOn;35    AccountEligibility.cashDepositedToday = 0;36    AccountEligibility.transferredToday = 0;37    AccountEligibility.accountBalance = 0;38    DepositAccrualState.normalProduct = 0;39    DepositAccrualState.overdraftProduct = 0;40    DepositAccrualState.overdraftInterestProduct = 0;41    DepositAccrualState.actualProduct = 0;42    DepositAccrualState.agreementProduct = 0;43    DepositAccrualState.overdraftDays = 0;44    DepositAccrualState.overdraftInterestDays = 0;45    AccountOpeningAgreement.account = DepositAccount;46    AccountOpeningAgreement.eligibility = AccountEligibility;47    AccountOpeningAgreement.settlement = CashSettlementAccount;48}