Exemplo n.º 1
0
        protected void GridCurrencyUnit_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
        {
            try
            {
                #region ExchangeRate_IsMaster
                bool         CancelIsMaster  = true;
                CurrencyType currencyType_ID = bo.get_CurrencyType_true(session, true, Utility.Constant.ROWSTATUS_ACTIVE);              //truong hop da chon ismaster
                NAS.DAL.Accounting.Currency.Currency currency_ID = bo.get_Currency_true_master(session, currencyType_ID.CurrencyTypeId.ToString(), true, Utility.Constant.ROWSTATUS_ACTIVE);
                CurrencyType currencyType_id = bo.get_CurrencyTypeId(session, e.Keys[0].ToString(), Utility.Constant.ROWSTATUS_ACTIVE); //truong hop chua chon ismaster
                NAS.DAL.Accounting.Currency.Currency currency_id = bo.get_Currency_true_master(session, currencyType_id.CurrencyTypeId.ToString(), true, Utility.Constant.ROWSTATUS_ACTIVE);
                if (currency_id != null)
                {
                    if (bo.IsUsedInExchangeRate(session, currency_id.CurrencyId))
                    {
                        if (bo.IsUsedInExchangeRate(session, currency_ID.CurrencyId))
                        {
                            CancelIsMaster = false;
                        }

                        if (!CancelIsMaster)
                        {
                            throw new Exception(String.Format("Không được Xóa! Vì Tên Tiền Tệ {0} đã sử dụng trong Tỷ Giá", currencyType_ID.Name));
                        }
                    }
                }
                #endregion

                if (bo.checkIsCurrencyTypeIdInCurrency(session, e.Values["CurrencyTypeId"].ToString().Trim()))
                {
                    e.Cancel = true;
                    throw new Exception(String.Format("Lỗi không thể xóa vì có chứa Đơn Vị Tiền Tệ"));
                }
                else
                {
                    e.Cancel = true;
                    session.BeginTransaction(); //tao session luu gia tri hien tai

                    Guid a = Guid.Parse(e.Keys[0].ToString());
                    NAS.DAL.Accounting.Currency.CurrencyType currT = session.GetObjectByKey <NAS.DAL.Accounting.Currency.CurrencyType>(a);
                    currT.RowStatus = Utility.Constant.ROWSTATUS_DELETED;
                    currT.Save();
                    GridCurrencyUnit.DataBind();
                    session.CommitTransaction();
                }
            }
            catch (Exception)
            {
                session.RollbackTransaction();//loi session luu gia tri se rollback
                e.Cancel = true;
                throw;
            }
        }
Exemplo n.º 2
0
        protected void treelistCurrency_NodeUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            e.Cancel = true;
            using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork())
                try
                {
                    ASPxTreeList treelistCurrency = sender as ASPxTreeList;
                    object       keyValue         = GetMasterRowKeyValue(treelistCurrency);

                    #region Check ExchangeRate

                    bool         CanInsert = true;
                    CurrencyType type      = session.GetObjectByKey <CurrencyType>(keyValue);
                    NAS.DAL.Accounting.Currency.Currency defaultCurrency = bo.get_Currency_true_master(session, type.CurrencyTypeId.ToString(), true, Constant.ROWSTATUS_ACTIVE);
                    if (e.NewValues["IsDefault"] != null)
                    {
                        if (e.NewValues["IsDefault"].Equals(true))
                        {
                            if (defaultCurrency != null)
                            {
                                if (bo.IsUsedInExchangeRate(session, defaultCurrency.CurrencyId))
                                {
                                    CanInsert = false;
                                }
                            }
                            else
                            {
                                CanInsert = true;
                            }
                        }
                        else
                        {
                            CanInsert = true;
                        }
                        if (!CanInsert)
                        {
                            throw new Exception(String.Format("Không được chọn Đơn Vị Mặc Định! Vì Đơn Vị Tiền Tệ {0} đã sử dụng trong Tỷ Giá", defaultCurrency.Code));
                        }
                    }
                    #endregion

                    #region CHECK CODE
                    CurrencyType cur = uow.GetObjectByKey <CurrencyType>(Guid.Parse(keyValue.ToString()));
                    if (!e.OldValues["Code"].Equals(e.NewValues["Code"]))
                    {
                        if (bo.checkCurrency_Code(session, e.NewValues["Code"].ToString().Trim(), cur.CurrencyTypeId.ToString()))
                        {
                            e.Cancel = true;
                            throw new Exception(String.Format("Lỗi Đơn Vị Tiền Tệ đã có"));
                        }
                    }
                    #endregion
                    object MasterKey = GetMasterRowKeyValue(treelistCurrency);
                    Guid   key       = Guid.Parse(e.Keys[0].ToString());
                    if (e.NewValues["IsDefault"] == null)
                    {
                        e.NewValues["IsDefault"] = false;
                    }

                    bool IsDefault = bool.Parse(e.NewValues["IsDefault"].ToString());

                    NAS.DAL.Accounting.Currency.Currency currency = uow.GetObjectByKey <NAS.DAL.Accounting.Currency.Currency>(key);
                    #region Currency.IsDefault
                    if (IsDefault)
                    {
                        //if (bo.changeIsDefaultCurrency(uow))//, Guid.Parse(treelistCurrency.FocusedNode.Key.ToString())
                        //{
                        currency.IsDefault = true;
                        //}
                        //bo.changeCoefficientCurrency(uow); // Coefficient = 0;
                        if (IsDefault)
                        {
                            bo.updateIsDefaultCurrency(uow, Guid.Parse(MasterKey.ToString()), key, IsDefault);
                        }

                        //if (cur != null)
                        //{
                        //    if (bo.changeIsMasterCurrencyType(uow))
                        //        cur.IsMaster = true;
                        //    cur.Save();
                        //}
                    }
                    else
                    {
                        bo.updateIsDefaultCurrency(uow, Guid.Parse(MasterKey.ToString()), key, IsDefault);
                        currency.IsDefault         = false;
                        e.NewValues["Description"] = "";
                    }
                    #endregion
                    currency.Code        = e.NewValues["Code"].ToString();
                    currency.Name        = e.NewValues["Name"].ToString();
                    currency.NumRequired = double.Parse(e.NewValues["NumRequired"].ToString());

                    uow.FlushChanges();
                    treelistCurrency.CancelEdit();
                    treelistCurrency.DataBind();
                    GridCurrencyUnit.DataBind();
                    treelistCurrency.JSProperties.Add("cpSaved", true);
                }
                catch (Exception)
                {
                    uow.RollbackTransaction();
                    throw;
                }
        }
