cboddeposit-scene-depositCash.spp
cboddeposit/deposit/cboddeposit-scene-depositCash.spp
Download original file · Bank deposit source contents
1domain cboddeposit;23Scenario serial depositCash(4DepositRequest,5DepositAccount,6CashSettlementAccount,7InterestIncomeAccount,8CollectionInterestIncomeAccount,9PrincipalRecoveryAccount,10AccountEligibility,11CashAccountControl,12DepositProduct,13BusinessDay,14CashChannel,15CashAuthorizationPolicy,16AuthorizationEvidence,17AdmissionDecision,18DepositFeeParty,19DepositFeeContext,20DepositFeeRate,21DepositFeePlan,22DepositPlan,23DepositDetailPolicy,24CashDepositAgreement,25DepositBankProfile,26DepositOperatorFacts,27DepositNotices,28CashFailureRecord,29DepositAccounting,30DepositPostingLine[],31DepositPostingTotals,32DepositAccrualState,33DepositInterestPolicy,34InterestCalendar,35AgreementTerm,36AgreementPolicy,37AgreementBand[],38DepositAccrualPlan39) {40checkCashInput;41checkDetailPolicy;42parallel {43findDepositAccount;44findAccountEligibility;45findCashSettlementAccount;46findInterestIncomeAccount;47findCollectionInterestIncomeAccount;48findPrincipalRecoveryAccount;49findDepositAccrualState;50}51identify(DepositAccount);52identify(AccountEligibility);53identify(CashSettlementAccount);54identify(InterestIncomeAccount);55identify(CollectionInterestIncomeAccount);56identify(PrincipalRecoveryAccount);57identify(DepositAccrualState);58checkAccountParticipants;59describeAccountBalance;60checkCashControl;61checkDepositEligibility;62checkDepositOperatorBinding;63checkDepositBranchRange;64assessDepositDocumentNotices;65assessCashAdmission;66mergeDepositNotices;67checkCashAuthorization;68checkFeeAccount;69classifyDepositFee;70if (DepositFeePlan.applicable) {71prepareFeeLookup;72findDepositFeeRate;73}74checkRequiredFeeIdentified;75checkFeeRate;76calculateDepositFee;77checkKernelInput;78calculateDepositPlan;79checkPlan;80classifyDepositAccounting;81checkDepositAccounting;82checkPostingRules;83calculateDepositPostings;84checkDepositPostings;85checkAccrualPolicy;86checkAccrualDates;87calculateDepositAccrual;88prepareDepositAgreement;89preserveDepositPostingEvidence;90transaction {91settleCashDeposit bounds {92DepositAccount.interestBase: [0, null];93DepositAccount.overdraftInterest: [0, null];94DepositAccount.collectionInterest: [0, null];95DepositAccount.overdraftPrincipal: [0, null];96DepositAccount.overdraftExposure: [0, null];97CashSettlementAccount.balance: [null, null];98InterestIncomeAccount.balance: [0, null];99CollectionInterestIncomeAccount.balance: [0, null];100PrincipalRecoveryAccount.balance: [0, null];101};102accumulateAccrual;103updateDepositAccrualState;104completeDepositMetadata;105updateAccountEligibility;106insertCashDepositAgreement;107attachDepositPostings;108insertDepositPostingLine;109} fail {110recordDepositFailure;111if (ResultInfo.failure.recoveryStatus == "ROLLED_BACK"112|| ResultInfo.failure.recoveryStatus == "REVERSED") {113confirmNoCashMovement;114}115transaction {116insertCashFailureRecord;117}118}119}