public EventCancelConfirmationForm(Loan pContract, Event pEvent, List<Installment> archivedInstallments)
        {
            InitializeComponent();
            _contract = pContract;
            _archivedInstallments = archivedInstallments;
            _event = pEvent;

            if ((archivedInstallments == null) || (archivedInstallments.Count == 0))
            {
                listViewRepayments.Visible = false;
                cbShowCurrentState.Visible = false;
                lblComeBackToState.Visible = false;
                DisplayEvent();
            }
            else
            {
                listViewEvents.Visible = false;
                lblConfirmEventDelete.Visible = false;
                DisplayInstallmentsForRepaymentsStatus();
            }
        }
Example #2
0
 private static void SetLoanPenaltyAccrualEvent(OpenCbsCommand c, Event pEvent, OCurrency penalty)
 {
     c.AddParam("@id", pEvent.Id);
     c.AddParam("@penalty", penalty);
 }
 public void UpdateCommentForLoanEvent(Event evnt, SqlTransaction sqlTransac)
 {
     _eventManagement.UpdateCommentForLoanEvent(evnt, sqlTransac);
 }
 public void FireFundingLineEvent(Event e, FundingLine fundingLine, SqlTransaction sqlTransac)
 {
     e.IsFired = true;
     FundingLineEvent fL = e as FundingLineEvent;
     //_movementSetManagement.AddTransaction(mS, sqlTransac);
 }
 public void CancelFireEvent(Event e, SqlTransaction sqlTransac, Loan loanContract, int currencyId)
 {
     e.CancelDate = new DateTime(
                                     TimeProvider.Now.Year,
                                     TimeProvider.Now.Month,
                                     TimeProvider.Now.Day,
                                     TimeProvider.Now.Hour,
                                     TimeProvider.Now.Minute,
                                     TimeProvider.Now.Second
                                 );
        CancelEventOrigination(e, sqlTransac);
 }
Example #6
0
 private void CancelSavingsEvent(Event cancelledEvent, SqlTransaction sqlTransaction)
 {
     if (cancelledEvent.PaymentMethod != null)
         if (cancelledEvent.PaymentMethod.Method == OPaymentMethods.Savings
             &&
             (cancelledEvent.Code == "RBLE" ||
              cancelledEvent.Code == "RGLE" ||
              cancelledEvent.Code == "APR" ||
              cancelledEvent.Code == "ATR" ||
              cancelledEvent.Code == "RRLE" ||
              cancelledEvent.Code == "APTR"
             )
             )
         {
             int loanEventId = cancelledEvent.ParentId ?? cancelledEvent.Id;
             _savingServices.DeleteRepaymentFromSavingEvent(loanEventId, sqlTransaction);
         }
 }
Example #7
0
 private static void SetLoanEvent(OpenCbsCommand c, Event pEvent, int pContractId)
 {
     c.AddParam("@eventType", pEvent.Code);
     c.AddParam("@contractId", pContractId);
     c.AddParam("@eventDate", pEvent.Date);
     c.AddParam("@userId", pEvent.User.Id);
     c.AddParam("@deleted", pEvent.Deleted);
     c.AddParam("@tellerId", pEvent.TellerId);
     c.AddParam("@parentId", pEvent.ParentId);
     c.AddParam("@comment", pEvent.Comment);
 }
Example #8
0
 public void Insert(int index, Event e)
 {
     _list.Insert(index, e);
 }
Example #9
0
        public void UpdateCommentForLoanEvent(Event pEvent, SqlTransaction pSqlTransac)
        {
            const string q = @"UPDATE [ContractEvents]
                                     SET [comment] = @comment
                                     WHERE id = @id";

            using (OpenCbsCommand c = new OpenCbsCommand(q, pSqlTransac.Connection, pSqlTransac))
            {
                c.AddParam("@id", pEvent.Id);
                c.AddParam("@comment", pEvent.Comment);
                c.ExecuteNonQuery();
            }
        }
