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

        foreach (RepeaterItem i in Repeater.Items)
        {
            CheckBox cb = (CheckBox)i.FindControl("ItemSelect");
            if (cb.Checked)
            {
                EEmpRosterTableGroup o = new EEmpRosterTableGroup();
                WebFormUtils.GetKeys(sdb, o, cb);
                list.Add(o);
            }
        }
        if (list.Count > 0)
        {
            WebUtils.StartFunction(Session, FUNCTION_CODE, CurID);
            foreach (BaseObject o in list)
            {
                if (sdb.select(dbConn, o))
                {
                    sdb.delete(dbConn, o);
                }
            }
            WebUtils.EndFunction(dbConn);
        }
        loadData(info, sdb, Repeater);
    }
    protected void Delete_Click(object sender, EventArgs e)
    {
        EEmpRosterTableGroup c = new EEmpRosterTableGroup();

        c.EmpRosterTableGroupID = CurID;
        EEmpRosterTableGroup.db.select(dbConn, c);
        WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
        db.delete(dbConn, c);
        WebUtils.EndFunction(dbConn);
        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "EmpTab_RosterTableGroup_View.aspx?EmpID=" + EmpID.Value);
    }
    protected bool loadObject()
    {
        obj = new EEmpRosterTableGroup();
        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);



        return(true);
    }
Beispiel #4
0
    private Dictionary <int, List <DateTime> > LoadEmployeeList(DateTime periodFromDate, DateTime periodToDate)
    {
        Dictionary <int, List <DateTime> > staffRosterDateList = new Dictionary <int, List <DateTime> >();

        if (selectedRosterTableGroupID > 0)
        {
            EEmpRosterTableGroup empRosterInfo = GetSingleEmployeeRosterInfo(dbConn, AppUtils.ServerDateTime().Date, CurID, selectedRosterTableGroupID);

            if (empRosterInfo.EmpRosterTableGroupIsSupervisor)
            {
                ArrayList staffEmpRosterInfoList = GetStaffEmpRosterInfoList(dbConn, periodFromDate, periodToDate, empRosterInfo.RosterTableGroupID);

                foreach (EEmpRosterTableGroup staffEmpRosterInfo in staffEmpRosterInfoList)
                {
                    DateTime staffRangeFr = periodFromDate;
                    DateTime staffRangeTo = periodToDate;

                    if (!staffEmpRosterInfo.EmpRosterTableGroupEffFr.Ticks.Equals(0) && staffEmpRosterInfo.EmpRosterTableGroupEffFr > staffRangeFr)
                    {
                        staffRangeFr = staffEmpRosterInfo.EmpRosterTableGroupEffFr;
                    }

                    if (!staffEmpRosterInfo.EmpRosterTableGroupEffTo.Ticks.Equals(0) && staffEmpRosterInfo.EmpRosterTableGroupEffTo < staffRangeTo)
                    {
                        staffRangeTo = staffEmpRosterInfo.EmpRosterTableGroupEffTo;
                    }

                    List <DateTime> availableDateList;

                    if (staffRosterDateList.ContainsKey(staffEmpRosterInfo.EmpID))
                    {
                        availableDateList = staffRosterDateList[staffEmpRosterInfo.EmpID];
                    }
                    else
                    {
                        availableDateList = new List <DateTime>();
                        staffRosterDateList.Add(staffEmpRosterInfo.EmpID, availableDateList);
                    }

                    for (DateTime staffAvailableDate = staffRangeFr; staffAvailableDate <= staffRangeTo; staffAvailableDate = staffAvailableDate.AddDays(1))
                    {
                        if (!availableDateList.Contains(staffAvailableDate))
                        {
                            availableDateList.Add(staffAvailableDate);
                        }
                    }
                }
            }
        }

        return(staffRosterDateList);
    }
        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 uploadEmpRosterTableGroupList = tempDB.select(dbConn, sessionFilter);

            foreach (EUploadEmpRosterTableGroup obj in uploadEmpRosterTableGroupList)
            {
                EEmpRosterTableGroup EmpRosterTableGroup = new EEmpRosterTableGroup();

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

                obj.ExportToObject(EmpRosterTableGroup);

                if (obj.ImportActionStatus == ImportDBObject.ImportActionEnum.INSERT)
                {
                    EmpRosterTableGroup.EmpID = ParseTemp.GetEmpIDFromUploadEmpID(dbConn, obj.UploadEmpID);
                    //DBFilter emplastPosFilter = new DBFilter();
                    //EEmpRosterTableGroup lastObj = (EEmpRosterTableGroup)AppUtils.GetLastObj(dbConn, uploadDB, "EmpRosterTableGroupEffFr", EmpRosterTableGroup.EmpID, new Match("EmpRosterTableGroupEffFr", "<", EmpRosterTableGroup.EmpRosterTableGroupEffFr));
                    //if (lastObj != null)
                    //    if (lastObj.EmpRosterTableGroupEffTo.Ticks == 0)
                    //    {
                    //        lastObj.EmpRosterTableGroupEffTo = EmpRosterTableGroup.EmpRosterTableGroupEffFr.AddDays(-1);
                    //        uploadDB.update(dbConn, lastObj);
                    //    }
                    uploadDB.insert(dbConn, EmpRosterTableGroup);
                }
                else if (obj.ImportActionStatus == ImportDBObject.ImportActionEnum.UPDATE)
                {
                    uploadDB.update(dbConn, EmpRosterTableGroup);
                }
                tempDB.delete(dbConn, obj);
            }
        }
