public void ApplyRulesAmountEventFundingLine(FundingLineEvent e) { Context rule = new Context(new ValidateAmountofEventFundingLine()); rule.SetEventFundingLine(e); rule.ValidateRulesForFundingLine(); }
private void buttonAddFundingLineEvent_Click(object sender, EventArgs e) { if (_fundingLine.Id == 0) { Notify("notSaved"); return; } FrmFundingLineEvent frmEvent = new FrmFundingLineEvent(_fundingLine); frmEvent.ShowDialog(); if (null == frmEvent.FundingLineEvent) { return; } try { FundingLineEvent newFundingLineEvent = frmEvent.FundingLineEvent; newFundingLineEvent = ServicesProvider.GetInstance().GetFundingLinesServices().AddFundingLineEvent(newFundingLineEvent); _fundingLine.AddEvent(newFundingLineEvent); RefreshView(); } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }
private void frmFundingLineEvent_FormClosing(object sender, FormClosingEventArgs e) { if (!_saved) { _fundingLineEvent = null; } }
public FrmFundingLineEvent(FundingLine pFundingLine, FundingLineEvent pFundingLineEvent) { InitializeComponent(); _FundingLine = pFundingLine; _fundingLineEvent = pFundingLineEvent; InitializeComboBoxDirections(); dateTimePickerEvent.Value = TimeProvider.Now; }
public FrmFundingLineEvent(FundingLine pFundingLine) { InitializeComponent(); _FundingLine = pFundingLine; _exchangeRate = null; _fundingLineEvent = new FundingLineEvent(); InitializeComboBoxDirections(); dateTimePickerEvent.Value = TimeProvider.Now; }
/// <summary> /// Select all events for selected Funding Line /// </summary> /// <param name="fundingLine">funding line </param> /// <returns>list of Funding Line events</returns> public List <FundingLineEvent> SelectFundingLineEvents(FundingLine fundingLine) { List <FundingLineEvent> list = new List <FundingLineEvent>(); const string sqlText = @"SELECT [id], [code], [amount], [direction], [fundingline_id], [deleted], [creation_date], [type] FROM [FundingLineEvents] WHERE fundingline_id = @fundingline_id ORDER BY creation_date DESC, id DESC"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand cmd = new OpenCbsCommand(sqlText, conn)) { cmd.AddParam("@fundingline_id", fundingLine.Id); using (OpenCbsReader reader = cmd.ExecuteReader()) { if (reader == null || reader.Empty) { return(list); } { while (reader.Read()) { FundingLineEvent fundingLineEvent = new FundingLineEvent { Id = reader.GetInt("id"), Code = reader.GetString("code"), Amount = reader.GetMoney("amount"), Movement = ((OBookingDirections) reader.GetSmallInt("direction")), IsDeleted = reader.GetBool("deleted"), CreationDate = reader.GetDateTime("creation_date"), Type = ((OFundingLineEventTypes) reader.GetSmallInt("type")), FundingLine = fundingLine }; list.Add(fundingLineEvent); } } } return(list); } }
public void DeleteFundingLineEvent(FundingLineEvent deleteFundingLineEvent, SqlTransaction sqlTransac) { _fundingLineManager.DeleteFundingLineEvent(deleteFundingLineEvent, sqlTransac); deleteFundingLineEvent.IsDeleted = true; deleteFundingLineEvent.User = _user; if (deleteFundingLineEvent.Type == OFundingLineEventTypes.Entry) { _ePS.FireFundingLineEvent(deleteFundingLineEvent, deleteFundingLineEvent.FundingLine, sqlTransac); } }
public FundingLine AddGenericFundingLineWithThreeEvents(DateTime startDate) { ChartOfAccounts _chartOfAccounts = ChartOfAccounts.GetInstance(new User { Id = 5 }); AccountManager accountManager = new AccountManager(new User { Id = 5 }); _chartOfAccounts.Accounts = accountManager.SelectAllAccounts(); FundingLineServices service = new FundingLineServices(new User { Id = 5 }); int newFL_ID = AddGenericFundingLine4(); FundingLine fundingLineInitial = service.SelectFundingLineById(newFL_ID, true); FundingLineEvent ev0 = new FundingLineEvent(); ev0.Code = "6012"; ev0.CreationDate = startDate.AddDays(-2); ev0.Amount = 1000; ev0.Movement = OBookingDirections.Credit; ev0.Type = OFundingLineEventTypes.Entry; ev0.FundingLine = fundingLineInitial; ev0.IsDeleted = false; fundingLineInitial.AddEvent(service.AddFundingLineEvent(ev0)); FundingLineEvent ev1 = new FundingLineEvent(); ev1.Code = "6013"; ev1.CreationDate = startDate.AddDays(-1); ev1.Amount = 500; ev1.Movement = OBookingDirections.Debit; ev1.Type = OFundingLineEventTypes.Disbursment; ev1.FundingLine = fundingLineInitial; ev1.IsDeleted = false; fundingLineInitial.AddEvent(service.AddFundingLineEvent(ev1)); FundingLineEvent ev2 = new FundingLineEvent(); ev2.Code = "6014"; ev2.CreationDate = startDate; ev2.Amount = 100; ev2.Movement = OBookingDirections.Credit; ev2.Type = OFundingLineEventTypes.Repay; ev2.FundingLine = fundingLineInitial; ev2.IsDeleted = false; fundingLineInitial.AddEvent(service.AddFundingLineEvent(ev2)); return(fundingLineInitial); }
public FrmFundingLineEvent(FundingLine pFundingLine) { InitializeComponent(); _FundingLine = pFundingLine; _exchangeRate = null; _fundingLineEvent = new FundingLineEvent(); InitializeComboBoxDirections(); dateTimePickerEvent.Value = TimeProvider.Now; dateTimePickerEvent.Format = DateTimePickerFormat.Custom; dateTimePickerEvent.CustomFormat = ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT; }
/* update funding line event method updates only IsDeleted property of the Funding Line event*/ public void UpdateFundingLineEvent(FundingLineEvent pFundingLineEvent, SqlTransaction sqlTransac) { const string sqlText = @" UPDATE [FundingLineEvents] SET [deleted] = @deleted WHERE [id] = @id"; using (OpenCbsCommand c = new OpenCbsCommand(sqlText, sqlTransac.Connection, sqlTransac)) { c.AddParam("@id", pFundingLineEvent.Id); c.AddParam("@deleted", pFundingLineEvent.IsDeleted); c.ExecuteNonQuery(); } }
public void DeleteFundingLineEvent(FundingLineEvent deleteFundingLineEvent) { using (SqlConnection conn = _fundingLineManager.GetConnection()) using (SqlTransaction sqlTransac = conn.BeginTransaction()) try { DeleteFundingLineEvent(deleteFundingLineEvent, sqlTransac); sqlTransac.Commit(); } catch (Exception ex) { sqlTransac.Rollback(); throw ex; } }
public FundingLineEvent AddFundingLineEvent(FundingLineEvent newFundingLineEvent) { SqlTransaction sqlTransac = ConnectionManager.GetInstance().GetSqlTransaction(_user.Md5); try { newFundingLineEvent = AddFundingLineEvent(newFundingLineEvent, sqlTransac); sqlTransac.Commit(); } catch (Exception ex) { sqlTransac.Rollback(); throw ex; } return(newFundingLineEvent); }
public void AddEventFundingLineWithoutFundingLine() { //Add Funding Line Event var fundingLineServices = (FundingLineServices)container["FundingLineServices"]; var ev = new FundingLineEvent { Code = "KAO", Type = OpenCBS.Enums.OFundingLineEventTypes.Entry, CreationDate = DateTime.Now, EndDate = DateTime.Now.AddDays(1), Amount = 1000 }; fundingLineServices.AddFundingLineEvent(ev, null); }
public int AddFundingLineEvent(FundingLineEvent pFundingLineEvent, SqlTransaction pTransac) { const string sqlText = @"INSERT INTO [FundingLineEvents] ([code], [amount], [direction], [fundingline_id], [deleted], [creation_date], [type], user_id, contract_event_id) VALUES (@code, @amount, @direction, @fundingLineId, @deleted, @creationDate, @type, @user_id, @contract_event_id ) SELECT SCOPE_IDENTITY()"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand cmd = pTransac == null ? new OpenCbsCommand(sqlText, conn) : new OpenCbsCommand(sqlText, pTransac.Connection, pTransac)) { cmd.AddParam("@code", pFundingLineEvent.Code); cmd.AddParam("@amount", pFundingLineEvent.Amount); cmd.AddParam("@direction", (int)pFundingLineEvent.Movement); cmd.AddParam("@fundingLineId", pFundingLineEvent.FundingLine.Id); // pFundingLineId); cmd.AddParam("@deleted", false); cmd.AddParam("@creationDate", pFundingLineEvent.CreationDate); cmd.AddParam("@type", (int)pFundingLineEvent.Type); cmd.AddParam("@user_id", _user == null? (object)null:_user.Id); cmd.AddParam("contract_event_id", pFundingLineEvent.AttachTo == null ? (object)null: pFundingLineEvent.AttachTo.Id); pFundingLineEvent.Id = Convert.ToInt32(cmd.ExecuteScalar()); return(pFundingLineEvent.Id); } }
public void DeleteFundingLineEvent(FundingLineEvent newFundingLineEvent) { using (SqlConnection conn = GetConnection()) using (SqlTransaction t = conn.BeginTransaction()) { try { DeleteFundingLineEvent(newFundingLineEvent, t); t.Commit(); } catch (Exception) { t.Rollback(); throw; } } }
public FundingLineEvent AddFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTransac) { if (newFundingLineEvent.FundingLine == null) { throw new OpenCbsFundingLineException(OpenCbsFundingLineExceptionEnum.BadFundingLineID); } ApplyRulesAmountEventFundingLine(newFundingLineEvent); newFundingLineEvent.Id = _fundingLineManager.AddFundingLineEvent(newFundingLineEvent, sqlTransac); newFundingLineEvent.User = _user; if (newFundingLineEvent.Type == OFundingLineEventTypes.Entry) { _ePS.FireFundingLineEvent(newFundingLineEvent, newFundingLineEvent.FundingLine, sqlTransac); } return(newFundingLineEvent); }
public int SelectFundingLineEventId(FundingLineEvent lookupFundingLineEvent) { using (SqlConnection conn = GetConnection()) using (SqlTransaction t = conn.BeginTransaction()) { try { int retval = SelectFundingLineEventId(lookupFundingLineEvent, t); t.Commit(); return(retval); } catch (Exception) { t.Rollback(); throw; } } }
public int SelectFundingLineEventId(FundingLineEvent pFundingLineEvent, SqlTransaction sqlTransac, bool includeDeleted) { int id = -1; string sqlText = @"SELECT [id] FROM [FundingLineEvents] WHERE [code] = @code AND [amount] = @amount AND [direction] = @direction AND [type] = @type AND [fundingline_id] = @fundinglineid"; if (!includeDeleted) { sqlText += " and deleted = @deleted"; } OpenCbsCommand cmd = new OpenCbsCommand(sqlText, sqlTransac.Connection, sqlTransac); cmd.AddParam("@code", pFundingLineEvent.Code); cmd.AddParam("@amount", pFundingLineEvent.Amount); cmd.AddParam("@direction", (int)pFundingLineEvent.Movement); cmd.AddParam("@type", (int)pFundingLineEvent.Type); cmd.AddParam("@fundinglineid", pFundingLineEvent.FundingLine.Id); if (!includeDeleted) { cmd.AddParam("@deleted", pFundingLineEvent.IsDeleted); } using (OpenCbsReader reader = cmd.ExecuteReader()) { if (reader != null) { if (!reader.Empty) { reader.Read(); id = reader.GetInt("id"); } } } return(id); }
public List <FundingLineEvent> GetEvents(FundingLine fl) { List <FundingLineEvent> list = new List <FundingLineEvent>(); const string q = @"SELECT id, code, amount, direction, deleted, creation_date, type FROM dbo.FundingLineEvents WITH (READUNCOMMITTED) WHERE fundingline_id = @id ORDER BY creation_date DESC, id DESC"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { c.AddParam("@id", fl.Id); using (OpenCbsReader r = c.ExecuteReader()) { if (null == r || r.Empty) { return(list); } while (r.Read()) { FundingLineEvent e = new FundingLineEvent(); e.Id = r.GetInt("id"); e.Code = r.GetString("code"); e.Amount = r.GetMoney("amount"); e.Movement = (OBookingDirections)r.GetSmallInt("direction"); e.IsDeleted = r.GetBool("deleted"); e.CreationDate = r.GetDateTime("creation_date"); e.Type = (OFundingLineEventTypes)r.GetSmallInt("type"); e.FundingLine = fl; list.Add(e); } } } return(list); }
private void buttonDeleteFundingLineEvent_Click(object sender, EventArgs e) { if (listViewFundingLineEvent.SelectedItems.Count != 0) { FundingLineEvent fundingLineEventBody = (FundingLineEvent)listViewFundingLineEvent.SelectedItems[0].Tag; if (fundingLineEventBody.Type != OFundingLineEventTypes.Entry) { Fail("wrongType"); return; } if (fundingLineEventBody.Amount > _fundingLine.AnticipatedRemainingAmount) { Fail("amountCommitted"); return; } ServicesProvider.GetInstance().GetFundingLinesServices().DeleteFundingLineEvent(fundingLineEventBody); _fundingLine.RemoveEvent(fundingLineEventBody); RefreshView(); } }
public void ApplyRules(FundingLineEvent e) { if (e.Amount <= decimal.Zero) { throw new OpenCbsFundingLineEventException(OpenCbsFundingLineEventExceptionEnum.AmountIsLessZero); } if (e.Code == string.Empty) { throw new OpenCbsFundingLineEventException(OpenCbsFundingLineEventExceptionEnum.AmountIsEmpty); } if (e.Amount > e.FundingLine.RealRemainingAmount && e.Type == Enums.OFundingLineEventTypes.Disbursment) { throw new OpenCbsFundingLineEventException(OpenCbsFundingLineEventExceptionEnum.CommitmentFinancialIsNotEnough); } if (e.Amount > e.FundingLine.AnticipatedRemainingAmount && e.Movement == Enums.OBookingDirections.Debit && e.Type != Enums.OFundingLineEventTypes.Disbursment) { throw new OpenCbsFundingLineEventException(OpenCbsFundingLineEventExceptionEnum.CommitmentFinancialIsNotEnough); } }
public void DeleteEventFundingLine() { var fundingLineServices = (FundingLineManager)container["FundingLineServices"]; var fundingLine = fundingLineServices.SelectFundingLineById(1, true); var ev = new FundingLineEvent { Id = 1, Code = "NewKAO", Type = OpenCBS.Enums.OFundingLineEventTypes.Entry, FundingLine = fundingLine }; int id = fundingLineServices.SelectFundingLineEventId(ev); Assert.IsTrue(id > 1); fundingLineServices.DeleteFundingLineEvent(ev); id = fundingLineServices.SelectFundingLineEventId(ev); Assert.IsTrue(id < 1); }
public void UpdateFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTrans) { _eventFundingLineManager.UpdateFundingLineEvent(newFundingLineEvent, sqlTrans); //new event }
public void DeleteFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTrans) { _eventFundingLineManager.DeleteFundingLineEvent(newFundingLineEvent, sqlTrans); }
private void buttonCancel_Click(object sender, EventArgs e) { _fundingLineEvent = null; _saved = false; Close(); }
public int SelectFundingLineEventId(FundingLineEvent lookupFundingLineEvent, SqlTransaction sqlTransac) { int id = _fundingLineManager.SelectFundingLineEventId(lookupFundingLineEvent, sqlTransac); return(id); }
public void SetEventFundingLine(FundingLineEvent e) { _fundingLineEvent = e; }
public int AddFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTrans) { return(_eventFundingLineManager.AddFundingLineEvent(newFundingLineEvent, sqlTrans)); //new event }
public void FireFundingLineEvent(Event e, FundingLine fundingLine, SqlTransaction sqlTransac) { e.IsFired = true; FundingLineEvent fL = e as FundingLineEvent; //_movementSetManagement.AddTransaction(mS, sqlTransac); }
public void UpdateFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTransac) { _fundingLineManager.UpdateFundingLineEvent(newFundingLineEvent, sqlTransac); }