예제 #1
0
    protected void Import_Click(object sender, EventArgs e)
    {
        ImportAttendancePreparationProcess m_import = new ImportAttendancePreparationProcess(dbConn, Session.SessionID, WebUtils.GetCurUser(Session).UserID);

        WebUtils.StartFunction(Session, FUNCTION_CODE);
        m_import.ImportToDatabase();

        // Set employee count
        DBFilter m_countFilter = new DBFilter();

        m_countFilter.add(new Match("AttendancePreparationProcessID", gPID));
        int empCount = EEmpAttendancePreparationProcess.db.count(dbConn, m_countFilter);

        EAttendancePreparationProcess attendancePreparationProcess = EAttendancePreparationProcess.GetObject(dbConn, gPID);

        attendancePreparationProcess.AttendancePreparationProcessEmpCount = empCount;
        EAttendancePreparationProcess.db.update(dbConn, attendancePreparationProcess);

        DBFilter m_clearTempFilter = new DBFilter();

        m_clearTempFilter.add(new Match("AttendancePreparationProcessID", gPID));
        EUploadAttendancePreparationProcess.db.delete(dbConn, m_clearTempFilter);

        WebUtils.EndFunction(dbConn);

        PageErrors.getErrors(db, Page).addError(HROne.Translation.PageMessage.IMPORT_SUCCESSFUL);
    }
예제 #2
0
    protected void Delete_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        EAttendancePreparationProcess o = new EAttendancePreparationProcess();

        o.AttendancePreparationProcessID = CurID;

        if (db.select(dbConn, o))
        {
            if (o.AttendancePreparationProcessStatus != EAttendancePreparationProcess.STATUS_NORMAL)
            {
                errors.addError("Status must be Normal");
            }
            else
            {
                o.AttendancePreparationProcessStatus = EAttendancePreparationProcess.STATUS_CANCELLED;
                if (EAttendancePreparationProcess.db.update(dbConn, o))
                {
                    errors.addError("Update Completed");
                }
                else
                {
                    errors.addError("Update failed");
                }
            }
        }
        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Customize_AttendancePreparationProcess_List.aspx");
    }
    protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        DataRowView row = (DataRowView)e.Item.DataItem;
        CheckBox    cb  = (CheckBox)e.Item.FindControl("ItemSelect");

        WebFormUtils.LoadKeys(db, row, cb);
        e.Item.FindControl("ItemSelect").Visible = toolBar.DeleteButton_Visible;

        Binding ebinding;

        EAttendancePreparationProcess obj = new EAttendancePreparationProcess();

        db.toObject(((DataRowView)e.Item.DataItem).Row, obj);

        if (obj.AttendancePreparationProcessID > 0)
        {
            ((Label)e.Item.FindControl("AttendancePreparationProcessPayDate")).Text = obj.AttendancePreparationProcessPayDate.ToString("yyyy-MM-dd");
            switch (obj.AttendancePreparationProcessStatus)
            {
            case EAttendancePreparationProcess.STATUS_NORMAL:
                ((Label)e.Item.FindControl("AttendancePreparationProcessStatus")).Text = EAttendancePreparationProcess.STATUS_NORMAL_DESC;
                break;

            case EAttendancePreparationProcess.STATUS_CONFIRMED:
                ((Label)e.Item.FindControl("AttendancePreparationProcessStatus")).Text = EAttendancePreparationProcess.STATUS_CONFIRMED_DESC;
                break;

            case EAttendancePreparationProcess.STATUS_CANCELLED:
                ((Label)e.Item.FindControl("AttendancePreparationProcessStatus")).Text = EAttendancePreparationProcess.STATUS_CANCELLED_DESC;
                break;
            }
        }
    }
    protected bool loadObject()
    {
        obj = new EAttendancePreparationProcess();
        bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest);

        if (!db.select(dbConn, obj))
        {
            return(false);
        }

        Hashtable values = new Hashtable();

        db.populate(obj, values);
        binding.toControl(values);

        switch (obj.AttendancePreparationProcessStatus)
        {
        case EAttendancePreparationProcess.STATUS_NORMAL:
            AttendancePreparationProcessStatusDesc.Text = EAttendancePreparationProcess.STATUS_NORMAL_DESC;
            break;

        case EAttendancePreparationProcess.STATUS_CONFIRMED:
            AttendancePreparationProcessStatusDesc.Text = EAttendancePreparationProcess.STATUS_CONFIRMED_DESC;
            break;
        }

        return(true);
    }
    protected void Delete_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        EAttendancePreparationProcess o = new EAttendancePreparationProcess();

        o.AttendancePreparationProcessID = CurID;

        if (db.select(dbConn, o))
        {
            if (o.AttendancePreparationProcessStatus != EAttendancePreparationProcess.STATUS_NORMAL)
            {
                errors.addError("Attendance Preparation Process remove failed.  Status is not " + EAttendancePreparationProcess.STATUS_NORMAL_DESC);
            }
            else
            {
                DBFilter m_filter = new DBFilter();
                m_filter.add(new Match("AttendancePreparationProcessID", CurID));

                if (EAttendancePreparationProcess.db.delete(dbConn, m_filter))
                {
                    errors.addError("Attendance Preparation Process removed");
                    HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Customize_AttendancePreparationProcess_List.aspx");
                }
                else
                {
                    errors.addError("Attendance Preparation Process remove failed.");
                }
            }
        }
    }