Example #10
0
        private static void GetEvent(OpenCbsReader r, Event pEvent)
        {
            //abstract class Event attributes
            string eventType = r.GetString("event_type");
            pEvent.Code = eventType;
            pEvent.ContracId = r.GetInt("contract_id");
            pEvent.Date = r.GetDateTime("event_date");
            pEvent.EntryDate = r.GetDateTime("entry_date");
            pEvent.Deleted = r.GetBool("event_deleted");
            pEvent.IsFired = true;
            pEvent.Cancelable = true;
            pEvent.ExportedDate = DateTime.MinValue;
            pEvent.Comment = r.GetString("comment");
            pEvent.TellerId = r.GetNullInt("teller_id");
            pEvent.ParentId = r.GetNullInt("parent_id");
            pEvent.CancelDate = r.GetNullDateTime("cancel_date");
            pEvent.ClientType = OClientTypes.All;

            switch (r.GetString("client_type_code"))
            {
                case "I":
                    pEvent.ClientType = OClientTypes.Person;
                    break;
                case "C":
                    pEvent.ClientType = OClientTypes.Corporate;
                    break;
                case "G":
                    pEvent.ClientType = OClientTypes.Group;
                    break;
                case "V":
                    pEvent.ClientType = OClientTypes.Village;
                    break;
            }

            //User associated to the event
            pEvent.User = new User
                              {
                                  Id = r.GetInt("user_id"),
                                  UserName = r.GetString("user_username"),
                                  Password = r.GetString("user_password"),
                                  LastName = r.GetString("user_lastname"),
                                  FirstName = r.GetString("user_firstname")
                              };

            pEvent.Currency = new Currency
                                  {
                                      Id = r.GetInt("currency_id"),
                                      Code = r.GetString("currency_code"),
                                      IsPivot = r.GetBool("is_pivot"),
                                      IsSwapped = r.GetBool("is_swapped")
                                  };

            pEvent.Branch = new Branch { Id = r.GetInt("branch_id") };
            pEvent.LoanProduct = new LoanProduct { Id = r.GetInt("product_id") };

            pEvent.User.SetRole(r.GetString("user_role"));
            if (
                eventType.Equals("ULIE") ||
                eventType.Equals("ULOE")
                )
                return;

            if (r.HasColumn("contract_code"))
                pEvent.Description = r.GetString("contract_code");
        }
