示例#1
0
    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);
    }
示例#2
0
    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);
    }
示例#3
0
    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);
    }