예제 #6
0
    protected void btnGenerateCND_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        EAttendancePreparationProcess m_process = EAttendancePreparationProcess.GetObject(dbConn, CurID);

        if (m_process != null)
        {
            DBFilter m_rpFilter = new DBFilter();
            OR       m_or       = new OR();
            m_or.add(new NullTerm("EmpRPEffTo"));
            m_or.add(new Match("EmpRPEffTo", ">=", HROne.CommonLib.Utility.LastDateOfMonth(AppUtils.ServerDateTime())));

            m_rpFilter.add(m_or);
            m_rpFilter.add(new Match("EmpRPEffFr", "<=", HROne.CommonLib.Utility.LastDateOfMonth(AppUtils.ServerDateTime())));

            DBFilter m_isRPWinsonFilter = new DBFilter();
            m_rpFilter.add(new IN("EmpRPID", "SELECT EmpRPID FROM EmpRPWinson", m_isRPWinsonFilter));

            DBFilter m_EmpPersonalFilter = new DBFilter();
            m_EmpPersonalFilter.add(new IN("EmpID", "SELECT EmpID FROM EmpRecurringPayment", m_rpFilter));

            ArrayList empList = EEmpPersonalInfo.db.select(dbConn, m_EmpPersonalFilter);

            HROne.Import.ImportAttendancePreparationProcess m_import = new HROne.Import.ImportAttendancePreparationProcess(dbConn, Session.SessionID, WebUtils.GetCurUser(Session).UserID, CurID);

            string exportFileName = System.IO.Path.GetTempFileName();
            System.IO.File.Delete(exportFileName);
            exportFileName += ".xls";
            HROne.Export.ExcelExport export = new HROne.Export.ExcelExport(exportFileName);
            DataSet dataSet = m_import.GenerateCND(dbConn, empList, exportFileName, CurID);
            export.Update(dataSet);
            WebUtils.TransmitFile(Response, exportFileName, "CND_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls", true);
        }
        else
        {
            errors.addError("Failed to open batch");
        }
    }
    protected void Save_Click(object sender, EventArgs e)
    {
        EAttendancePreparationProcess c = new EAttendancePreparationProcess();

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

        WebUtils.StartFunction(Session, FUNCTION_CODE);
        if (CurID < 0)
        {
            db.insert(dbConn, c);
            CurID = c.AttendancePreparationProcessID;
        }
        else
        {
            db.update(dbConn, c);
        }

        WebUtils.EndFunction(dbConn);

        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Customize_AttendancePreparationProcess_View.aspx?AttendancePreparationProcessID=" + CurID);
    }