Beispiel #6
0
    private bool isSupervisor(int EmpID)
    {
        DBFilter dbFilter = new DBFilter();

        dbFilter.add(new Match("EmpID", EmpID));
        dbFilter.add(new Match("NOT empRosterTableGroupIsSupervisor", 0));

        ArrayList empRosterTableGroupList = EEmpRosterTableGroup.db.select(dbConn, dbFilter);

        if (empRosterTableGroupList.Count > 0)
        {
            EEmpRosterTableGroup empRosterTableGroup = (EEmpRosterTableGroup)empRosterTableGroupList[0];
            if (empRosterTableGroup.EmpRosterTableGroupIsSupervisor)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        return(false);
    }
        public DataTable UploadToTempDatabase(DataTable rawDataTable, int UserID)
        {
            if (rawDataTable == null)
            {
                return(GetImportDataFromTempDatabase(null));
            }

            int rowCount = 1;

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

                EUploadEmpRosterTableGroup uploadEmpRosterTableGroup = new EUploadEmpRosterTableGroup();
                EEmpRosterTableGroup       lastEmpRosterTableGroup   = null;
                ArrayList uploadHierarchyList = new ArrayList();

                string EmpNo = row[FIELD_EMP_NO].ToString().Trim();
                uploadEmpRosterTableGroup.EmpID = Parse.GetEmpID(dbConn, EmpNo, UserID);
                if (uploadEmpRosterTableGroup.EmpID < 0)
                {
                    errors.addError(ImportErrorMessage.ERROR_ACCESS_DENIED_EMP_NO, new string[] { EmpNo, rowCount.ToString() });
                }
                try
                {
                    uploadEmpRosterTableGroup.EmpRosterTableGroupEffFr = Parse.toDateTimeObject(row[FIELD_FROM]);
                }
                catch
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_FROM + "=" + row[FIELD_FROM].ToString(), EmpNo, rowCount.ToString() });
                }
                try
                {
                    uploadEmpRosterTableGroup.EmpRosterTableGroupEffTo = Parse.toDateTimeObject(row[FIELD_TO]);
                }
                catch
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_TO + "=" + row[FIELD_TO].ToString(), EmpNo, rowCount.ToString() });
                }
                uploadEmpRosterTableGroup.RosterTableGroupID = Parse.GetRosterTableGroupID(dbConn, row[FIELD_ROSTERTABLEGROUP].ToString());
                uploadEmpRosterTableGroup.EmpRosterTableGroupIsSupervisor = row[FIELD_ROSTERTABLEGROUP_IS_SUPERVISOR].ToString().Equals("Yes", StringComparison.CurrentCultureIgnoreCase) || row[FIELD_ROSTERTABLEGROUP_IS_SUPERVISOR].ToString().Equals("Y", StringComparison.CurrentCultureIgnoreCase);

                if (uploadEmpRosterTableGroup.RosterTableGroupID == 0)
                {
                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_ROSTERTABLEGROUP + "=" + row[FIELD_ROSTERTABLEGROUP].ToString(), EmpNo, rowCount.ToString() });
                }


                uploadEmpRosterTableGroup.SessionID       = m_SessionID;
                uploadEmpRosterTableGroup.TransactionDate = UploadDateTime;


                if (uploadEmpRosterTableGroup.EmpID != 0 && errors.List.Count <= 0)
                {
                    //if (rawDataTable.Columns.Contains(FIELD_INTERNAL_ID))
                    //{
                    //    try
                    //    {
                    //        if (!row.IsNull(FIELD_INTERNAL_ID))
                    //        {
                    //            int tmpID = FromHexDecWithCheckDigit((string)row[FIELD_INTERNAL_ID]);
                    //            EEmpRosterTableGroup tmpObj = new EEmpRosterTableGroup();
                    //            tmpObj.EmpRosterTableGroupID = tmpID;
                    //            if (EEmpRosterTableGroup.db.select(dbConn, tmpObj))
                    //                uploadEmpRosterTableGroup.EmpRosterTableGroupID = tmpID;
                    //            else
                    //            {
                    //                errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_INTERNAL_ID + "=" + row[FIELD_INTERNAL_ID].ToString(), EmpNo, rowCount.ToString() });
                    //                continue;
                    //            }
                    //        }
                    //    }
                    //    catch (Exception ex)
                    //    {
                    //        errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { FIELD_INTERNAL_ID + "=" + row[FIELD_INTERNAL_ID].ToString(), EmpNo, rowCount.ToString() });
                    //        continue;
                    //    }
                    //}
                    if (rawDataTable.Columns.Contains(FIELD_SYNC_ID))
                    {
                        if (!row.IsNull(FIELD_SYNC_ID))
                        {
                            string strSynID = row[FIELD_SYNC_ID].ToString();
                            uploadEmpRosterTableGroup.SynID = strSynID;
                            if (!string.IsNullOrEmpty(strSynID))
                            {
                                DBFilter synIDFilter = new DBFilter();
                                synIDFilter.add(new Match("SynID", strSynID));
                                ArrayList objSameSynIDList = EEmpRosterTableGroup.db.select(dbConn, synIDFilter);
                                if (objSameSynIDList.Count > 0)
                                {
                                    uploadEmpRosterTableGroup.EmpRosterTableGroupID = ((EEmpRosterTableGroup)objSameSynIDList[0]).EmpRosterTableGroupID;
                                }
                            }
                        }
                    }

                    if (uploadEmpRosterTableGroup.EmpRosterTableGroupID == 0)
                    {
                        // allow multiple group on same date
                        // do NOT allow same group id appear on same date

                        AND lastEmpRosterTableGroupAndTerms = new AND();
                        lastEmpRosterTableGroupAndTerms.add(new Match("EmpRosterTableGroupEffFr", "<=", uploadEmpRosterTableGroup.EmpRosterTableGroupEffFr));
                        lastEmpRosterTableGroupAndTerms.add(new Match("RosterTableGroupID", uploadEmpRosterTableGroup.RosterTableGroupID));

                        lastEmpRosterTableGroup = (EEmpRosterTableGroup)AppUtils.GetLastObj(dbConn, uploadDB, "EmpRosterTableGroupEffFr", uploadEmpRosterTableGroup.EmpID, lastEmpRosterTableGroupAndTerms);
                        if (lastEmpRosterTableGroup != null)
                        {
                            if (uploadEmpRosterTableGroup.RosterTableGroupID == lastEmpRosterTableGroup.RosterTableGroupID &&
                                uploadEmpRosterTableGroup.EmpRosterTableGroupIsSupervisor == lastEmpRosterTableGroup.EmpRosterTableGroupIsSupervisor &&
                                uploadEmpRosterTableGroup.EmpRosterTableGroupEffTo == lastEmpRosterTableGroup.EmpRosterTableGroupEffTo)
                            {
                                continue;
                            }
                            else
                            {
                                // add postion terms with new ID
                                if (lastEmpRosterTableGroup.EmpRosterTableGroupEffFr.Equals(uploadEmpRosterTableGroup.EmpRosterTableGroupEffFr) &&
                                    uploadEmpRosterTableGroup.RosterTableGroupID == lastEmpRosterTableGroup.RosterTableGroupID &&
                                    uploadEmpRosterTableGroup.EmpRosterTableGroupIsSupervisor == lastEmpRosterTableGroup.EmpRosterTableGroupIsSupervisor)
                                {
                                    uploadEmpRosterTableGroup.EmpRosterTableGroupID = lastEmpRosterTableGroup.EmpRosterTableGroupID;
                                    //if (uploadEmpRosterTableGroup.EmpRosterTableGroupEffTo.Ticks == 0 && lastEmpRosterTableGroup.EmpRosterTableGroupEffTo.Ticks != 0)
                                    //{
                                    //    EEmpRosterTableGroup afterEmpRosterTableGroup = (EEmpRosterTableGroup)AppUtils.GetLastObj(dbConn, uploadDB, "EmpRosterTableGroupEffFr", uploadEmpRosterTableGroup.EmpID, new Match("EmpRosterTableGroupEffFr", ">", lastEmpRosterTableGroup.EmpRosterTableGroupEffTo));
                                    //    if (afterEmpRosterTableGroup != null)
                                    //        uploadEmpRosterTableGroup.EmpRosterTableGroupEffTo = afterEmpRosterTableGroup.EmpRosterTableGroupEffFr.AddDays(-1);
                                    //}
                                }
                                //else
                                //{
                                //    AND lastObjAndTerms = new AND();
                                //    lastObjAndTerms.add(new Match("EmpRosterTableGroupEffFr", ">", uploadEmpRosterTableGroup.EmpRosterTableGroupEffFr));
                                //    if (!uploadEmpRosterTableGroup.EmpRosterTableGroupEffTo.Ticks.Equals(0))
                                //        lastObjAndTerms.add(new Match("EmpRosterTableGroupEffFr", "<=", uploadEmpRosterTableGroup.EmpRosterTableGroupEffTo));
                                //    lastObjAndTerms.add(new Match("RosterTableGroupID", uploadEmpRosterTableGroup.RosterTableGroupID));
                                //    EEmpRosterTableGroup lastObj = (EEmpRosterTableGroup)AppUtils.GetLastObj(dbConn, uploadDB, "EmpRosterTableGroupEffFr", uploadEmpRosterTableGroup.EmpID, lastObjAndTerms);
                                //    if (lastObj != null)
                                //        if (!lastObj.EmpRosterTableGroupEffTo.Ticks.Equals(0))
                                //        {
                                //            errors.addError(ImportErrorMessage.ERROR_DATE_FROM_OVERLAP, new string[] { uploadEmpRosterTableGroup.EmpRosterTableGroupEffFr.ToString("yyyy-MM-dd"), rowCount.ToString() });
                                //            continue;
                                //        }

                                //}
                            }
                        }
                    }
                }

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

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

                Hashtable values = new Hashtable();
                tempDB.populate(uploadEmpRosterTableGroup, values);
                PageErrors pageErrors = new PageErrors(EUploadEmpPersonalInfo.db);
                tempDB.validate(pageErrors, values);
                if (pageErrors.errors.Count == 0)
                {
                    tempDB.insert(dbConn, uploadEmpRosterTableGroup);
                }
                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)
    {
        EEmpRosterTableGroup c = new EEmpRosterTableGroup();

        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 (c.EmpRosterTableGroupEffTo.Ticks > 0 && c.EmpRosterTableGroupEffTo < c.EmpRosterTableGroupEffFr)
        {
            errors.addError("EmpRosterTableGroupEffTo", HROne.Translation.PageErrorMessage.ERROR_DATE_TO_TOO_EARLY);
            return;
        }

        //AND andTerms = new AND();
        //andTerms.add(new Match("EmpRosterTableGroupID", "<>", c.EmpRosterTableGroupID));
        //andTerms.add(new Match("EmpRosterTableGroupEffFr", "<=", c.EmpRosterTableGroupEffFr));
        //EEmpRosterTableGroup lastObj = (EEmpRosterTableGroup)AppUtils.GetLastObj(dbConn, db, "EmpRosterTableGroupEffFr", c.EmpID, andTerms);
        //if (lastObj != null && (c.EmpRosterTableGroupEffFr <= lastObj.EmpRosterTableGroupEffTo || c.EmpRosterTableGroupEffFr == lastObj.EmpRosterTableGroupEffFr))
        //{
        //    errors.addError("EmpRosterTableGroupEffFr", HROne.Translation.PageErrorMessage.ERROR_DATE_FROM_OVERLAP);
        //    return;
        //}

        WebUtils.StartFunction(Session, FUNCTION_CODE, c.EmpID);
        if (CurID < 0)
        {
//            Utils.MarkCreate(Session, c);

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

        //if (lastObj != null)
        //{
        //    if (lastObj.EmpRosterTableGroupEffTo < lastObj.EmpRosterTableGroupEffFr)
        //    {
        //        lastObj.EmpRosterTableGroupEffTo = c.EmpRosterTableGroupEffFr.AddDays(-1);
        //        db.update(dbConn, lastObj);
        //    }
        //}
        WebUtils.EndFunction(dbConn);

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