protected void Delete_Click(object sender, EventArgs e)
    {
        ArrayList list = new ArrayList();

        foreach (DataListItem item in Repeater.Items)
        {
            CheckBox        c = (CheckBox)item.FindControl("DeleteItem");
            HtmlInputHidden h = (HtmlInputHidden)item.FindControl("MPFRecordID");
            if (c.Checked)
            {
                EMPFRecord obj = new EMPFRecord();
                obj.MPFRecordID = Int32.Parse(h.Value);
                list.Add(obj);
            }
        }
        EEmpPayroll empPayroll = new EEmpPayroll();

        empPayroll.EmpPayrollID = int.Parse(EmpPayrollID.Value);
        if (EEmpPayroll.db.select(dbConn, empPayroll))
        {
            WebUtils.StartFunction(Session, m_FunctionCode, empPayroll.EmpID);
            foreach (EMPFRecord obj in list)
            {
                if (db.select(dbConn, obj))
                {
                    db.delete(dbConn, obj);
                }
            }
            WebUtils.EndFunction(dbConn);
        }
        view = loadData(info, db, Repeater);
    }
Exemplo n.º 2
0
        //private static double CalculateEEAmount(DatabaseConnection dbConn, EEmpPersonalInfo empInfo, int ORSOPlanID, double TotalVCRI, EPayrollPeriod payrollPeriod, DateTime ORSOJoinDate)
        //{
        //    double totalVC = 0;

        //    EORSOPlan orsoPlan = new EORSOPlan();
        //    orsoPlan.ORSOPlanID  = ORSOPlanID;
        //    if (EORSOPlan.db.select(dbConn, orsoPlan))
        //    {

        //        //  Use Service Year to Compare
        //        double YearOfService = HROne.Payroll.PayrollProcess.GetYearOfServer(dbConn, empInfo.EmpID, payrollPeriod.PayPeriodFr);
        //        EORSOPlanDetail orsoPlanDetailFrom = orsoPlan.GetORSOPlanDetail(dbConn, YearOfService);

        //        if (TotalVCRI <= 0)
        //            return 0;
        //        else
        //        {
        //            totalVC = TotalVCRI * orsoPlanDetailFrom.ORSOPlanDetailEE/ 100;
        //            totalVC += orsoPlanDetailFrom.ORSOPlanDetailEEFix;
        //            return totalVC < orsoPlan.ORSOPlanMaxEmployeeVC ? totalVC : orsoPlan.ORSOPlanMaxEmployeeVC;
        //        }
        //    }
        //    else
        //        return 0;
        //}
        // End 0000084, Ricky So, 2014-08-22

        // Start 0000084, Ricky So, 2014-08-22
        private static double CalculateERAmount(DatabaseConnection dbConn, EEmpPersonalInfo empInfo, int ORSOPlanID, double TotalVCRI, EPayrollPeriod payrollPeriod, EMPFRecord mpfRecord)
        {
            double totalVC = 0;

            EORSOPlan orsoPlan = new EORSOPlan();

            orsoPlan.ORSOPlanID = ORSOPlanID;
            if (EORSOPlan.db.select(dbConn, orsoPlan))
            {
                //  Use Service Year to Compare
                double          YearOfService      = HROne.Payroll.PayrollProcess.GetYearOfServer(dbConn, empInfo.EmpID, payrollPeriod.PayPeriodFr);
                EORSOPlanDetail orsoPlanDetailFrom = orsoPlan.GetORSOPlanDetail(dbConn, YearOfService);

                if (orsoPlanDetailFrom == null || TotalVCRI <= 0)
                {
                    return(0);
                }
                else
                {
                    totalVC = TotalVCRI * orsoPlanDetailFrom.ORSOPlanDetailER / 100;

                    // Cap before residual
                    if (orsoPlan.ORSOPlanEmployerResidual)
                    {
                        // Start 0000084, Ricky So, 2014-08-22
                        totalVC = (totalVC > orsoPlan.ORSOPlanEmployerResidualCap) ? orsoPlan.ORSOPlanEmployerResidualCap : totalVC;
                        // End 0000084, Ricky So, 2014-08-22

                        // Deduct MPF contribution (use residual)
                        if (mpfRecord != null)
                        {
                            totalVC = (totalVC > mpfRecord.MPFRecActMCER) ? (totalVC - mpfRecord.MPFRecActMCER) : 0;
                        }
                    }

                    totalVC += orsoPlanDetailFrom.ORSOPlanDetailERFix;
                    return(totalVC < orsoPlan.ORSOPlanMaxEmployerVC ? totalVC : orsoPlan.ORSOPlanMaxEmployerVC);
                }
            }
            else
            {
                return(0);
            }
        }