Example #11
0
        private static OCurrency GetValue(ContractAccountingRule rule, Event eventItem)
        {
            OCurrency amount = 0;

            if (eventItem is SavingEvent)
            {
                if (rule.EventAttribute.Name.ToLower() == "amount")
                {
                    amount = (eventItem as SavingEvent).Amount;
                }

                if (rule.EventAttribute.Name.ToLower() == "fees")
                {
                    amount = (eventItem as SavingEvent).Fee;
                }
            }

            if (eventItem.Code == "LODE")
            {
                var e = (LoanDisbursmentEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "RGLE" ||
                eventItem.Code == "RBLE" ||
                eventItem.Code == "APR" ||
                eventItem.Code == "ATR" ||
                eventItem.Code == "APTR" ||
                eventItem.Code == "RRLE")
            {
                var e = (RepaymentEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "ROWO")
            {
                var e = (RepaymentOverWriteOffEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code.Substring(0, 3) == "LEE")
            {
                var e = (LoanEntryFeeEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "LCIP" || eventItem.Code == "LCIE" || eventItem.Code == "LCIW")
            {
                var e = (CreditInsuranceEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "TEET")
            {
                var e = (TrancheEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "ROLE")
            {
                var e = (RescheduleLoanEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "WROE")
            {
                var e = (WriteOffEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "GLBL" ||
                eventItem.Code == "LLBL" ||
                eventItem.Code == "BLGL" ||
                eventItem.Code == "GLLL" ||
                eventItem.Code == "BLLL" ||
                eventItem.Code == "BLRL" ||
                eventItem.Code == "LLGL" ||
                eventItem.Code == "BLRL" ||
                eventItem.Code == "GLRL" ||
                eventItem.Code == "LLRL")
            {
                var e = (OverdueEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "LIAE")
            {
                var e = (AccruedInterestEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem.Code == "LLPE")
            {
                var e = (ProvisionEvent) eventItem;
                amount = GetValue(e, rule);
            }

            if (eventItem is TellerEvent)
            {
                var e = (TellerEvent) eventItem;
                amount = GetValue(e, rule);
            }

            return amount;
        }
Example #12
0
 private static Booking GetBooking(ContractAccountingRule rule, Event eventItem)
 {
     if (eventItem.Code == rule.EventType.EventCode)
     {
         if ((rule.LoanProduct == null
              || (eventItem.LoanProduct != null && eventItem.LoanProduct.Id == rule.LoanProduct.Id))
             && (rule.SavingProduct == null
                 || (eventItem.SavingProduct != null && eventItem.SavingProduct.Id == rule.SavingProduct.Id))
             && (rule.Currency == null
                 || (eventItem.Currency != null && eventItem.Currency.Id == rule.Currency.Id))
             && (rule.ClientType == OClientTypes.All
                 || eventItem.ClientType == rule.ClientType)
             && (rule.EconomicActivity == null
                 ||
                 (eventItem.EconomicActivity != null && eventItem.EconomicActivity.Id == rule.EconomicActivity.Id)))
         {
             var booking = new Booking
                               {
                                   Amount = GetValue(rule, eventItem),
                                   CreditAccount = rule.CreditAccount,
                                   DebitAccount = rule.DebitAccount,
                                   ContractId = eventItem.ContracId,
                                   Date = eventItem.Date,
                                   EventId = eventItem.Id,
                                   RuleId = rule.Id,
                                   ExchangeRate = 1,
                                   Currency = eventItem.Currency,
                                   Branch = eventItem.Branch,
                                   EventType = eventItem.Code,
                                   Name = eventItem.Description + " [" + eventItem.Date + "]",
                                   Type = eventItem is SavingEvent
                                              ? OMovementType.Saving
                                              : eventItem is TellerEvent
                                                    ? OMovementType.Teller
                                                    : OMovementType.Loan
                               };
             return booking;
         }
     }
     return null;
 }
Example #13
0
 private static void SetLoanTransitionEvent(OpenCbsCommand c, Event pEvent, OCurrency amount)
 {
     c.AddParam("@id", pEvent.Id);
     c.AddParam("@amount", amount);
 }
Example #14
0
 /// <summary>
 /// Add e to events list and sort list by id
 /// </summary>
 /// <param name="e"></param>
 public void Add(Event e)
 {
     _list.Add(e);
     SortEventsById();
 }
Example #15
0
        public int AddLoanEventHead(Event pEvent, int pContractId, SqlTransaction pSqlTransac)
        {
            const string q = @"INSERT INTO [ContractEvents]
                                     ([event_type],
                                      [contract_id],
                                      [event_date],
                                      [user_id],
                                      [is_deleted],
                                      [teller_id],
                                      [parent_id],
                                      [comment])
                                     VALUES
                                      (@eventType,
                                       @contractId,
                                       @eventDate,
                                       @userId,
                                       @deleted,
                                       @tellerId,
                                       @parentId,
                                       @comment)
                                     SELECT SCOPE_IDENTITY()";

            using (OpenCbsCommand c = new OpenCbsCommand(q, pSqlTransac.Connection, pSqlTransac))
            {
                SetLoanEvent(c, pEvent, pContractId);
                return int.Parse(c.ExecuteScalar().ToString());
            }
        }
Example #16
0
 public void AddWithoutSorting(Event e)
 {
     _list.Add(e);
 }
Example #17
0
 public void DeleteLoanEvent(Event pEvent)
 {
     using (SqlConnection connection = GetConnection())
     using (SqlTransaction transaction = connection.BeginTransaction())
     {
         try
         {
             DeleteLoanEvent(pEvent, transaction);
             transaction.Commit();
         }
         catch (Exception)
         {
             transaction.Rollback();
             throw;
         }
     }
 }
Example #18
0
 public bool IsLastEvent(Event e)
 {
     for (int i = _list.Count - 1; i >= 0; i--)
     {
         Event _e = _list[i];
         if (!_e.Deleted)
         {
             return _e.Id == e.Id;
         }
     }
     return false;
 }
Example #19
0
        public void DeleteLoanEvent(Event pEvent, SqlTransaction pSqlTransac)
        {
            const string q = @"UPDATE [ContractEvents]
                               SET
                                 [is_deleted] = 1,
                                 [is_exported] = 0,
                                 [cancel_date] = @cancel_date
                               WHERE id = @id
                                 OR parent_id IN (SELECT parent_id FROM [ContractEvents] WHERE id = @id)
                                 OR id IN (SELECT parent_id FROM [ContractEvents] WHERE id = @id)";

            using (OpenCbsCommand c = new OpenCbsCommand(q, pSqlTransac.Connection, pSqlTransac))
            {
                c.AddParam("@id", pEvent.Id);
                c.AddParam("@cancel_date", pEvent.CancelDate);
                c.ExecuteNonQuery();
            }
        }
Example #20
0
 public void UnarchiveInstallments(Loan loan, Event e, SqlTransaction t)
 {
     _instalmentManager.UnarchiveInstallments(loan, e, t);
 }
Example #21
0
 public void ArchiveInstallment(Installment i, int contractId, Event e, SqlTransaction transaction)
 {
     const string q = @"INSERT INTO dbo.InstallmentHistory
                               (contract_id,
                                 event_id,
                                 number,
                                 expected_date,
                                 capital_repayment,
                                 interest_repayment,
                                 paid_interest,
                                 paid_capital,
                                 paid_fees,
                                 fees_unpaid,
                                 paid_date,
                                 comment,
                                 pending,
                                 start_date,
                                 olb)
                             VALUES (
                                     @contract_id,
                                     @event_id,
                                     @number,
                                     @expected_date,
                                     @capital_repayment,
                                     @interest_repayment,
                                     @paid_interest,
                                     @paid_capital,
                                     @paid_fees,
                                     @fees_unpaid,
                                     @paid_date,
                                     @comment,
                                     @pending,
                                     @start_date,
                                     @olb)";
     using (OpenCbsCommand c = new OpenCbsCommand(q, transaction.Connection, transaction))
     {
         c.AddParam("@contract_id", contractId);
         c.AddParam("@event_id", e.Id);
         c.AddParam("@number", i.Number);
         c.AddParam("@expected_date", i.ExpectedDate);
         c.AddParam("@capital_repayment", i.CapitalRepayment.Value);
         c.AddParam("@interest_repayment", i.InterestsRepayment.Value);
         c.AddParam("@paid_interest", i.PaidInterests.Value);
         c.AddParam("@paid_capital", i.PaidCapital.Value);
         c.AddParam("@paid_fees", i.PaidFees.Value);
         c.AddParam("@fees_unpaid", i.FeesUnpaid.Value);
         c.AddParam("@paid_date", i.PaidDate);
         c.AddParam("@comment", i.Comment);
         c.AddParam("@pending", i.IsPending);
         c.AddParam("@start_date", i.StartDate);
         c.AddParam("@olb", i.OLB);
         c.ExecuteNonQuery();
     }
 }
Example #22
0
 public void ArchiveInstallments(Loan loan, Event e, SqlTransaction t)
 {
     foreach (Installment i in loan.InstallmentList)
     {
         _instalmentManager.ArchiveInstallment(i, loan.Id, e, t);
     }
 }
Example #23
0
        public void UnarchiveInstallments(Loan loan, Event e, SqlTransaction t)
        {
            int eventId = e.ParentId == null ? e.Id : (int) e.ParentId;
            List<Installment> installments = GetArchivedInstallments(eventId, t);
            if (0 == installments.Count) return;

            // DeleteAccount existing installments
            const string queryDelete = @"DELETE FROM dbo.Installments
                                        WHERE contract_id = @contract_id";
            using (OpenCbsCommand c = new OpenCbsCommand(queryDelete, t.Connection, t))
            {
                c.AddParam("@contract_id", loan.Id);
                c.ExecuteNonQuery();
            }

            // Copy installments from archive to Installments table
            foreach (Installment i in installments)
            {
                const string queryInsert = @"INSERT INTO dbo.Installments (
                                               expected_date,
                                               interest_repayment,
                                               capital_repayment,
                                               contract_id,
                                               number,
                                               paid_interest,
                                               paid_capital,
                                               fees_unpaid,
                                               paid_date,
                                               paid_fees,
                                               comment,
                                               pending,
                                               start_date,
                                               olb)
                                             VALUES (
                                               @expected_date,
                                               @interest_repayment,
                                               @capital_repayment,
                                               @contract_id,
                                               @number,
                                               @paid_interest,
                                               @paid_capital,
                                               @fees_unpaid,
                                               @paid_date,
                                               @paid_fees,
                                               @comment,
                                               @pending,
                                               @start_date,
                                               @olb)";

                using (OpenCbsCommand c = new OpenCbsCommand(queryInsert, t.Connection, t))
                {
                    c.AddParam("@expected_date", i.ExpectedDate);
                    c.AddParam("@interest_repayment", i.InterestsRepayment.Value);
                    c.AddParam("@capital_repayment", i.CapitalRepayment.Value);
                    c.AddParam("@contract_id", loan.Id);
                    c.AddParam("@number", i.Number);
                    c.AddParam("@paid_interest", i.PaidInterests.Value);
                    c.AddParam("@paid_capital", i.PaidCapital.Value);
                    c.AddParam("@paid_fees", i.PaidFees.Value);
                    c.AddParam("@fees_unpaid", i.FeesUnpaid.Value);
                    c.AddParam("@paid_date", i.PaidDate);
                    c.AddParam("@comment", i.Comment);
                    c.AddParam("@pending", i.IsPending);
                    c.AddParam("@start_date", i.StartDate);
                    c.AddParam("@olb", i.OLB);
                    c.ExecuteNonQuery();
                }
            }

            // Mark archived installments as deleted (set delete_date)
            const string queryUpdate = @"UPDATE dbo.InstallmentHistory
                                         SET delete_date = @delete_date
                                         WHERE event_id = @event_id";
            using (OpenCbsCommand c = new OpenCbsCommand(queryUpdate, t.Connection, t))
            {
                c.AddParam("@delete_date", TimeProvider.Today);
                c.AddParam("@event_id", e.Id);
                c.ExecuteNonQuery();
            }
        }
Example #24
0
        public void FireEvent(Event e, Loan contract, SqlTransaction sqlTransac)
        {
            e.IsFired = true;

            if(e is LoanDisbursmentEvent)
            {
                LoanDisbursmentOrigination((LoanDisbursmentEvent)e, contract, sqlTransac);
            }
            else if (e is TrancheEvent)
            {
                TrancheEventOrigination((TrancheEvent)e, contract, sqlTransac);
            }
            else if (e is RescheduleLoanEvent)
            {
                ReschedulingOfALoanOrigination((RescheduleLoanEvent)e, contract, sqlTransac);
            }
            else if (e is RepaymentEvent)
            {
                LoanRepaymentOrigination((RepaymentEvent)e, contract, sqlTransac);
            }
            else if (e is OverdueEvent)
            {
                OverdueEventOrigination((OverdueEvent)e, contract, sqlTransac);
            }
            else if (e is ProvisionEvent)
            {
                ProvisionEventOrigination((ProvisionEvent)e, contract, sqlTransac);
            }
            else if (e is WriteOffEvent)
            {
                WriteOffOrigination((WriteOffEvent)e, contract, sqlTransac);
            }
            else if (e is AccruedInterestEvent)
            {
                LoanInterestAccruingOrigination((AccruedInterestEvent)e, contract, sqlTransac);
            }
            else if (e is LoanValidationEvent)
            {
                LoanValidationOrigination((LoanValidationEvent)e, contract, sqlTransac);
            }
            else if (e is CreditInsuranceEvent)
            {
                CreditInsuranceOrigination((CreditInsuranceEvent) e, contract, sqlTransac);
            }
            else if (e is LoanCloseEvent)
            {
                LoanCloseOrigination((LoanCloseEvent) e, contract, sqlTransac);
            }
            else if (e is ManualScheduleChangeEvent)
            {
                ManualScheduleChangeOrigination((ManualScheduleChangeEvent) e, contract, sqlTransac);
            }
            else if (e is LoanPenaltyAccrualEvent)
            {
                LoanPenaltyAccrualOrigination((LoanPenaltyAccrualEvent) e, contract, sqlTransac);
            }
            else if (e is LoanInterestAccrualEvent)
            {
                LoanInterestAccrualOrigination((LoanInterestAccrualEvent)e, contract, sqlTransac);
            }
            else if (e is LoanEntryFeeEvent)
            {
                AddEntryFeeEvent((LoanEntryFeeEvent)e, contract, sqlTransac);
            }
            else if (e is LoanTransitionEvent)
            {
                LoanTransitionEventOrigination((LoanTransitionEvent)e, contract, sqlTransac);
            }
        }
Example #25
0
 public void DeleteLoanDisbursementSavingsEvent(Loan loan, Event evnt)
 {
     _savingEventManager.DeleteLoanDisbursementSavingsEvent(loan.CompulsorySavings.Id, evnt.Id);
 }
Example #26
0
 public void FireTellerEvent(Event e)
 {
     using (SqlConnection connection = _eventManagement.GetConnection())
     using (SqlTransaction transaction = connection.BeginTransaction())
     {
         try
         {
             _eventManagement.AddTellerEvent((TellerEvent) e, transaction);
             transaction.Commit();
         }
         catch(Exception)
         {
             transaction.Rollback();
             throw;
         }
     }
 }
Example #27
0
 public void FireEvent(Event eEvent, Loan loan)
 {
     using (var transaction = _loanManager.GetConnection().BeginTransaction())
         try
         {
             _ePs.FireEvent(eEvent, loan, transaction);
             CallInterceptor(new Dictionary<string, object>
                 {
                     {"Loan", loan},
                     {"Event", eEvent},
                     {"SqlTransaction", transaction}
                 });
             transaction.Commit();
         }
         catch (Exception)
         {
             transaction.Rollback();
             throw;
         }
 }
Example #28
0
 private void CancelEventOrigination(Event e, SqlTransaction sqlTransac)
 {
     _eventManagement.DeleteLoanEvent(e, sqlTransac);
 }
Example #29
0
 private static void SetLoanInterestAccrualEvent(OpenCbsCommand c, Event pEvent, OCurrency interest)
 {
     c.AddParam("@id", pEvent.Id);
     c.AddParam("@interest", interest);
 }