示例#1
0
        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);
                }
            }
        }
示例#2
0
        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);
        }
示例#3
0
 public void OnChangeJournalTxn(JournalTxn entity, UpdateOperations operations)
 {
     InterceptChange(entity, operations);
 }