private void BuildCoverageTxns(IDataContext db, TransactionTrigger transactionTrigger, Public resolvedPublic, Journal journal, JournalTemplateTxn templateTxn, decimal percentage) { if (transactionTrigger.PolicyTransactionTrigger != null) { var policyTransactionTrigger = (transactionTrigger.PolicyTransactionTrigger); foreach (var coverage in policyTransactionTrigger.Policy.Coverages) { if (!coverage.Premium.HasValue) { throw new Exception("Coverage premium not set"); } JournalTxn txn = new JournalTxn(); txn.Amount = ((ResolveAmount(db, transactionTrigger, resolvedPublic, templateTxn) * coverage.Premium.Value) * percentage); txn.Description = templateTxn.Description + " - " + coverage.CoverageType.Name; txn.Policy = policyTransactionTrigger.Policy; txn.Public = resolvedPublic; //sp ?? txn.ReportingEntityBranch = transactionTrigger.ReportingEntityBranch; //txn.TransactionOrigin = transactionTrigger.TransactionOrigin; txn.TxnDate = transactionTrigger.TxnDate.Value.Date; txn.JournalTemplateTxn = templateTxn; txn.PolicyCoverage = coverage; txn.Agent = journal.Agent; journal.JournalTxns.Add(txn); } } }
private void BuildStandardTxn(IDataContext db, TransactionTrigger transactionTrigger, Public resolvedPublic, Journal journal, JournalTemplateTxn templateTxn, decimal percentage) { JournalTxn txn = new JournalTxn(); if (templateTxn.JournalTxnClass.IsDefinedAmount) { txn.Amount = (ResolveAmount(db, transactionTrigger, resolvedPublic, templateTxn) * percentage); } if (templateTxn.JournalTxnClass.OfLedgerAccount) { txn.Amount = ((ResolveAmount(db, transactionTrigger, resolvedPublic, templateTxn) * ResolveLedgerBalance(db, transactionTrigger, templateTxn, resolvedPublic)) * percentage); } txn.Description = templateTxn.Description; if (transactionTrigger.PolicyTransactionTrigger != null) { txn.Policy = transactionTrigger.PolicyTransactionTrigger.Policy; } txn.Public = resolvedPublic; txn.ReportingEntityBranch = transactionTrigger.ReportingEntityBranch; //txn.TransactionOrigin = transactionTrigger.TransactionOrigin; txn.TxnDate = transactionTrigger.TxnDate.Value.Date; txn.JournalTemplateTxn = templateTxn; txn.Agent = journal.Agent; journal.JournalTxns.Add(txn); }
public void OnChangeJournalTxn(JournalTxn entity, UpdateOperations operations) { InterceptChange(entity, operations); }