Exemplo n.º 3
0
        public static ArrayList ORSOTrialRun(DatabaseConnection dbConn, int EmpID, EPayrollPeriod payrollPeriod, ArrayList paymentRecords, EMPFRecord mpfRecord)
        {
            ArrayList orsoRecords = new ArrayList();

            DBFilter dbFilter = new DBFilter();

            dbFilter.add(new Match("EmpID", EmpID));
            dbFilter.add(new Match("EmpORSOEffFr", "<=", payrollPeriod.PayPeriodTo));
            dbFilter.add("EmpORSOEffFr", true);
            ArrayList oEmpORSOs = EEmpORSOPlan.db.select(dbConn, dbFilter);

            if (oEmpORSOs.Count > 0)
            {
                EEmpORSOPlan oEmpORSO = (EEmpORSOPlan)oEmpORSOs[0];

                DateTime ORSOJoinDate = oEmpORSO.EmpORSOEffFr;

                if (ORSOJoinDate <= payrollPeriod.PayPeriodTo && ORSOJoinDate >= payrollPeriod.PayPeriodFr)
                {
                    ArrayList newJoinORSORecords = CreateNewJoinORSORecords(dbConn, EmpID, oEmpORSO.EmpORSOEffFr, ORSOJoinDate);
                    if (newJoinORSORecords != null)
                    {
                        orsoRecords.AddRange(newJoinORSORecords);
                    }
                    orsoRecords.Add(CreateORSORecord(dbConn, EmpID, payrollPeriod, paymentRecords, oEmpORSO.EmpORSOEffFr, ORSOJoinType.NewJoin, mpfRecord));
                }
                else if (ORSOJoinDate < payrollPeriod.PayPeriodFr)
                {
                    orsoRecords.Add(CreateORSORecord(dbConn, EmpID, payrollPeriod, paymentRecords, oEmpORSO.EmpORSOEffFr, ORSOJoinType.Existing, mpfRecord));
                }
                else if (payrollPeriod.PayPeriodTo < ORSOJoinDate)
                {
                }
                else
                {
                }
            }
            return(orsoRecords);
        }
