public void ApplyRulesAmountEventFundingLine(FundingLineEvent e)
        {
            Context rule = new Context(new ValidateAmountofEventFundingLine());

            rule.SetEventFundingLine(e);
            rule.ValidateRulesForFundingLine();
        }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
 private void frmFundingLineEvent_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (!_saved)
     {
         _fundingLineEvent = null;
     }
 }
Exemple #4
0
 public FrmFundingLineEvent(FundingLine pFundingLine, FundingLineEvent pFundingLineEvent)
 {
     InitializeComponent();
     _FundingLine      = pFundingLine;
     _fundingLineEvent = pFundingLineEvent;
     InitializeComboBoxDirections();
     dateTimePickerEvent.Value = TimeProvider.Now;
 }
Exemple #5
0
 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);
            }
        }
Exemple #8
0
        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);
        }
Exemple #9
0
 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);
                }
        }
Exemple #15
0
 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);
        }
Exemple #17
0
 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);
        }
Exemple #19
0
        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);
        }
Exemple #20
0
 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);
        }
Exemple #23
0
 public void UpdateFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTrans)
 {
     _eventFundingLineManager.UpdateFundingLineEvent(newFundingLineEvent, sqlTrans); //new event
 }
Exemple #24
0
 public void DeleteFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTrans)
 {
     _eventFundingLineManager.DeleteFundingLineEvent(newFundingLineEvent, sqlTrans);
 }
Exemple #25
0
 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);
        }
Exemple #27
0
 public void SetEventFundingLine(FundingLineEvent e)
 {
     _fundingLineEvent = e;
 }
Exemple #28
0
 public int AddFundingLineEvent(FundingLineEvent newFundingLineEvent, SqlTransaction sqlTrans)
 {
     return(_eventFundingLineManager.AddFundingLineEvent(newFundingLineEvent, sqlTrans)); //new event
 }
Exemple #29
0
 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);
 }