protected void Delete_Click(object sender, EventArgs e) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); ArrayList list = new ArrayList(); foreach (DataListItem item in Repeater.Items) { CheckBox c = (CheckBox)item.FindControl("DeleteItem"); HtmlInputHidden h = (HtmlInputHidden)item.FindControl("RankID"); if (c.Checked) { ERank obj = new ERank(); obj.RankID = Int32.Parse(h.Value); list.Add(obj); } } foreach (ERank obj in list) { db.select(dbConn, obj); DBFilter empPosFilter = new DBFilter(); empPosFilter.add(new Match("RankID", obj.RankID)); empPosFilter.add("empid", true); ArrayList empPosList = EEmpPositionInfo.db.select(dbConn, empPosFilter); if (empPosList.Count > 0) { errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_CODE_USED_BY_EMPLOYEE, new string[] { HROne.Common.WebUtility.GetLocalizedString("Rank Code"), obj.RankCode })); foreach (EEmpPositionInfo empPos in empPosList) { EEmpPersonalInfo empInfo = new EEmpPersonalInfo(); empInfo.EmpID = empPos.EmpID; if (EEmpPersonalInfo.db.select(dbConn, empInfo)) { errors.addError("- " + empInfo.EmpNo + ", " + empInfo.EmpEngFullName); } else { EEmpPositionInfo.db.delete(dbConn, empPos); } } errors.addError(HROne.Translation.PageErrorMessage.ERROR_ACTION_ABORT); view = loadData(info, db, Repeater); return; } else { EUserRank.DeleteRankForAllUsers(dbConn, obj.RankID); WebUtils.StartFunction(Session, FUNCTION_CODE); db.delete(dbConn, obj); WebUtils.EndFunction(dbConn); } } view = loadData(info, db, Repeater); }
protected void Add_Click(object sender, EventArgs e) { Repeater.EditItemIndex = -1; ERank c = new ERank(); Hashtable values = new Hashtable(); binding.toValues(values); PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); db.validate(errors, values); if (!errors.isEmpty()) { return; } db.parse(values, c); if (!AppUtils.checkDuplicate(dbConn, db, c, errors, "RankCode")) { return; } WebUtils.StartFunction(Session, FUNCTION_CODE); db.insert(dbConn, c); WebUtils.EndFunction(dbConn); EUserRank.InsertRankForUser(dbConn, WebUtils.GetCurUser(Session).UserID, c.RankID); RankCode.Text = string.Empty; RankDesc.Text = string.Empty; view = loadData(info, db, Repeater); }
protected void Save_Click(object sender, EventArgs e) { EUser c = new EUser(); Hashtable values = new Hashtable(); binding.toValues(values); PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); db.validate(errors, values); if (!errors.isEmpty()) { return; } db.parse(values, c); if (Password.Text.Equals("")) { errors.addError("Password", HROne.Translation.PageErrorMessage.ERROR_FIELD_REQUIRED); return; } if (!Password2.Text.Equals(Password.Text)) { errors.addError("Password", HROne.Translation.PageErrorMessage.ERROR_PASSWORD_NOT_MATCH); return; } if (!Password.Text.Equals(NO_CHANGE_PASSWORD)) { c.UserPassword = HROne.CommonLib.Hash.PasswordHash(Password.Text); } else if (CurID < 0) { c.UserPassword = HROne.CommonLib.Hash.PasswordHash(string.Empty); } if (c.UserAccountStatus.Equals("A")) { if (WebUtils.TotalActiveUser(dbConn, c.UserID) >= WebUtils.productLicense(Session).NumOfUsers) { errors.addError(string.Format(PageErrorMessage.ERROR_MAX_LICENSE_LIMITCH_REACH, new string[] { WebUtils.productLicense(Session).NumOfUsers + " " + HROne.Common.WebUtility.GetLocalizedString("User") })); return; } } ArrayList newCompanyList = WebUtils.SelectedRepeaterItemToBaseObjectList(ECompany.db, Companies, "ItemSelect"); ArrayList newUserGroupList = WebUtils.SelectedRepeaterItemToBaseObjectList(EUserGroup.db, UserGroups, "ItemSelect"); ArrayList newRankList = WebUtils.SelectedRepeaterItemToBaseObjectList(ERank.db, Ranks, "ItemSelect"); // Start 0000069, KuangWei, 2014-08-26 ArrayList newPayGroupList = WebUtils.SelectedRepeaterItemToBaseObjectList(EPayrollGroup.db, PayGroups, "ItemSelect"); // End 0000069, KuangWei, 2014-08-26 if (WebUtils.GetCurUser(Session).UsersCannotCreateUsersWithMorePermission) { if (c.UsersCannotCreateUsersWithMorePermission == false) { errors.addError(PageErrorMessage.ERROR_INVALID_PERMISSION); return; } // Start 0000069, KuangWei, 2014-08-26 else if (!c.IsAllowSubmitPermission(dbConn, WebUtils.GetCurUser(Session).UserID) || !EUser.IsAllowSubmitPermission(dbConn, WebUtils.GetCurUser(Session).UserID, newCompanyList, newUserGroupList, newRankList, newPayGroupList) // End 0000069, KuangWei, 2014-08-26 ) { errors.addError(PageErrorMessage.ERROR_INVALID_PERMISSION); return; } // do nothing } WebUtils.StartFunction(Session, FUNCTION_CODE); if (CurID < 0) { // Utils.MarkCreate(Session, c); c.UserChangePasswordDate = AppUtils.ServerDateTime(); db.insert(dbConn, c); CurID = c.UserID; // url = Utils.BuildURL(-1, CurID); } else { // Utils.Mark(Session, c); db.update(dbConn, c); } { DBFilter notUserGroupAccess = new DBFilter(); notUserGroupAccess.add(new Match("UserID", c.UserID)); foreach (EUserGroup userGroup in newUserGroupList) { DBFilter filter = new DBFilter(); filter.add(new Match("UserID", c.UserID)); filter.add(new Match("UserGroupID", userGroup.UserGroupID)); if (EUserGroupAccess.db.count(dbConn, filter) <= 0) { EUserGroupAccess o = new EUserGroupAccess(); o.UserID = c.UserID; o.UserGroupID = userGroup.UserGroupID; EUserGroupAccess.db.insert(dbConn, o); } notUserGroupAccess.add(new Match("UserGroupID", "<>", userGroup.UserGroupID)); } ArrayList unselectedUserGroupAccessList = EUserGroupAccess.db.select(dbConn, notUserGroupAccess); foreach (EUserGroupAccess userGroupAccess in unselectedUserGroupAccessList) { EUserGroupAccess.db.delete(dbConn, userGroupAccess); } } { DBFilter notUserCompany = new DBFilter(); notUserCompany.add(new Match("UserID", c.UserID)); foreach (ECompany company in newCompanyList) { DBFilter filter = new DBFilter(); filter.add(new Match("UserID", c.UserID)); filter.add(new Match("CompanyID", company.CompanyID)); if (EUserCompany.db.count(dbConn, filter) <= 0) { EUserCompany o = new EUserCompany(); o.UserID = c.UserID; o.CompanyID = company.CompanyID; EUserCompany.db.insert(dbConn, o); } notUserCompany.add(new Match("CompanyID", "<>", company.CompanyID)); } ArrayList unselectedUserCompanyList = EUserCompany.db.select(dbConn, notUserCompany); foreach (EUserCompany userCompany in unselectedUserCompanyList) { EUserCompany.db.delete(dbConn, userCompany); } } { DBFilter notUserRank = new DBFilter(); notUserRank.add(new Match("UserID", c.UserID)); foreach (ERank rank in newRankList) { DBFilter filter = new DBFilter(); filter.add(new Match("UserID", c.UserID)); filter.add(new Match("RankID", rank.RankID)); if (EUserRank.db.count(dbConn, filter) <= 0) { EUserRank o = new EUserRank(); o.UserID = c.UserID; o.RankID = rank.RankID; EUserRank.db.insert(dbConn, o); } notUserRank.add(new Match("RankID", "<>", rank.RankID)); } ArrayList unselectedUserRankList = EUserRank.db.select(dbConn, notUserRank); foreach (EUserRank userRank in unselectedUserRankList) { EUserRank.db.delete(dbConn, userRank); } } // Start 0000069, KuangWei, 2014-08-26 { DBFilter notPayrollGroupUser = new DBFilter(); notPayrollGroupUser.add(new Match("UserID", c.UserID)); foreach (EPayrollGroup payrollGroup in newPayGroupList) { DBFilter filter = new DBFilter(); filter.add(new Match("UserID", c.UserID)); filter.add(new Match("PayGroupID", payrollGroup.PayGroupID)); if (EPayrollGroupUsers.db.count(dbConn, filter) <= 0) { EPayrollGroupUsers o = new EPayrollGroupUsers(); o.UserID = c.UserID; o.PayGroupID = payrollGroup.PayGroupID; EPayrollGroupUsers.db.insert(dbConn, o); } notPayrollGroupUser.add(new Match("PayGroupID", "<>", payrollGroup.PayGroupID)); } ArrayList unselectedPayGroupUserList = EPayrollGroupUsers.db.select(dbConn, notPayrollGroupUser); foreach (EPayrollGroupUsers payrollGroupUsers in unselectedPayGroupUserList) { EPayrollGroupUsers.db.delete(dbConn, payrollGroupUsers); } } // update paygroup isPublic flag foreach (EPayrollGroup payrollGroup in EPayrollGroup.db.select(dbConn, new DBFilter())) { DBFilter m_countFilter = new DBFilter(); m_countFilter.add(new Match("PayGroupID", payrollGroup.PayGroupID)); payrollGroup.PayGroupIsPublic = (EPayrollGroupUsers.db.count(dbConn, m_countFilter) <= 0); EPayrollGroup.db.update(dbConn, payrollGroup); } // End 0000069, KuangWei, 2014-08-26 WebUtils.EndFunction(dbConn); HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/User_View.aspx?UserID=" + CurID); }