public bool Delete()
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        EEmpPersonalInfo c = new EEmpPersonalInfo();

        c.EmpID = EmpID;
        if (EEmpPersonalInfo.db.select(dbConn, c))
        {
            DBFilter empPayrollFilter = new DBFilter();
            empPayrollFilter.add(new Match("EmpID", c.EmpID));
            DBFilter paymentRecordFilter = new DBFilter();
            paymentRecordFilter.add(new IN("EmpPayrollID", "Select EmpPayrollID from [" + EEmpPayroll.db.dbclass.tableName + "]", empPayrollFilter));

            if (EPaymentRecord.db.count(dbConn, paymentRecordFilter) <= 0)
            {
                WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
                EmpUtils.DeleteEmp(dbConn, c.EmpID);
                db.delete(dbConn, c);
                WebUtils.EndFunction(dbConn);
                return(true);
            }
            else
            {
                errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_DELETE_EMP_PAYMENT_EXISTS, new string[] { c.EmpNo }));
                return(false);
            }
        }
        return(true);
    }
Ejemplo n.º 2
0
    protected void Delete_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        ArrayList list = WebUtils.SelectedRepeaterItemToBaseObjectList(db, Repeater, "ItemSelect");

        foreach (EEmpPersonalInfo o in list)
        {
            if (EEmpPersonalInfo.db.select(dbConn, o))
            {
                DBFilter empPayrollFilter = new DBFilter();
                empPayrollFilter.add(new Match("EmpID", o.EmpID));
                DBFilter paymentRecordFilter = new DBFilter();
                paymentRecordFilter.add(new IN("EmpPayrollID", "Select EmpPayrollID from [" + EEmpPayroll.db.dbclass.tableName + "]", empPayrollFilter));

                if (EPaymentRecord.db.count(dbConn, paymentRecordFilter) <= 0)
                {
                    WebUtils.StartFunction(Session, FUNCTION_CODE, o.EmpID);
                    EmpUtils.DeleteEmp(dbConn, o.EmpID);
                    db.delete(dbConn, o);
                    WebUtils.EndFunction(dbConn);
                }
                else
                {
                    errors.addError(string.Format(HROne.Translation.PageErrorMessage.ERROR_DELETE_EMP_PAYMENT_EXISTS, new string[] { o.EmpNo }));
                }
            }
        }
        //loadState();
        loadData(info, db, Repeater);
    }
    public bool Save()
    {
        if (!FullResAddrPanel.Visible)
        {
            EmpResAddr.Text = EmpResAddr1.Text + "\r\n" + EmpResAddr2.Text + "\r\n" + EmpResAddr3.Text;
        }


        EEmpPersonalInfo c = new EEmpPersonalInfo();

        Hashtable values = new Hashtable();

        binding.toValues(values);

        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();


        db.validate(errors, values);

        if (!errors.isEmpty())
        {
            return(false);
        }


        db.parse(values, c);

        if (this.IsResetESSPassword.Checked)
        {
            c.EmpPW = string.Empty;
        }

        if (PrevEmpID > 0)
        {
            if (IsCreateNewRoleEmployee)
            {
                c.EmpNo       = NewRoleEmpNo.Text.Trim();
                c.MasterEmpID = PrevEmpID;
                if (string.IsNullOrEmpty(c.EmpNo))
                {
                    errors.addError(lblNewRoleEmpNo.Text, "validate.required.prompt");
                    return(false);
                }
            }
        }
        c.EmpNo = c.EmpNo.ToUpper();
        // Start 0000044, Miranda, 2014-05-09
        string oldEmpNo = "";

        if (!AppUtils.checkDuplicate(dbConn, db, c, errors, "EmpNo"))
        {
            if (isAutoGenerateEmpNo && empNoFormat != null && EmpID < 0)
            {
                // Check if EmpNo format is same as EmpNoFormat setting of System Parameter
                bool alignToFormat = isAlignToDefinedFormat(c.EmpNo, empNoFormat);
                if (alignToFormat)
                {
                    errors.clear();
                    oldEmpNo   = c.EmpNo;
                    c.EmpNo    = getNextEmpNo(empNoFormat).ToUpper();
                    EmpNo.Text = c.EmpNo;
                    if (!AppUtils.checkDuplicate(dbConn, db, c, errors, "EmpNo"))
                    {
                        return(false);
                    }
                    else
                    {
                        errors.addError(string.Format(HROne.Translation.PageErrorMessage.ALERT_NEW_STAFF_NO_BEEN_USED, new string[] { oldEmpNo, c.EmpNo }));
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        // End 0000044, Miranda, 2014-05-09
        // Start 0000066, Miranda, 2014-08-08
        if (SuppressHKIDWarning.Text == "false" && !AppUtils.checkDuplicate(dbConn, db, c, errors, "EmpHKID"))
        {
            SuppressHKIDWarning.Text = "true";

            errors.clear();
            errors.addError("HKID is already input in system, click SAVE button again to bypass this warning and save to database.");
        }
        // End 0000066, Miranda, 2014-08-08

        if (c.EmpDateOfBirth > AppUtils.ServerDateTime().Date)
        {
            errors.addError("EmpDateOfBirth", HROne.Translation.PageErrorMessage.ERROR_INVALID_DOB);
        }

        if (c.EmpEngSurname.Contains(" "))
        {
            errors.addError("EmpEngSurname", HROne.Translation.PageErrorMessage.ERROR_SURNAME_CONTAIN_SPACE);
        }

        if (!errors.isEmpty())
        {
            return(false);
        }

        //if (c.EmpProbaLastDate.Ticks.Equals(0))
        //{
        //    if (c.EmpProbaPeriod > 0)
        //    {
        //        c.EmpProbaLastDate = c.EmpDateOfJoin;
        //        if (c.EmpProbaUnit.Equals("D"))
        //            c.EmpProbaLastDate = c.EmpProbaLastDate.AddDays(c.EmpProbaPeriod);
        //        else if (c.EmpProbaUnit.Equals("M"))
        //            c.EmpProbaLastDate = c.EmpProbaLastDate.AddMonths(c.EmpProbaPeriod);
        //        c.EmpProbaLastDate = c.EmpProbaLastDate.AddDays(-1);
        //    }
        //}
        if (string.IsNullOrEmpty(c.EmpStatus) || c.EmpStatus.Equals("A"))
        {
            if (WebUtils.TotalActiveEmployee(dbConn, c.EmpID) >= WebUtils.productLicense(Session).NumOfEmployees)
            {
                errors.addError(string.Format(PageErrorMessage.ERROR_MAX_LICENSE_LIMITCH_REACH, new string[] { WebUtils.productLicense(Session).NumOfEmployees + " " + HROne.Common.WebUtility.GetLocalizedString("Employee") }));
                return(false);
            }
        }

        // Start 0000092, Ricky So, 2014-09-09
        if (c.EmpNationalityID > 0)
        {
            ENationality m_nationality = new ENationality();
            m_nationality.NationalityID = c.EmpNationalityID;
            if (ENationality.db.select(dbConn, m_nationality))
            {
                c.EmpNationality = m_nationality.NationalityDesc;
            }
        }

        if (c.EmpPlaceOfBirthID > 0)
        {
            EPlaceOfBirth m_placeOfBirth = new EPlaceOfBirth();
            m_placeOfBirth.PlaceOfBirthID = c.EmpPlaceOfBirthID;
            if (EPlaceOfBirth.db.select(dbConn, m_placeOfBirth))
            {
                c.EmpPlaceOfBirth = m_placeOfBirth.PlaceOfBirthDesc;
            }
        }

        if (c.EmpPassportIssuedCountryID > 0)
        {
            EIssueCountry m_issueCountry = new EIssueCountry();
            m_issueCountry.CountryID = c.EmpPassportIssuedCountryID;
            if (EIssueCountry.db.select(dbConn, m_issueCountry))
            {
                c.EmpPassportIssuedCountry = m_issueCountry.CountryDesc;
            }
        }

        // End 0000092, Ricky So, 2014-09-09


        WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
        if (EmpID < 0)
        {
            //            Utils.MarkCreate(Session, c);
            c.EmpStatus = "A";
            db.insert(dbConn, c);
            EmpID = c.EmpID;
            if (PrevEmpID > 0)
            {
                if (!IsCreateNewRoleEmployee)
                {
                    EmpUtils.CopyEmpDetail(dbConn, PrevEmpID, EmpID);
                }
            }

            //            url = Utils.BuildURL(-1, CurID);
        }
        else
        {
            //            Utils.Mark(Session, c);
            db.update(dbConn, c);
        }

        //DBFilter empUniformFilter = new DBFilter();
        //empUniformFilter.add(new Match("EmpID", c.EmpID));
        //ArrayList empUniformList = EEmpUniform.db.select(dbConn, empUniformFilter);
        //EEmpUniform empUniform = null;
        //if (empUniformList.Count > 0)
        //    empUniform = (EEmpUniform)empUniformList[0];
        //else
        //{
        //    empUniform = new EEmpUniform();
        //    empUniform.EmpID = c.EmpID;
        //}
        //empUniform.EmpUniformB = EmpUniformB.Text;
        //empUniform.EmpUniformW = EmpUniformW.Text;
        //empUniform.EmpUniformH = EmpUniformH.Text;

        //if (empUniform.EmpUniformID > 0)
        //    EEmpUniform.db.update(dbConn, empUniform);
        //else
        //    EEmpUniform.db.insert(dbConn, empUniform);


        ArrayList list = new ArrayList();

        foreach (RepeaterItem groupItem in EmpExtraFieldGroupRepeater.Items)
        {
            Repeater EmpExtraField = (Repeater)groupItem.FindControl("EmpExtraField");
            foreach (RepeaterItem item in EmpExtraField.Items)
            {
                TextBox       textBox    = (TextBox)item.FindControl("EmpExtraFieldValue");
                WebDatePicker datePicker = (WebDatePicker)item.FindControl("EmpExtraFieldValueDateControl");

                int      EmpExtraFieldID = Int32.Parse(textBox.Attributes["EmpExtraFieldID"]);
                DBFilter filter          = new DBFilter();
                filter.add(new Match("EmpID", c.EmpID));
                filter.add(new Match("EmpExtraFieldID", EmpExtraFieldID));
                ArrayList existingExtraFieldValueList = EEmpExtraFieldValue.db.select(dbConn, filter);

                EEmpExtraFieldValue h = null;
                if (existingExtraFieldValueList.Count > 0)
                {
                    h = (EEmpExtraFieldValue)existingExtraFieldValueList[0];
                }
                else
                {
                    h                 = new EEmpExtraFieldValue();
                    h.EmpID           = c.EmpID;
                    h.EmpExtraFieldID = EmpExtraFieldID;
                }
                if (textBox.Visible)
                {
                    h.EmpExtraFieldValue = textBox.Text.Trim();
                }
                else if (datePicker.Visible)
                {
                    h.EmpExtraFieldValue = datePicker.Value.Trim();
                }

                list.Add(h);
            }
        }
        //filter = new DBFilter();
        //filter.add(new Match("EmpID", CurEmpID));
        //filter.add(new Match("EmpPosID", CurID));
        //EEmpHierarchy.db.delete(dbConn, filter);
        foreach (EEmpExtraFieldValue h in list)
        {
            if (h.EmpExtraFieldValueID == 0)
            {
                EEmpExtraFieldValue.db.insert(dbConn, h);
            }
            else
            {
                EEmpExtraFieldValue.db.update(dbConn, h);
            }
        }

        WebUtils.EndFunction(dbConn);
        return(true);
    }