Exemple #1
0
 protected void SubmitCompensationLeaveEntitlementList(ArrayList CompensationLeaveEntitlementList)
 {
     foreach (ECompensationLeaveEntitle compLeave in CompensationLeaveEntitlementList)
     {
         DBFilter previousCompLeaveEntitleFilter = new DBFilter();
         previousCompLeaveEntitleFilter.add(new Match("EmpID", compLeave.EmpID));
         previousCompLeaveEntitleFilter.add(new Match("CompensationLeaveEntitleEffectiveDate", compLeave.CompensationLeaveEntitleEffectiveDate));
         previousCompLeaveEntitleFilter.add(new Match("CompensationLeaveEntitleIsAutoGenerated", true));
         ArrayList previousCompLeaveEntitleList = ECompensationLeaveEntitle.db.select(dbConn, previousCompLeaveEntitleFilter);
         if (previousCompLeaveEntitleList.Count > 0)
         {
             if (compLeave.CompensationLeaveEntitleHoursClaim > 0)
             {
                 ECompensationLeaveEntitle existingLeaveEntitle = ((ECompensationLeaveEntitle)previousCompLeaveEntitleList[0]);
                 if (!existingLeaveEntitle.CompensationLeaveEntitleHoursClaim.Equals(compLeave))
                 {
                     compLeave.CompensationLeaveEntitleID = existingLeaveEntitle.CompensationLeaveEntitleID;
                     ECompensationLeaveEntitle.db.update(dbConn, compLeave);
                 }
             }
             else
             {
                 foreach (ECompensationLeaveEntitle existingLeaveEntitle in previousCompLeaveEntitleList)
                 {
                     ECompensationLeaveEntitle.db.delete(dbConn, existingLeaveEntitle);
                 }
             }
         }
         else
         if (compLeave.CompensationLeaveEntitleHoursClaim > 0)
         {
             ECompensationLeaveEntitle.db.insert(dbConn, compLeave);
         }
     }
 }
    protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        DataRowView row = (DataRowView)e.Item.DataItem;
        ECompensationLeaveEntitle obj = new ECompensationLeaveEntitle();

        ECompensationLeaveEntitle.db.toObject(row.Row, obj);
    }
    protected bool loadObject()
    {
        ECompensationLeaveEntitle obj = new ECompensationLeaveEntitle();
        bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest);

        DBFilter filter = new DBFilter();

        filter.add(new Match("EmpID", CurEmpID));
        filter.add(WebUtils.AddRankFilter(Session, "EmpID", true));
        if (EEmpPersonalInfo.db.count(dbConn, filter) == 0)
        {
            if (CurEmpID <= 0)
            {
                return(false);
            }
            else
            {
                HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/AccessDeny.aspx");
            }
        }

        if (!db.select(dbConn, obj))
        {
            if (CurID <= 0)
            {
                return(false);
            }
            else
            {
                HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/AccessDeny.aspx");
            }
        }

        if (obj.EmpID != CurEmpID)
        {
            if (CurID <= 0)
            {
                return(false);
            }
            else
            {
                HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/AccessDeny.aspx");
            }
        }

        Hashtable values = new Hashtable();

        db.populate(obj, values);

        binding.toControl(values);

        CurEmpID = obj.EmpID;
        return(true);
    }
    protected void Delete_Click(object sender, EventArgs e)
    {
        ECompensationLeaveEntitle c = new ECompensationLeaveEntitle();

        c.CompensationLeaveEntitleID = CurID;
        db.select(dbConn, c);
        WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
        db.delete(dbConn, c);
        WebUtils.EndFunction(dbConn);
        //HROne.LeaveCalc.LeaveBalanceCalc leaaveBalCal = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, c.EmpID);
        //leaaveBalCal.RecalculateAfter(c.CompensationLeaveEntitleEffectiveDate, ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID);
        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "EmpTab_CompensationLeaveEntitle_View.aspx?EmpID=" + EmpID.Value);
    }
    public DataView loadData(ListInfo info, DBManager db, Repeater repeater)
    {
        DBFilter filter = sbinding.createFilter();

        filter.add(new Match("EmpID", this.CurID));
        filter.add(new Match("CompensationLeaveEntitleIsOTClaim", this.isOTClaim));
        //Start 0000210, Miranda, 2015-06-14
        //if (info != null && info.orderby != null && !info.orderby.Equals(""))
        //    filter.add(info.orderby, info.order);
        //End 0000210, Miranda, 2015-06-14

        string select = "c.* ";
        string from   = "from [" + sdb.dbclass.tableName + "] c";


        DataTable table = filter.loadData(dbConn, info, select, from);

        view = new DataView(table);

        ListFooter.Refresh();

        if (repeater != null)
        {
            repeater.DataSource = view;
            repeater.DataBind();
        }
        if (CurEntitleID != -1)
        {
            DBFilter detailFilter = sbinding.createFilter();
            detailFilter.add(new Match("CompensationLeaveEntitleID", this.CurEntitleID));
            ArrayList detailList = sdb.select(dbConn, detailFilter);
            if (detailList.Count > 0)
            {
                ECompensationLeaveEntitle detail = (ECompensationLeaveEntitle)detailList[0];
                Hashtable values = new Hashtable();
                sdb.populate(detail, values);

                binding.toControl(values);
            }
        }
        return(view);
    }
