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(); } }
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); }
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); } }
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); }
public void Insert(int index, Event e) { _list.Insert(index, e); }
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(); } }
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"); }
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; }
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; }
private static void SetLoanTransitionEvent(OpenCbsCommand c, Event pEvent, OCurrency amount) { c.AddParam("@id", pEvent.Id); c.AddParam("@amount", amount); }
/// <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(); }
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()); } }
public void AddWithoutSorting(Event e) { _list.Add(e); }
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; } } }
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; }
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(); } }
public void UnarchiveInstallments(Loan loan, Event e, SqlTransaction t) { _instalmentManager.UnarchiveInstallments(loan, e, t); }
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(); } }
public void ArchiveInstallments(Loan loan, Event e, SqlTransaction t) { foreach (Installment i in loan.InstallmentList) { _instalmentManager.ArchiveInstallment(i, loan.Id, e, t); } }
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(); } }
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); } }
public void DeleteLoanDisbursementSavingsEvent(Loan loan, Event evnt) { _savingEventManager.DeleteLoanDisbursementSavingsEvent(loan.CompulsorySavings.Id, evnt.Id); }
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; } } }
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; } }
private void CancelEventOrigination(Event e, SqlTransaction sqlTransac) { _eventManagement.DeleteLoanEvent(e, sqlTransac); }
private static void SetLoanInterestAccrualEvent(OpenCbsCommand c, Event pEvent, OCurrency interest) { c.AddParam("@id", pEvent.Id); c.AddParam("@interest", interest); }