예제 #8
0
    protected bool loadObject()
    {
        obj = new EAttendancePreparationProcess();
        bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest);

        if (!db.select(dbConn, obj))
        {
            return(false);
        }

        ProcessID.Value = obj.AttendancePreparationProcessID.ToString("0");
        AttendancePreparationProcessDesc.Text    = obj.AttendancePreparationProcessDesc;
        AttendancePreparationProcessMonth.Text   = obj.AttendancePreparationProcessMonth.ToString("yyyy-MM");
        AttendancePreparationProcessPayDate.Text = obj.AttendancePreparationProcessPayDate.ToString("yyyy-MM-dd");
        AttendancePreparationProcessStatus.Text  = obj.AttendancePreparationProcessStatus;
        switch (obj.AttendancePreparationProcessStatus)
        {
        case EAttendancePreparationProcess.STATUS_NORMAL:
            AttendancePreparationProcessStatusDesc.Text = EAttendancePreparationProcess.STATUS_NORMAL_DESC;
            break;

        case EAttendancePreparationProcess.STATUS_CONFIRMED:
            AttendancePreparationProcessStatusDesc.Text = EAttendancePreparationProcess.STATUS_CONFIRMED_DESC;
            break;

        case EAttendancePreparationProcess.STATUS_CANCELLED:
            AttendancePreparationProcessStatusDesc.Text = EAttendancePreparationProcess.STATUS_CANCELLED_DESC;
            break;
        }

        if (obj.AttendancePreparationProcessPeriodFr.Ticks != 0)
        {
            AttendancePreparationProcessPeriodFr.Text = obj.AttendancePreparationProcessPeriodFr.ToString("yyyy-MM-dd");
        }

        if (obj.AttendancePreparationProcessPeriodTo.Ticks != 0)
        {
            AttendancePreparationProcessPeriodTo.Text = obj.AttendancePreparationProcessPeriodTo.ToString("yyyy-MM-dd");
        }

        // load upload count
        DBFilter m_countFilter = new DBFilter();

        m_countFilter.add(new Match("AttendancePreparationProcessID", CurID));
        UploadCount.Text = EEmpAttendancePreparationProcess.db.count(dbConn, m_countFilter).ToString("0");

        // control visibility of commands
        if (obj.AttendancePreparationProcessStatus != EAttendancePreparationProcess.STATUS_NORMAL)
        {
            BasicInfoCommands.Visible    = false;
            toolBar.EditButton_Visible   = false;
            toolBar.DeleteButton_Visible = false;
            btnConfirmAndSeal.Visible    = false;
            ButtonCommands.Visible       = false;
        }

        if (this.UploadCount.Text == "0")
        {
            btnGenerateCalculatedReport.Enabled = false;
            btnGenerateCND.Enabled = false;
        }

        return(true);
    }
    protected DBTerm CreateFilterByProcess(string pProcessName, int pProcessID)
    {
        if (pProcessName == "BonusProcess")
        {
            EBonusProcess m_process = EBonusProcess.GetObject(dbConn, pProcessID);
            Match         m_match   = new Match("E.EmpProbaLastDate", "<=", m_process.BonusProcessPeriodTo);
            return(m_match);
        }
        else if (pProcessName == "DoublePayAdjustment")
        {
            // only staffs with commission calculation is configured through latest Recurring Payment
            DBFilter m_rpFilter = new DBFilter();
            OR       m_or       = new OR();
            m_or.add(new NullTerm("EmpRPEffTo"));
            m_or.add(new Match("EmpRPEffTo", ">=", Utility.LastDateOfMonth(AppUtils.ServerDateTime())));

            //m_rpFilter.add(new NullTerm("NOT EmpRPFPS"));
            m_rpFilter.add(m_or);
            m_rpFilter.add(new Match("EmpRPEffFr", "<=", Utility.LastDateOfMonth(AppUtils.ServerDateTime())));
            m_rpFilter.add(new Match("EmpRPFPS", ">", 0));
            m_rpFilter.add(new Match("EmpRPFPS", "<", 100));
            //m_rpFilter.add(new NullTerm("NOT EmpRPBasicSalary"));
            m_rpFilter.add(new Match("EmpRPBasicSalary", ">", 0));
            m_rpFilter.add(AppUtils.GetPayemntCodeDBTermByPaymentType(dbConn, "PayCodeID", "BASICSAL"));

            // check probation end date
            DBFilter m_EmpPersonalFilter = new DBFilter();
            m_EmpPersonalFilter.add(new Match("EmpProbaLastDate", "<=", new DateTime(AppUtils.ServerDateTime().Year - 1, 12, 31)));
            m_EmpPersonalFilter.add(new IN("EmpID", "SELECT EmpID FROM EmpRecurringPayment", m_rpFilter));

            return(new IN("EmpID", "SELECT EmpID FROM EmpPersonalInfo", m_EmpPersonalFilter));
        }
        else if (pProcessName == "HitRateProcess")
        {
            // only staffs with Recurring Payment (where PaymentType == isHitRateBased)
            DBFilter m_rpFilter = new DBFilter();
            OR       m_or       = new OR();
            m_or.add(new NullTerm("EmpRPEffTo"));
            m_or.add(new Match("EmpRPEffTo", ">=", Utility.LastDateOfMonth(AppUtils.ServerDateTime())));

            m_rpFilter.add(m_or);
            m_rpFilter.add(new Match("EmpRPEffFr", "<=", Utility.LastDateOfMonth(AppUtils.ServerDateTime())));

            DBFilter m_isHitRateBasedFilter = new DBFilter();
            m_isHitRateBasedFilter.add(new Match("PaymentCodeIsHitRateBased", true));
            m_rpFilter.add(new IN("PayCodeID", "SELECT PaymentCodeID FROM PaymentCode", m_isHitRateBasedFilter));

            DBFilter m_EmpPersonalFilter = new DBFilter();
            //m_EmpPersonalFilter.add(new Match("EmpStatus", "A"));
            m_EmpPersonalFilter.add(new IN("EmpID", "SELECT EmpID FROM EmpRecurringPayment", m_rpFilter));

            return(new IN("EmpID", "SELECT EmpID FROM EmpPersonalInfo", m_EmpPersonalFilter));
        }
        // Start 0000168, KuangWei, 2015-02-09
        else if (pProcessName == "AttendancePreparationProcess")
        {
            // only staffs with Recurring Payment (where PaymentType == isHitRateBased)
            EAttendancePreparationProcess m_process = EAttendancePreparationProcess.GetObject(dbConn, pProcessID);

            DBFilter m_rpFilter = new DBFilter();
            OR       m_or       = new OR();
            m_or.add(new NullTerm("EmpRPEffTo"));
            m_or.add(new Match("EmpRPEffTo", ">=", m_process.AttendancePreparationProcessPeriodTo));

            m_rpFilter.add(m_or);
            m_rpFilter.add(new Match("EmpRPEffFr", "<=", m_process.AttendancePreparationProcessPeriodFr));

            DBFilter m_isRPWinsonFilter = new DBFilter();
            m_rpFilter.add(new IN("EmpRPID", "SELECT EmpRPID FROM EmpRPWinson", m_isRPWinsonFilter));

            DBFilter m_EmpPersonalFilter = new DBFilter();
            //m_EmpPersonalFilter.add(new Match("EmpStatus", "A"));
            m_EmpPersonalFilter.add(new IN("EmpID", "SELECT EmpID FROM EmpRecurringPayment", m_rpFilter));

            return(new IN("EmpID", "SELECT EmpID FROM EmpPersonalInfo", m_EmpPersonalFilter));
        }
        // End 0000168, KuangWei, 2015-02-09
        return(null);
    }