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; } }
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; } }
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; } }