Exemplo n.º 3
0
        protected void GridCurrencyUnit_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            try
            {
                e.Cancel = true;
                session.BeginTransaction();

                #region ExchangeRate_IsMaster
                bool         CancelIsMaster  = true;
                CurrencyType currencyType_ID = bo.get_CurrencyType_true(session, true, Utility.Constant.ROWSTATUS_ACTIVE);
                NAS.DAL.Accounting.Currency.Currency currency_ID = bo.get_Currency_true_master(session, currencyType_ID.CurrencyTypeId.ToString(), true, Utility.Constant.ROWSTATUS_ACTIVE);
                if (currency_ID != null)
                {
                    if (e.NewValues["IsMaster"] != null)
                    {
                        if (e.NewValues["IsMaster"].Equals(true))
                        {
                            if (bo.IsUsedInExchangeRate(session, currency_ID.CurrencyId))
                            {
                                CancelIsMaster = false;
                            }
                        }
                    }
                    if (!CancelIsMaster)
                    {
                        throw new Exception(String.Format("Không được chọn Sử Dụng Chính! Vì Tên Tiền Tệ {0} đã sử dụng trong Tỷ Giá", currencyType_ID.Name));
                    }
                }
                #endregion

                CurrencyType ct = session.GetObjectByKey <CurrencyType>(Guid.Parse(e.Keys[0].ToString()));

                #region check Name
                if (!e.OldValues["Name"].Equals(e.NewValues["Name"]))
                {
                    if (bo.checkCurrencyType_Name(session, e.NewValues["Name"].ToString().Trim()))
                    {
                        e.Cancel = true;
                        throw new Exception(String.Format("Lỗi trùng đơn vị Tiền Tệ"));
                    }
                }
                #endregion

                if (e.NewValues["IsMaster"] == null)
                {
                    e.NewValues["IsMaster"] = false;
                }
                bool isMaster = bool.Parse(e.NewValues["IsMaster"].ToString());

                ct.Name = e.NewValues["Name"].ToString();
                if (e.NewValues["Description"] == null)
                {
                    e.NewValues["Description"] = "";
                }
                ct.Description = e.NewValues["Description"].ToString();
                #region ct.isMaster
                ct.IsMaster = bool.Parse(e.NewValues["IsMaster"].ToString());
                if (isMaster)
                {
                    if (bo.changeIsMasterCurrencyType(session))
                    {
                        e.NewValues["IsMaster"] = true;
                    }
                }
                ct.IsMaster = bool.Parse(e.NewValues["IsMaster"].ToString());
                #endregion
                session.FlushChanges();
                session.CommitTransaction();
                GridCurrencyUnit.DataBind();
                GridCurrencyUnit.CancelEdit();
            }
            catch (Exception)
            {
                session.RollbackTransaction();
                throw;
            }
        }