private void btCancelLastSavingEvent_Click(object sender, EventArgs e) { try { if (!_saving.HasCancelableEvents()) return; EventStock es = new EventStock(); es.AddRange(_saving.Events); Event foundEvent = es.GetLastSavingNonDeletedEvent; var coaServices = ServicesProvider.GetInstance().GetChartOfAccountsServices(); var fiscalYear = coaServices.SelectFiscalYears().Find( y => y.OpenDate <= foundEvent.Date && (y.CloseDate >= foundEvent.Date || y.CloseDate == null)); if (null == fiscalYear || !fiscalYear.Open) { throw new OpenCbsContractSaveException( OpenCbsContractSaveExceptionEnum.OperationOutsideCurrentFiscalYear); } string message = GetString("ConfirmCancelLastEvent"); string caption = GetString("Confirm"); DialogResult res = MessageBox.Show(message, caption, MessageBoxButtons.YesNo); if (res != DialogResult.Yes) return; FrmDeleteEventComment frm = new FrmDeleteEventComment(); DialogResult result = frm.ShowDialog(); if (result == DialogResult.OK) { try { if (_saving is SavingBookContract) ((SavingBookContract)_saving).Loans = SavingServices.SelectLoansBySavingsId(_saving.Id); SavingEvent sEvent = SavingServices.CancelLastEvent(_saving, User.CurrentUser, frm.Comment); for (int i = 0; i <= _saving.Events.Count - 1; i++) if (_saving.Events[i].Id == sEvent.Id) { SavingEvent temp = _saving.Events[i]; temp.Deleted = true; _saving.Events[i] = temp; } } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } ((LotrasmicMainWindowForm)_mdiParent).ReloadAlertsSync(); DisplaySavingEvent(_saving); if (_person != null) DisplaySavings(_person.Savings); if (_client != null) DisplaySavings(_client.Savings); } } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }
private void GetBookings(ClosureOptions options) { List<Booking> bookings = new List<Booking>(); EventStock eventStock = new EventStock(); AccountingRuleCollection rules = ServicesProvider.GetInstance().GetAccountingRuleServices().SelectAll(); rules.SortByOrder(); if (options.DoLoanClosure) { UpdateStatus("LoanClosureProcessing", ""); eventStock = ServicesProvider.GetInstance().GetEventProcessorServices().SelectEventsForClosure(_beginDate, _endDate, _branch); UpdateStatus("LoanClosureProcessing", eventStock.GetEvents().Count.ToString()); //add generated events for processing } if (options.DoSavingClosure) { UpdateStatus("SavingsClosureProcessing", ""); eventStock.AddRange( ServicesProvider.GetInstance().GetSavingServices().SelectEventsForClosure( _beginDate, _endDate, _branch)); UpdateStatus("SavingsClosureProcessing", eventStock.GetEvents().Count.ToString()); } if (options.DoTellerManagementClosure) { UpdateStatus("TellerManagementProcessing", ""); eventStock.AddRange(ServicesProvider.GetInstance().GetEventProcessorServices().GetTellerEventsForClosure( _beginDate, _endDate)); UpdateStatus("EventClosureProcessing", eventStock.GetEvents().Count.ToString()); } //important to have sorted list eventStock.SortEventsById(); //closure procesing timerClosure.Start(); timerClosure.Enabled = true; //set ex rate List<ExchangeRate> rates = ServicesProvider.GetInstance().GetExchangeRateServices().SelectRatesByDate(_beginDate, _endDate); List<CoreDomain.Accounting.FiscalYear> fiscalYears = ServicesProvider.GetInstance().GetChartOfAccountsServices().SelectFiscalYears(); bookings.AddRange( _accountingClosure.GetBookings( rules, eventStock, ServicesProvider.GetInstance().GetTellerServices().FindAllTellers(), ServicesProvider.GetInstance().GetPaymentMethodServices().GetAllPaymentMethodsForClosure(), rates, fiscalYears)); timerClosure.Stop(); timerClosure.Enabled = false; //manual transactions if (options.DoManualEntries) { bookings.AddRange(ServicesProvider.GetInstance().GetAccountingServices().SelectMovements(false, rates, fiscalYears)); } #region Reversal if (options.DoReversalTransactions) { UpdateStatus("ReversalTransactionProcessing", ""); bookings.AddRange(ServicesProvider.GetInstance().GetAccountingServices().SelectMovementsForReverse( rates, fiscalYears)); } #endregion //add reversal provision booking if (options.DoLoanClosure) { bookings.AddRange( _generatedEvents.GetProvisionEvents().Select( provisionEvent => ServicesProvider.GetInstance().GetAccountingServices().SelectProvisionMovments( provisionEvent.ContracId, rates, fiscalYears)).Where(b => b != null)); } SortBookingsByDate(bookings); FillListView(bookings); }