Exemple #6
0
        int IComparer.Compare(object x, object y)
        {
            if (x == null || y == null)
            {
                return(0);
            }

            ECompensationLeaveEntitle m_X = (ECompensationLeaveEntitle)x;
            ECompensationLeaveEntitle m_Y = (ECompensationLeaveEntitle)y;

            if (m_X.CompensationLeaveEntitleEffectiveDate.Equals(m_Y.CompensationLeaveEntitleEffectiveDate))
            {
                if (m_X.CompensationLeaveEntitleDateExpiry.Equals(m_Y.CompensationLeaveEntitleDateExpiry))
                {
                    return(m_X.CompensationLeaveEntitleID.CompareTo(m_Y.CompensationLeaveEntitleID));
                }
                return(m_X.CompensationLeaveEntitleDateExpiry.CompareTo(m_Y.CompensationLeaveEntitleDateExpiry));
            }
            return(m_X.CompensationLeaveEntitleEffectiveDate.CompareTo(m_Y.CompensationLeaveEntitleEffectiveDate));
        }
        public void ImportToDatabase(int UploadEmpID)
        {
            DBFilter sessionFilter = new DBFilter();

            sessionFilter.add(new Match("SessionID", m_SessionID));
            if (UploadEmpID > 0)
            {
                sessionFilter.add(new Match("UploadEmpID", UploadEmpID));
            }
            ArrayList uploadList = tempDB.select(dbConn, sessionFilter);

            foreach (EUploadCompensationLeaveEntitle obj in uploadList)
            {
                ECompensationLeaveEntitle compLeaveEntitle = new ECompensationLeaveEntitle();

                if (obj.ImportActionStatus != ImportDBObject.ImportActionEnum.INSERT)
                {
                    compLeaveEntitle.CompensationLeaveEntitleID = obj.CompensationLeaveEntitleID;
                    uploadDB.select(dbConn, compLeaveEntitle);
                }

                obj.ExportToObject(compLeaveEntitle);

                if (obj.ImportActionStatus == ImportDBObject.ImportActionEnum.INSERT)
                {
                    compLeaveEntitle.EmpID = ParseTemp.GetEmpIDFromUploadEmpID(dbConn, obj.UploadEmpID);
                    uploadDB.insert(dbConn, compLeaveEntitle);
                }
                else if (obj.ImportActionStatus == ImportDBObject.ImportActionEnum.UPDATE)
                {
                    uploadDB.update(dbConn, compLeaveEntitle);
                }

                tempDB.delete(dbConn, obj);
            }
        }