Exemplo n.º 4
0
        //private static double CalculateProrataFactor(int EmpID, EPayrollPeriod payrollPeriod)
        //{
        //    EEmpPersonalInfo oEmp = new EEmpPersonalInfo();
        //    oEmp.EmpID = EmpID;
        //    EEmpPersonalInfo.db.select(dbConn, oEmp);

        //    DateTime dt1AgeMin = oEmp.EmpDateOfBirth.AddYears(AGE_MINIMUM);
        //    DateTime dt1AgeMax = oEmp.EmpDateOfBirth.AddYears(AGE_MAXIMUM);

        //    EEmpTermination empTermination = EEmpTermination.GetObjectByEmpID(dbConn, EmpID);
        //    bool blnTerminated;
        //    if (empTermination != null)
        //    {
        //        if (empTermination.EmpTermLastDate <= payrollPeriod.PayPeriodTo && empTermination.EmpTermLastDate >= payrollPeriod.PayPeriodFr)
        //            blnTerminated = true;
        //        else
        //            blnTerminated = false;
        //    }
        //    else
        //        blnTerminated = false;

        //    double prorataFactor = 1;
        //    if (oEmp.EmpDateOfJoin < dt1AgeMin)
        //    {
        //        if (dt1AgeMin <= payrollPeriod.PayPeriodTo && dt1AgeMin >= payrollPeriod.PayPeriodFr)
        //        {
        //            if (blnTerminated)
        //                prorataFactor = (double)(empTermination.EmpTermLastDate.Subtract(dt1AgeMin).Days + 1) / (empTermination.EmpTermLastDate.Subtract(payrollPeriod.PayPeriodFr > oEmp.EmpDateOfJoin ? payrollPeriod.PayPeriodFr : oEmp.EmpDateOfJoin).Days + 1);
        //            else
        //                prorataFactor = (double)(payrollPeriod.PayPeriodTo.Subtract(dt1AgeMin).Days + 1) / (payrollPeriod.PayPeriodTo.Subtract(payrollPeriod.PayPeriodFr > oEmp.EmpDateOfJoin ? payrollPeriod.PayPeriodFr : oEmp.EmpDateOfJoin).Days + 1);
        //        }
        //        if (dt1AgeMin >= payrollPeriod.PayPeriodTo)
        //            prorataFactor = 0;
        //    }

        //    if (dt1AgeMax <= payrollPeriod.PayPeriodTo && dt1AgeMax >= payrollPeriod.PayPeriodFr)
        //    {
        //        if (blnTerminated)
        //        {
        //            if (empTermination.EmpTermLastDate < dt1AgeMax)
        //                prorataFactor = 1;
        //            else
        //                prorataFactor = 1.0 - (double)(empTermination.EmpTermLastDate.Subtract(dt1AgeMax).Days + 1) / (empTermination.EmpTermLastDate.Subtract(payrollPeriod.PayPeriodFr > oEmp.EmpDateOfJoin ? payrollPeriod.PayPeriodFr : oEmp.EmpDateOfJoin).Days + 1);
        //        }
        //        else
        //            prorataFactor = 1.0 - (double)(payrollPeriod.PayPeriodTo.Subtract(dt1AgeMax).Days + 1) / (payrollPeriod.PayPeriodTo.Subtract(payrollPeriod.PayPeriodFr > oEmp.EmpDateOfJoin ? payrollPeriod.PayPeriodFr : oEmp.EmpDateOfJoin).Days + 1);
        //    }
        //    if (dt1AgeMax <= payrollPeriod.PayPeriodFr)
        //        prorataFactor = 0;

        //    return prorataFactor;
        //}

        private static EORSORecord CreateORSORecord(DatabaseConnection dbConn, int EmpID, EPayrollPeriod payrollPeriod, ArrayList paymentRecords, DateTime ORSOJoinDate, ORSOJoinType ORSOJoinType, EMPFRecord mpfRecord)
        {
            //double RIProrateFactor = CalculateProrataFactor(EmpID, payrollPeriod);
            EORSORecord orsoRecord = new EORSORecord();

            switch (ORSOJoinType)
            {
            case ORSOJoinType.NewJoin:
                orsoRecord.ORSORecType = "N";
                break;

            case ORSOJoinType.Existing:
                orsoRecord.ORSORecType = "E";
                break;
                //case ORSOJoinType.Terminated:
                //    ORSORecord.ORSORecType = "T";
                //break;
            }
            orsoRecord.ORSORecCalRI = 0;
            orsoRecord.ORSOPlanID   = GetORSOPlanID(dbConn, EmpID, payrollPeriod.PayPeriodTo);

            if (orsoRecord.ORSOPlanID > 0)
            {
                EEmpPersonalInfo oEmp = new EEmpPersonalInfo();
                oEmp.EmpID = EmpID;
                EEmpPersonalInfo.db.select(dbConn, oEmp);

                //DateTime dt1Age18 = oEmp.EmpDateOfBirth.AddYears(18);
                //DateTime dt1Age65 = oEmp.EmpDateOfBirth.AddYears(65);

                EEmpTermination empTermination = EEmpTermination.GetObjectByEmpID(dbConn, EmpID);

                orsoRecord.ORSORecPeriodFr = payrollPeriod.PayPeriodFr;
                orsoRecord.ORSORecPeriodTo = payrollPeriod.PayPeriodTo;

                if (orsoRecord.ORSORecPeriodFr > oEmp.EmpDateOfJoin && orsoRecord.ORSORecPeriodTo < oEmp.EmpDateOfJoin)
                {
                    orsoRecord.ORSORecPeriodFr = oEmp.EmpDateOfJoin;
                }
                //if (ORSORecord.ORSORecPeriodFr > dt1Age18 && ORSORecord.ORSORecPeriodTo < dt1Age18)
                //    ORSORecord.ORSORecPeriodFr = dt1Age18;
                if (empTermination != null)
                {
                    // Start 0000186, Ricky So, 2016/04/15
                    // incomplete month --> no orso contribution
                    if (orsoRecord.ORSORecPeriodTo > empTermination.EmpTermLastDate && orsoRecord.ORSORecPeriodFr <= empTermination.EmpTermLastDate)
                    {
                        orsoRecord.ORSORecPeriodTo = empTermination.EmpTermLastDate;
                        orsoRecord.ORSORecActEE    = 0;
                        orsoRecord.ORSORecActER    = 0;
                        orsoRecord.ORSORecActRI    = 0;
                        orsoRecord.ORSORecCalEE    = 0;
                        orsoRecord.ORSORecCalER    = 0;
                        orsoRecord.ORSORecCalRI    = 0;
                        return(orsoRecord);
                    }
                    // End 0000186, Ricky So, 2016/04/15
                    if (orsoRecord.ORSORecPeriodTo < empTermination.EmpTermLastDate && orsoRecord.ORSORecPeriodFr >= empTermination.EmpTermLastDate)
                    {
                        orsoRecord.ORSORecPeriodTo = empTermination.EmpTermLastDate;
                    }
                }
                //if (ORSORecord.ORSORecPeriodTo < dt1Age65 && ORSORecord.ORSORecPeriodFr > dt1Age65)
                //    ORSORecord.ORSORecPeriodTo = dt1Age65;


                foreach (EPaymentRecord paymentRecord in paymentRecords)
                {
                    EPaymentCode paymentCode = new EPaymentCode();
                    paymentCode.PaymentCodeID = paymentRecord.PaymentCodeID;
                    EPaymentCode.db.select(dbConn, paymentCode);
                    if (paymentCode.PaymentCodeIsORSO)
                    {
                        orsoRecord.ORSORecCalRI += paymentRecord.PayRecActAmount;
                    }
                }
                orsoRecord.ORSORecActRI = orsoRecord.ORSORecCalRI;

                if (orsoRecord.ORSOPlanID > 0)
                {
                    DBFilter oldORSORecordFilter = new DBFilter();

                    DBFilter empIDFilter = new DBFilter();
                    empIDFilter.add(new Match("EmpID", EmpID));

                    oldORSORecordFilter.add(new IN("EmpPayrollID", "Select EmpPayrollID from EMPPayroll ", empIDFilter));
                    oldORSORecordFilter.add(new Match("ORSORecPeriodFr", "<=", orsoRecord.ORSORecPeriodTo));
                    oldORSORecordFilter.add(new Match("ORSORecPeriodTo", ">=", orsoRecord.ORSORecPeriodFr));
                    ArrayList oldORSORecords = EORSORecord.db.select(dbConn, oldORSORecordFilter);

                    EORSORecord oldTotalORSORecord = new EORSORecord();
                    EORSORecord newTotalORSORecord = new EORSORecord();

                    foreach (EORSORecord oldORSORecord in oldORSORecords)
                    {
                        oldTotalORSORecord.ORSORecActRI += oldORSORecord.ORSORecActRI;
                        oldTotalORSORecord.ORSORecActER += oldORSORecord.ORSORecActER;
                        oldTotalORSORecord.ORSORecActEE += oldORSORecord.ORSORecActEE;
                    }


                    newTotalORSORecord.ORSORecCalRI = oldTotalORSORecord.ORSORecActRI + orsoRecord.ORSORecCalRI;

                    newTotalORSORecord.ORSORecCalER = CalculateERAmount(dbConn, oEmp, orsoRecord.ORSOPlanID, newTotalORSORecord.ORSORecCalRI, payrollPeriod, mpfRecord);
                    newTotalORSORecord.ORSORecCalEE = CalculateEEAmount(dbConn, oEmp, orsoRecord.ORSOPlanID, newTotalORSORecord.ORSORecCalRI, payrollPeriod, ORSOJoinDate, mpfRecord);

                    orsoRecord.ORSORecCalER = newTotalORSORecord.ORSORecCalER - oldTotalORSORecord.ORSORecActER;
                    orsoRecord.ORSORecCalEE = newTotalORSORecord.ORSORecCalEE - oldTotalORSORecord.ORSORecActEE;



                    orsoRecord.ORSORecActER = Math.Round(orsoRecord.ORSORecCalER, 2, MidpointRounding.AwayFromZero);
                    orsoRecord.ORSORecActEE = Math.Round(orsoRecord.ORSORecCalEE, 2, MidpointRounding.AwayFromZero);

                    EORSOPlan orsoPlan = new EORSOPlan();
                    orsoPlan.ORSOPlanID = orsoRecord.ORSOPlanID;
                    if (EORSOPlan.db.select(dbConn, orsoPlan))
                    {
                        if (string.IsNullOrEmpty(orsoPlan.ORSOPlanEmployerRoundingRule))
                        {
                            orsoPlan.ORSOPlanEmployerRoundingRule = Values.ROUNDING_RULE_ROUND_TO;
                            orsoPlan.ORSOPlanEmployerDecimalPlace = 2;
                        }
                        if (orsoPlan.ORSOPlanEmployerRoundingRule.Equals(Values.ROUNDING_RULE_ROUND_TO))
                        {
                            orsoRecord.ORSORecActER = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(orsoRecord.ORSORecCalER, orsoPlan.ORSOPlanEmployerDecimalPlace, ExchangeCurrency.DefaultCurrencyDecimalPlaces());
                        }
                        else if (orsoPlan.ORSOPlanEmployerRoundingRule.Equals(Values.ROUNDING_RULE_ROUND_UP))
                        {
                            orsoRecord.ORSORecActER = HROne.CommonLib.GenericRoundingFunctions.RoundingUp(orsoRecord.ORSORecCalER, orsoPlan.ORSOPlanEmployerDecimalPlace, ExchangeCurrency.DefaultCurrencyDecimalPlaces());
                        }
                        else if (orsoPlan.ORSOPlanEmployerRoundingRule.Equals(Values.ROUNDING_RULE_ROUND_DOWN))
                        {
                            orsoRecord.ORSORecActER = HROne.CommonLib.GenericRoundingFunctions.RoundingDown(orsoRecord.ORSORecCalER, orsoPlan.ORSOPlanEmployerDecimalPlace, ExchangeCurrency.DefaultCurrencyDecimalPlaces());
                        }

                        if (string.IsNullOrEmpty(orsoPlan.ORSOPlanEmployeeRoundingRule))
                        {
                            orsoPlan.ORSOPlanEmployeeRoundingRule = Values.ROUNDING_RULE_ROUND_TO;
                            orsoPlan.ORSOPlanEmployeeDecimalPlace = 2;
                        }
                        if (orsoPlan.ORSOPlanEmployeeRoundingRule.Equals(Values.ROUNDING_RULE_ROUND_TO))
                        {
                            orsoRecord.ORSORecActEE = HROne.CommonLib.GenericRoundingFunctions.RoundingTo(orsoRecord.ORSORecCalEE, orsoPlan.ORSOPlanEmployeeDecimalPlace, ExchangeCurrency.DefaultCurrencyDecimalPlaces());
                        }
                        else if (orsoPlan.ORSOPlanEmployeeRoundingRule.Equals(Values.ROUNDING_RULE_ROUND_UP))
                        {
                            orsoRecord.ORSORecActEE = HROne.CommonLib.GenericRoundingFunctions.RoundingUp(orsoRecord.ORSORecCalEE, orsoPlan.ORSOPlanEmployeeDecimalPlace, ExchangeCurrency.DefaultCurrencyDecimalPlaces());
                        }
                        else if (orsoPlan.ORSOPlanEmployeeRoundingRule.Equals(Values.ROUNDING_RULE_ROUND_DOWN))
                        {
                            orsoRecord.ORSORecActEE = HROne.CommonLib.GenericRoundingFunctions.RoundingDown(orsoRecord.ORSORecCalEE, orsoPlan.ORSOPlanEmployeeDecimalPlace, ExchangeCurrency.DefaultCurrencyDecimalPlaces());
                        }
                    }
                }

                return(orsoRecord);
            }
            else
            {
                return(null);
            }
        }
    protected void Repeater_ItemCommand(object source, DataListCommandEventArgs e)
    {
        Button b = (Button)e.CommandSource;



        if (b.ID.Equals("Edit"))
        {
            Repeater.EditItemIndex = e.Item.ItemIndex;
            //AddPanel.Visible = false;
            view = loadData(info, db, Repeater);
            WebUtils.SetEnabledControlSection(AddPanel, false);
        }
        else if (b.ID.Equals("Cancel"))
        {
            Repeater.EditItemIndex = -1;
            //AddPanel.Visible = IsAllowEdit;
            view = loadData(info, db, Repeater);
            WebUtils.SetEnabledControlSection(AddPanel, true);
        }
        else if (b.ID.Equals("Save"))
        {
            Binding eBinding;
            eBinding = new Binding(dbConn, db);
            eBinding.add(EmpPayrollID);
            eBinding.add((HtmlInputHidden)e.Item.FindControl("MPFRecordID"));
            eBinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("MPFRecPeriodFr")).TextBox, "MPFRecPeriodFr"));
            eBinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("MPFRecPeriodTo")).TextBox, "MPFRecPeriodTo"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActMCRI"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActMCER"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActMCEE"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActVCER"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActVCEE"));
            eBinding.add(new DropDownVLBinder(db, (DropDownList)e.Item.FindControl("MPFPlanID"), EMPFPlan.VLMPFPlan));


            eBinding.init(Request, Session);


            EMPFRecord obj    = new EMPFRecord();
            Hashtable  values = new Hashtable();

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


            eBinding.toValues(values);
            db.validate(errors, values);

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

            db.parse(values, obj);

            EEmpPayroll empPayroll = new EEmpPayroll();
            empPayroll.EmpPayrollID = obj.EmpPayrollID;
            if (EEmpPayroll.db.select(dbConn, empPayroll))
            {
                EPayrollPeriod payPeriod = new EPayrollPeriod();
                payPeriod.PayPeriodID = empPayroll.PayPeriodID;

                if (EPayrollPeriod.db.select(dbConn, payPeriod))
                {
                    if (obj.MPFRecPeriodFr <= payPeriod.PayPeriodTo && obj.MPFRecPeriodTo <= payPeriod.PayPeriodTo)
                    {
                        WebUtils.StartFunction(Session, m_FunctionCode, empPayroll.EmpID);
                        db.update(dbConn, obj);
                        WebUtils.EndFunction(dbConn);
                    }
                    else
                    {
                        errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_PERIOD);
                        return;
                    }
                }
            }

            Repeater.EditItemIndex = -1;
            AddPanel.Visible       = IsAllowEdit;
            view = loadData(info, db, Repeater);
            WebUtils.SetEnabledControlSection(AddPanel, true);
        }
    }
    protected void Repeater_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        EMPFRecord obj = new EMPFRecord();

        db.toObject(((DataRowView)e.Item.DataItem).Row, obj);
        Hashtable values = new Hashtable();

        db.populate(obj, values);
        dblTotalMPFMCRI += obj.MPFRecActMCRI;
        dblTotalMPFMCER += obj.MPFRecActMCER;
        dblTotalMPFMCEE += obj.MPFRecActMCEE;
        dblTotalMPFVCER += obj.MPFRecActVCER;
        dblTotalMPFVCEE += obj.MPFRecActVCEE;

        if (e.Item.ItemIndex == Repeater.EditItemIndex)
        {
            Binding eBinding;
            eBinding = new Binding(dbConn, db);
            eBinding.add((HtmlInputHidden)e.Item.FindControl("MPFRecordID"));
            eBinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("MPFRecPeriodFr")).TextBox, "MPFRecPeriodFr"));
            eBinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("MPFRecPeriodTo")).TextBox, "MPFRecPeriodTo"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActMCRI"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActMCER"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActMCEE"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActVCER"));
            eBinding.add((TextBox)e.Item.FindControl("MPFRecActVCEE"));
            eBinding.add(new DropDownVLBinder(db, (DropDownList)e.Item.FindControl("MPFPlanID"), EMPFPlan.VLMPFPlan));



            eBinding.init(Request, Session);

            eBinding.toControl(values);
            if (EmpPayStatus.Value == "C" && obj.MPFRecType != "A")
            {
                ((WebDatePicker)e.Item.FindControl("MPFRecPeriodFr")).Enabled = false;;
                ((WebDatePicker)e.Item.FindControl("MPFRecPeriodTo")).Enabled = false;;
                ((TextBox)e.Item.FindControl("MPFRecActMCRI")).Enabled        = false;
                ((TextBox)e.Item.FindControl("MPFRecActMCER")).Enabled        = false;
                ((TextBox)e.Item.FindControl("MPFRecActMCEE")).Enabled        = false;
                ((TextBox)e.Item.FindControl("MPFRecActVCER")).Enabled        = false;
                ((TextBox)e.Item.FindControl("MPFRecActVCEE")).Enabled        = false;
                e.Item.FindControl("DeleteItem").Visible = false;
            }
        }
        else
        {
            e.Item.FindControl("Edit").Visible = IsAllowEdit;

            if (EmpPayStatus.Value == "C" && obj.MPFRecType != "A")
            {
                //e.Item.FindControl("Edit").Visible = false;
                e.Item.FindControl("DeleteItem").Visible = false;
            }
            //else if (obj.MPFRecType != "A")
            //{
            //    e.Item.FindControl("Edit").Visible = true & IsAllowEdit;
            //    e.Item.FindControl("DeleteItem").Visible = true;
            //}
            else
            {
                e.Item.FindControl("DeleteItem").Visible = true & IsAllowEdit;
            }

            HtmlInputHidden h = (HtmlInputHidden)e.Item.FindControl("MPFRecordID");
            h.Value = ((DataRowView)e.Item.DataItem)["MPFRecordID"].ToString();
        }
        HROne.Common.WebUtility.WebControlsLocalization(Session, e.Item.Controls);
    }
    protected void Add_Click(object sender, EventArgs e)
    {
        Repeater.EditItemIndex = -1;
        EMPFRecord c = new EMPFRecord();

        Hashtable values = new Hashtable();

        newBinding.toValues(values);

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

        errors.clear();


        db.validate(errors, values);

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


        db.parse(values, c);
        c.AVCPlanID  = 0;
        c.MPFRecType = "A";
        EEmpPayroll empPayroll = new EEmpPayroll();

        empPayroll.EmpPayrollID = c.EmpPayrollID;
        if (EEmpPayroll.db.select(dbConn, empPayroll))
        {
            EPayrollPeriod payPeriod = new EPayrollPeriod();
            payPeriod.PayPeriodID = empPayroll.PayPeriodID;

            if (EPayrollPeriod.db.select(dbConn, payPeriod))
            {
                if (c.MPFRecPeriodFr <= payPeriod.PayPeriodTo && c.MPFRecPeriodTo <= payPeriod.PayPeriodTo)
                {
                    WebUtils.StartFunction(Session, m_FunctionCode, empPayroll.EmpID);
                    db.insert(dbConn, c);
                    WebUtils.EndFunction(dbConn);
                }
                else
                {
                    errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_PERIOD);
                    return;
                }
            }
        }

        MPFRecPeriodFr.TextBox.Text = string.Empty;
        MPFRecPeriodTo.TextBox.Text = string.Empty;
        MPFRecActMCRI.Text          = string.Empty;
        MPFRecActMCEE.Text          = string.Empty;
        MPFRecActMCER.Text          = string.Empty;
        MPFRecActVCEE.Text          = string.Empty;
        MPFRecActVCER.Text          = string.Empty;
        MPFPlanID.SelectedIndex     = 0;

        view = loadData(info, db, Repeater);
        //Response.Redirect(Request.Url.LocalPath + "?" + Request.QueryString);
    }