private void ManualScheduleChangeOrigination(ManualScheduleChangeEvent manualScheduleChangeEvent,
                                              Loan loanContract, SqlTransaction sqlTransac)
 {
     _eventManagement.AddLoanEvent(manualScheduleChangeEvent, loanContract.Id, sqlTransac);
 }
Example #2
0
        private void buttonManualSchedule_Click(object sender, EventArgs e)
        {
            if (null == _credit || 0 == _credit.InstallmentList.Count) return;
            try
            {
                ServiceProvider.GetContractServices().ManualScheduleAfterDisbursement();
                var manualScheduleForm = new ManualScheduleForm(_credit.Copy());

                if (manualScheduleForm.ShowDialog() != DialogResult.OK) return;
                var manualScheduleChangeEvent = new ManualScheduleChangeEvent
                {
                    User = User.CurrentUser,
                    Date = TimeProvider.Now
                };
                ServiceProvider.GetContractServices()
                               .AddManualScheduleChangeEvent(_credit, manualScheduleChangeEvent);

                _credit = manualScheduleForm.Loan;

                SaveContract();
                _credit = ServiceProvider.GetContractServices().SelectLoan(_credit.Id, true, true, true);
                DisplayListViewLoanRepayments(_credit);
                DisplayLoanEvents(_credit);
            }
            catch (Exception ex)
            {
                new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog();
            }
        }
Example #3
0
        public Loan AddManualScheduleChangeEvent(Loan loan, ManualScheduleChangeEvent manualScheduleChangeEvent)
        {
            using (SqlConnection conn = _savingEventManager.GetConnection())
            using (SqlTransaction sqlTransaction = conn.BeginTransaction())
            {
                try
                {
                    Loan copyOfLoan = loan.Copy();
                    _ePs.FireEvent(manualScheduleChangeEvent, loan, sqlTransaction);
                    ArchiveInstallments(copyOfLoan, manualScheduleChangeEvent, sqlTransaction);

                    sqlTransaction.Commit();
                    return loan;
                }
                catch (Exception ex)
                {
                    sqlTransaction.Rollback();
                    throw ex;
                }
            }
        }
Example #4
0
        public Loan ManualSchedule(Loan oldLoan, Loan newLoan, ManualScheduleChangeEvent manualScheduleChangeEvent)
        {
            using (var conn = _savingEventManager.GetConnection())
            using (var sqlTransaction = conn.BeginTransaction())
            {
                try
                {
                    _ePs.FireEvent(manualScheduleChangeEvent, oldLoan, sqlTransaction);
                    ArchiveInstallments(oldLoan, manualScheduleChangeEvent, sqlTransaction);
                    UpdateLoan(ref newLoan, sqlTransaction);
                    CallInterceptor(new Dictionary<string, object>
                    {
                        {"Loan", newLoan},
                        {"Event", manualScheduleChangeEvent},
                        {"SqlTransaction", sqlTransaction}
                    });

                    sqlTransaction.Commit();
                    return newLoan;
                }
                catch (Exception ex)
                {
                    sqlTransaction.Rollback();
                    throw ex;
                }
            }
        }
Example #5
0
 public void AddLoanEvent(ManualScheduleChangeEvent pEvent, int contractId, SqlTransaction transaction)
 {
     pEvent.Id = AddLoanEventHead(pEvent, contractId, transaction);
 }
Example #6
0
        private Event ReadEvent(OpenCbsReader r)
        {
            Event e;

            if (r.GetNullInt("lde_id").HasValue)
            {
                e = GetLoanDisbursmentEvent(r);
            }
            else if (r.GetNullInt("woe_id").HasValue)
            {
                e = GetWriteOffEvent(r);
            }
            else if (r.GetNullInt("rle_id").HasValue)
            {
                e = GetReschedulingLoanEvent(r);
            }
            else if (r.GetNullInt("rpe_id").HasValue)
            {
                e = GetRepaymentEvent(r);
            }
            else if (r.GetNullInt("tranche_id").HasValue)
            {
                e = GetTrancheLoanEvent(r);
            }
            else if (r.GetNullInt("liae_id").HasValue)
            {
                e = GetLoanInterestAccruingEvent(r);
            }
            else if (r.GetNullInt("ov_id").HasValue)
            {
                e = GetOverdueEvent(r);
            }
            else if (r.GetNullInt("pe_id").HasValue)
            {
                e = GetProvisionEvent(r);
            }
            else if (r.GetNullInt("ef_id").HasValue)
            {
                e = GetEntryFeeEvent(r);
            }
            else if (r.GetNullInt("cie_id").HasValue)
            {
                e = GetCreditInsuranceEvent(r);
            }
            else if (r.GetString("code").StartsWith("S"))
            {
                e = GetSavingEvent(r);
            }
            else if (r.GetNullInt("lpae_id").HasValue)
            {
                e = GetLoanPenaltyAccrualEvent(r);
            }
            else if (r.GetNullInt("aile_id").HasValue)
            {
                e = GetLoanInterestAccrualEvent(r);
            }
            else if (r.GetNullInt("glll_id").HasValue)
            {
                e = GetLoanTransitionEvent(r);
            }
            else if (r.GetNullInt("pwoe_id").HasValue)
            {
                e = GetPenaltyWriteOffEvent(r);
            }
            else if (r.GetNullInt("iwoe_id").HasValue)
            {
                e = GetInterestWriteOffEvent(r);
            }
            else
            {
                if (r.GetString("code").Equals("LOVE"))
                    e = new LoanValidationEvent { Id = r.GetInt("event_id") };
                else if (r.GetString("code").Equals("LOCE"))
                    e = new LoanCloseEvent { Id = r.GetInt("event_id") };
                else if (r.GetString("code").Equals("MSCE"))
                    e = new ManualScheduleChangeEvent { Id = r.GetInt("event_id") };
                else
                    e = new RegEvent { Id = r.GetInt("event_id") };
            }

            GetEvent(r, e);
            return e;
        }