Exemple #8
0
    protected void GenerateCompensationLeaveEntitlement(ArrayList empInfoList, DateTime PeriodFrom, DateTime PeriodTo)
    {
        foreach (EEmpPersonalInfo empInfo in empInfoList)
        {
            ArrayList compensationLeaveEntitleList = new ArrayList();

            DBFilter attendanceRecordFilter = new DBFilter();
            attendanceRecordFilter.add(new Match("EmpID", empInfo.EmpID));
            attendanceRecordFilter.add(new Match("AttendanceRecordDate", "<=", PeriodTo));
            attendanceRecordFilter.add(new Match("AttendanceRecordDate", ">=", PeriodFrom));
            //attendanceRecordFilter.add(new Match("AttendanceRecordActualOvertimeMins", ">", 0));
            attendanceRecordFilter.add("AttendanceRecordDate", true);

            ArrayList attendanceRecordList = EAttendanceRecord.db.select(dbConn, attendanceRecordFilter);

            EEmpPositionInfo currentEmpPosInfo     = null;
            EAttendancePlan  currentAttendancePlan = null;
            foreach (EAttendanceRecord attendanceRecord in attendanceRecordList)
            {
                if (currentEmpPosInfo != null)
                {
                    if (currentEmpPosInfo.EmpPosEffFr <= attendanceRecord.AttendanceRecordDate && (currentEmpPosInfo.EmpPosEffTo >= attendanceRecord.AttendanceRecordDate || currentEmpPosInfo.EmpPosEffTo.Ticks.Equals(0)))
                    {
                        currentEmpPosInfo     = null;
                        currentAttendancePlan = null;
                    }
                }
                if (currentEmpPosInfo == null)
                {
                    currentEmpPosInfo = AppUtils.GetLastPositionInfo(dbConn, attendanceRecord.AttendanceRecordDate, empInfo.EmpID);
                    EAttendancePlan attendancePlan = new EAttendancePlan();
                    attendancePlan.AttendancePlanID = currentEmpPosInfo.AttendancePlanID;
                    if (EAttendancePlan.db.select(dbConn, attendancePlan))
                    {
                        currentAttendancePlan = attendancePlan;
                    }
                }


                if (currentAttendancePlan != null)
                {
                    if (currentAttendancePlan.AttendancePlanOTGainAsCompensationLeaveEntitle && currentAttendancePlan.AttendancePlanOTMinsUnit > 0)
                    {
                        int actualMins = AppUtils.ApplyRoundingRule(attendanceRecord.AttendanceRecordActualOvertimeMins, currentAttendancePlan.AttendancePlanOTMinsRoundingRule, currentAttendancePlan.AttendancePlanOTMinsUnit);

                        ECompensationLeaveEntitle compLeaveEntitle = new ECompensationLeaveEntitle();
                        compLeaveEntitle.EmpID = empInfo.EmpID;
                        compLeaveEntitle.CompensationLeaveEntitleEffectiveDate   = attendanceRecord.AttendanceRecordDate;
                        compLeaveEntitle.CompensationLeaveEntitleClaimPeriodFrom = attendanceRecord.AttendanceRecordDate;
                        compLeaveEntitle.CompensationLeaveEntitleClaimPeriodTo   = attendanceRecord.AttendanceRecordDate;
                        compLeaveEntitle.CompensationLeaveEntitleHoursClaim      = actualMins / 60.0;
                        compLeaveEntitle.CompensationLeaveEntitleIsAutoGenerated = true;
                        compensationLeaveEntitleList.Add(compLeaveEntitle);
                    }
                }
            }
            SubmitCompensationLeaveEntitlementList(compensationLeaveEntitleList);
            //HROne.LeaveCalc.LeaveBalanceCalc leaaveBalCal = new HROne.LeaveCalc.LeaveBalanceCalc(dbConn, empInfo.EmpID);
            //leaaveBalCal.RecalculateAfter(PeriodFrom , ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn).LeaveTypeID);
        }
    }
        public DataTable UploadToTempDatabase(DataTable rawDataTable, int UserID)
        {
            if (rawDataTable == null)
            {
                return(GetImportDataFromTempDatabase(null));
            }

            int rowCount = 1;

            foreach (DataRow row in rawDataTable.Rows)
            {
                rowCount++;

                EUploadCompensationLeaveEntitle uploadCompensationLeaveEntitle = new EUploadCompensationLeaveEntitle();
                //EEmpAVCPlan lastEmpAVC = null;
                //ArrayList uploadHierarchyList = new ArrayList();

                string EmpNo = row[FIELD_EMP_NO].ToString().Trim();
                uploadCompensationLeaveEntitle.EmpID = Parse.GetEmpID(dbConn, EmpNo, UserID);
                if (uploadCompensationLeaveEntitle.EmpID < 0)
                {
                    errors.addError(ImportErrorMessage.ERROR_ACCESS_DENIED_EMP_NO, new string[] { EmpNo, rowCount.ToString() });
                }
                try
                {
                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleEffectiveDate = Parse.toDateTimeObject(row[FIELD_EFFECTIVE_DATE]);
                }
                catch (Exception)
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_EFFECTIVE_DATE + "=" + row[FIELD_EFFECTIVE_DATE].ToString(), EmpNo, rowCount.ToString() });
                }
                try
                {
                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleClaimPeriodFrom = Parse.toDateTimeObject(row[FIELD_CLAIM_PERIOD_FROM]);
                }
                catch (Exception)
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_CLAIM_PERIOD_FROM + "=" + row[FIELD_CLAIM_PERIOD_FROM].ToString(), EmpNo, rowCount.ToString() });
                }
                try
                {
                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleClaimPeriodTo = Parse.toDateTimeObject(row[FIELD_CLAIM_PERIOD_TO]);
                }
                catch (Exception)
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_CLAIM_PERIOD_TO + "=" + row[FIELD_CLAIM_PERIOD_TO].ToString(), EmpNo, rowCount.ToString() });
                }

                try
                {
                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleClaimHourFrom = Parse.toDateTimeObject(row[FIELD_CLAIM_TIME_FROM]);
                }
                catch (Exception)
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_CLAIM_TIME_FROM + "=" + row[FIELD_CLAIM_TIME_FROM].ToString(), EmpNo, rowCount.ToString() });
                }

                try
                {
                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleClaimHourTo = Parse.toDateTimeObject(row[FIELD_CLAIM_TIME_TO]);
                }
                catch (Exception)
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_CLAIM_TIME_TO + "=" + row[FIELD_CLAIM_TIME_TO].ToString(), EmpNo, rowCount.ToString() });
                }

                double adjustValue;
                if (double.TryParse(row[FIELD_HOUR_CLAIM].ToString(), out adjustValue))
                {
                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleHoursClaim = adjustValue;
                }
                else
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_HOUR_CLAIM + "=" + row[FIELD_HOUR_CLAIM].ToString(), EmpNo, rowCount.ToString() });
                }

                try
                {
                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleDateExpiry = Parse.toDateTimeObject(row[FIELD_EXPIRY_DATE]);
                }
                catch (Exception)
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_EXPIRY_DATE + "=" + row[FIELD_EXPIRY_DATE].ToString(), EmpNo, rowCount.ToString() });
                }

                uploadCompensationLeaveEntitle.CompensationLeaveEntitleApprovedBy = row[FIELD_APPROVED_BY].ToString();

                uploadCompensationLeaveEntitle.CompensationLeaveEntitleRemark = row[FIELD_REMARK].ToString();

                uploadCompensationLeaveEntitle.SessionID       = m_SessionID;
                uploadCompensationLeaveEntitle.TransactionDate = UploadDateTime;


                if (uploadCompensationLeaveEntitle.EmpID != 0 && errors.List.Count <= 0)
                {
                    if (rawDataTable.Columns.Contains(FIELD_SYNC_ID))
                    {
                        if (!row.IsNull(FIELD_SYNC_ID))
                        {
                            string strSynID = row[FIELD_SYNC_ID].ToString();
                            uploadCompensationLeaveEntitle.SynID = strSynID;
                            if (!string.IsNullOrEmpty(strSynID))
                            {
                                DBFilter synIDFilter = new DBFilter();
                                synIDFilter.add(new Match("SynID", strSynID));
                                ArrayList objSameSynIDList = ELeaveApplication.db.select(dbConn, synIDFilter);
                                if (objSameSynIDList.Count > 0)
                                {
                                    uploadCompensationLeaveEntitle.CompensationLeaveEntitleID = ((ECompensationLeaveEntitle)objSameSynIDList[0]).CompensationLeaveEntitleID;
                                }
                            }
                        }
                    }

                    if (uploadCompensationLeaveEntitle.CompensationLeaveEntitleID == 0)
                    {
                        AND andTerm = new AND();
                        andTerm.add(new Match("CompensationLeaveEntitleEffectiveDate", "=", uploadCompensationLeaveEntitle.CompensationLeaveEntitleEffectiveDate));
                        ECompensationLeaveEntitle lastObject = (ECompensationLeaveEntitle)AppUtils.GetLastObj(dbConn, uploadDB, "CompensationLeaveEntitleEffectiveDate", uploadCompensationLeaveEntitle.EmpID, andTerm);
                        if (lastObject != null)
                        {
                            uploadCompensationLeaveEntitle.CompensationLeaveEntitleID = lastObject.CompensationLeaveEntitleID;
                        }
                    }
                }

                if (uploadCompensationLeaveEntitle.CompensationLeaveEntitleID <= 0)
                {
                    uploadCompensationLeaveEntitle.ImportActionStatus = ImportDBObject.ImportActionEnum.INSERT;
                }
                else
                {
                    uploadCompensationLeaveEntitle.ImportActionStatus = ImportDBObject.ImportActionEnum.UPDATE;
                }

                uploadCompensationLeaveEntitle.UploadEmpID = ParseTemp.GetUploadEmpID(dbConn, EmpNo, m_SessionID);
                if (uploadCompensationLeaveEntitle.UploadEmpID == 0)
                {
                    if (uploadCompensationLeaveEntitle.EmpID == 0)
                    {
                        errors.addError(ImportErrorMessage.ERROR_INVALID_EMP_NO, new string[] { EmpNo, rowCount.ToString() });
                    }
                    else
                    {
                        uploadCompensationLeaveEntitle.UploadEmpID = ImportEmpPersonalInfoProcess.CreateDummyUploadEmployeeInfo(dbConn, uploadCompensationLeaveEntitle.EmpID, m_SessionID, UploadDateTime);
                    }
                }

                Hashtable values = new Hashtable();
                tempDB.populate(uploadCompensationLeaveEntitle, values);
                PageErrors pageErrors = new PageErrors(tempDB);
                tempDB.validate(pageErrors, values);
                if (pageErrors.errors.Count == 0)
                {
                    tempDB.insert(dbConn, uploadCompensationLeaveEntitle);
                }
                else
                {
                    pageErrors.addError(rawDataTable.TableName);
                    throw new HRImportException(pageErrors.getPrompt() + "(line " + rowCount.ToString() + ")");

                    //if (EmpID == 0)
                    //    errors.addError(ImportErrorMessage.ERROR_INVALID_EMP_NO, new string[] { EmpNo, rowCount.ToString() });
                    //else if (PayCodeID == 0)
                    //    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_PAYMENT_CODE + "=" + PaymentCode, EmpNo, rowCount.ToString() });
                    //else if (PayCodeID == 0)
                    //    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_PAYMENT_CODE + "=" + PaymentCode, EmpNo, rowCount.ToString() });
                    //else if (EffDate.Ticks == 0)
                    //    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_EFFECTIVE_DATE + "=" + EffDateString, EmpNo, rowCount.ToString() });
                    //else if (double.TryParse(amountString, out amount))
                    //    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_AMOUNT + "=" + amountString, EmpNo, rowCount.ToString() });
                }
            }
            if (errors.List.Count > 0)
            {
                ClearTempTable();
                throw (new HRImportException(rawDataTable.TableName + "\r\n" + errors.Message()));
            }
            return(GetImportDataFromTempDatabase(null));
        }
    protected void Save_Click(object sender, EventArgs e)
    {
        ECompensationLeaveEntitle c = new ECompensationLeaveEntitle();

        if (string.IsNullOrEmpty(CompensationLeaveEntitleClaimPeriodTo.Value))
        {
            CompensationLeaveEntitleClaimPeriodTo.Value = CompensationLeaveEntitleClaimPeriodFrom.Value;
        }

        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 (!errors.isEmpty())
        {
            return;
        }

        ELeaveType compensationLeaveType = ELeaveType.COMPENSATION_LEAVE_TYPE(dbConn);

        WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
        LeaveBalanceCalc leaaveBalCal = new LeaveBalanceCalc(dbConn, c.EmpID);

        if (CurID < 0)
        {
//            Utils.MarkCreate(Session, c);

            db.insert(dbConn, c);
            CurID = c.CompensationLeaveEntitleID;
            //if (compensationLeaveType != null)
            //    leaaveBalCal.RecalculateAfter(c.CompensationLeaveEntitleEffectiveDate, compensationLeaveType.LeaveTypeID);
            //else
            //    leaaveBalCal.RecalculateAfter(c.CompensationLeaveEntitleEffectiveDate);

//            url = Utils.BuildURL(-1, CurID);
        }
        else
        {
//            Utils.Mark(Session, c);
            //ECompensationLeaveEntitle leaveBalApp = new ECompensationLeaveEntitle();
            //leaveBalApp.CompensationLeaveEntitleID = CurID;
            //db.select(dbConn, leaveBalApp);
            db.update(dbConn, c);
            //if (compensationLeaveType != null)
            //    leaaveBalCal.RecalculateAfter(leaveBalApp.CompensationLeaveEntitleEffectiveDate < c.CompensationLeaveEntitleEffectiveDate ? leaveBalApp.CompensationLeaveEntitleEffectiveDate : c.CompensationLeaveEntitleEffectiveDate, compensationLeaveType.LeaveTypeID);
            //else
            //    leaaveBalCal.RecalculateAfter(leaveBalApp.CompensationLeaveEntitleEffectiveDate < c.CompensationLeaveEntitleEffectiveDate ? leaveBalApp.CompensationLeaveEntitleEffectiveDate : c.CompensationLeaveEntitleEffectiveDate);
        }
        WebUtils.EndFunction(dbConn);


        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "Emp_CompensationLeaveEntitle_View.aspx?EmpID=" + c.EmpID + "&CompensationLeaveEntitleID=" + CurID);
    }