public Result Add(HolidaysAttendanceDetailsBLL HolidayAttendanceDetailBLL)
        {
            Result result = new Result();

            HolidaysAttendanceDetails HolidayAttendanceDetail = new HolidaysAttendanceDetails()
            {
                HolidayAttendanceID     = HolidayAttendanceDetailBLL.HolidaysAttendance.HolidayAttendanceID,
                EmployeeCareerHistoryID = HolidayAttendanceDetailBLL.EmployeeCareerHistory.EmployeeCareerHistoryID,
                CreateDate = DateTime.Now,
                CreatedBy  = HolidayAttendanceDetailBLL.LoginIdentity.EmployeeCodeID
            };

            HolidaysAttendanceBLL               HolidaysAttendanceBLL           = new HolidaysAttendanceBLL().GetByHolidayAttendanceID(HolidayAttendanceDetailBLL.HolidaysAttendance.HolidayAttendanceID);
            List <HolidaysAttendanceBLL>        HolidaysAttendanceBLLList       = new HolidaysAttendanceBLL().GetByHolidaySettingID(HolidaysAttendanceBLL.HolidaySetting.HolidaySettingID);
            List <HolidaysAttendanceDetailsBLL> HolidaysAttendanceDetailsExists = new List <HolidaysAttendanceDetailsBLL>();

            HolidaysAttendanceBLLList.ForEach(c => HolidaysAttendanceDetailsExists.AddRange(c.HolidaysAttendanceDetails.Where(x => x.EmployeeCareerHistory.EmployeeCareerHistoryID == HolidayAttendanceDetailBLL.EmployeeCareerHistory.EmployeeCareerHistoryID).ToList()));
            if (HolidaysAttendanceDetailsExists.Count > 0)
            {
                result.EnumType   = typeof(HolidayAttendanceValidationEnum);
                result.EnumMember = HolidayAttendanceValidationEnum.RejectedBecauseEmployeeAlreadyExistOnAnotherRecord.ToString();
                return(result);
            }


            this.HolidayAttendanceDetailID = new HolidaysAttendanceDetailsDAL().Insert(HolidayAttendanceDetail);
            if (this.HolidayAttendanceDetailID != 0)
            {
                result.Entity     = null;
                result.EnumType   = typeof(HolidayAttendanceValidationEnum);
                result.EnumMember = HolidayAttendanceValidationEnum.Done.ToString();
            }
            return(result);
        }
Beispiel #2
0
        private float GetVacationBalanceByEmployeeCodeID(int EmployeeCodeID)
        {
            //return this.GetByEmployeeCodeVacationTypeNotCanceled(EmployeeCodeID)
            //   .ToList().Sum(d => d.VacationPeriod);
            if (this.HolidayAttendanceDetail.HolidaysAttendance != null)
            {
                HolidaysSettingsBLL HolidaySetting;
                if (this.HolidayAttendanceDetail.HolidaysAttendance.HolidaySetting == null)
                {
                    HolidaysAttendanceBLL HolidayAttendance = new HolidaysAttendanceBLL().GetByHolidayAttendanceID(this.HolidayAttendanceDetail.HolidaysAttendance.HolidayAttendanceID);
                    HolidaySetting = HolidayAttendance.HolidaySetting;//new HolidaysSettingsBLL().GetByHolidaySettingID(HolidayAttendance.HolidaySetting.HolidaySettingID);
                    this.HolidayAttendanceDetail.HolidaysAttendance.HolidaySetting = HolidaySetting;
                }

                //HolidaysSettingsBLL HolidaySetting = new HolidaysSettingsBLL().GetByMaturityYearIDAndHolidayTypeID(this.MaturityYear.MaturityYearID, this.HolidayType.HolidayTypeID);
                HolidaySetting = new HolidaysSettingsBLL().GetByMaturityYearIDAndHolidayTypeID(this.HolidayAttendanceDetail.HolidaysAttendance.HolidaySetting.MaturityYear.MaturityYearID, this.HolidayAttendanceDetail.HolidaysAttendance.HolidaySetting.HolidayType.HolidayTypeID);

                if (HolidaySetting != null)
                {
                    List <HolidaysAttendanceBLL> HolidayAttendanceList = new HolidaysAttendanceBLL().GetByHolidaySettingID(HolidaySetting.HolidaySettingID);
                    if (HolidayAttendanceList != null)
                    {
                        List <HolidaysAttendanceDetailsBLL> HolidaysAttendanceDetailsList = new List <HolidaysAttendanceDetailsBLL>();
                        HolidayAttendanceList.ForEach(c => HolidaysAttendanceDetailsList.AddRange(c.HolidaysAttendanceDetails.ToList()));
                        //this.EmployeeCareerHistory = new EmployeesCareersHistoryBLL().GetHiringRecordByEmployeeCodeID(EmployeeCodeID); //{ EmployeeCode = new EmployeesCodesBLL() { EmployeeCodeID = EmployeeCodeID }
                        this.EmployeeCareerHistory = new EmployeesCodesBLL().GetCareerHistoryByEmployeeCodeID(EmployeeCodeID).FirstOrDefault(c => c.IsActive == true); //{ EmployeeCode = new EmployeesCodesBLL() { EmployeeCodeID = EmployeeCodeID }
                        if (HolidaysAttendanceDetailsList.Any(x => x.EmployeeCareerHistory.EmployeeCode.EmployeeCodeID == EmployeeCodeID))
                        {
                            return(HolidaySetting != null?HolidaySetting.HolidaySettingEndDate.Subtract(HolidaySetting.HolidaySettingStartDate).Days + 1 : 0);
                        }
                    }
                }
            }
            return(0);
        }
Beispiel #3
0
        public virtual Result Update()
        {
            Result result = new Result();

            #region Validate both start and end date in the same year
            if (Globals.Calendar.GetUmAlQuraYear(this.HolidaySettingStartDate) != Globals.Calendar.GetUmAlQuraYear(this.HolidaySettingEndDate))
            {
                result            = new Result();
                result.EnumType   = typeof(HolidaySettingValidationEnum);
                result.EnumMember = HolidaySettingValidationEnum.RejectedBecauseOfHolidaysDurationShouldBeInTheSameHijriYear.ToString();
                return(result);
            }
            #endregion

            #region Validate if there is any employee assign for this holiday's setting
            List <HolidaysAttendanceBLL>        HolidaysAttendanceList        = new HolidaysAttendanceBLL().GetByHolidaySettingID(this.HolidaySettingID);
            List <HolidaysAttendanceDetailsBLL> HolidaysAttendanceDetailsList = new List <HolidaysAttendanceDetailsBLL>();
            HolidaysAttendanceList.ForEach(c => HolidaysAttendanceDetailsList.AddRange(c.HolidaysAttendanceDetails));

            if (HolidaysAttendanceDetailsList.Count > 0)
            {
                result            = new Result();
                result.EnumType   = typeof(HolidaySettingValidationEnum);
                result.EnumMember = HolidaySettingValidationEnum.RejectedBecauseOfEmployeeAssignToThisHolidaySetting.ToString();
                return(result);
            }
            #endregion

            result = IsNoConflictWithOtherHolidaySettings(this.HolidaySettingStartDate, this.HolidaySettingEndDate);
            if (result != null)
            {
                return(result);
            }
            result = new Result();
            HolidaysSettings HolidaySetting = new HolidaysSettings();
            HolidaySetting.HolidaySettingID        = this.HolidaySettingID;
            HolidaySetting.HolidayTypeID           = this.HolidayType.HolidayTypeID;
            HolidaySetting.MaturityYearID          = this.MaturityYear.MaturityYearID;
            HolidaySetting.HolidaySettingStartDate = this.HolidaySettingStartDate;
            HolidaySetting.HolidaySettingEndDate   = this.HolidaySettingEndDate;
            HolidaySetting.LastUpdatedDate         = DateTime.Now;
            HolidaySetting.LastUpdatedBy           = this.LoginIdentity.EmployeeCodeID;
            this.HolidaySettingID = new HolidaysSettingsDAL().Update(HolidaySetting);
            if (this.HolidaySettingID != 0)
            {
                result.Entity     = this;
                result.EnumType   = typeof(LookupsValidationEnum);
                result.EnumMember = LookupsValidationEnum.Done.ToString();
            }
            return(result);
        }
Beispiel #4
0
        public Result Add()
        {
            Result result;

            // validate employees PassengerOrder limit
            if (this.HolidaysAttendanceDetails == null || this.HolidaysAttendanceDetails.Count <= 0)
            {
                result            = new Result();
                result.Entity     = null;
                result.EnumType   = typeof(HolidayAttendanceValidationEnum);
                result.EnumMember = HolidayAttendanceValidationEnum.RejectedBecauseEmployeeRequired.ToString();

                return(result);
            }

            HolidaysAttendance HolidayAttendance = new HolidaysAttendance();

            HolidayAttendance.OrganizationID   = this.Organization.OrganizationID;
            HolidayAttendance.HolidaySettingID = this.HolidaySetting.HolidaySettingID;
            HolidayAttendance.CreatedDate      = DateTime.Now;
            HolidayAttendance.CreatedBy        = this.LoginIdentity.EmployeeCodeID;
            this.HolidaysAttendanceDetails.ForEach(c => HolidayAttendance.HolidaysAttendanceDetails.Add(new HolidaysAttendanceDetails()
            {
                CreatedBy  = this.LoginIdentity.EmployeeCodeID,
                CreateDate = DateTime.Now,
                EmployeeCareerHistoryID = c.EmployeeCareerHistory.EmployeeCareerHistoryID
            }));

            #region Check if any employee in holidayAttendanceDetails repeated in the same holidaySetting
            List <HolidaysAttendanceBLL>        HolidaysAttendanceList        = new HolidaysAttendanceBLL().GetByHolidaySettingID(this.HolidaySetting.HolidaySettingID);
            List <HolidaysAttendanceDetailsBLL> HolidaysAttendanceDetailsList = new List <HolidaysAttendanceDetailsBLL>();
            HolidaysAttendanceList.ForEach(x => x.HolidaysAttendanceDetails.ForEach(c => HolidaysAttendanceDetailsList.AddRange(this.HolidaysAttendanceDetails.Where(s => s.EmployeeCareerHistory.EmployeeCareerHistoryID == c.EmployeeCareerHistory.EmployeeCareerHistoryID).ToList())));
            if (HolidaysAttendanceDetailsList.Count > 0)
            {
                result            = new Result();
                result.Entity     = new EmployeesCareersHistoryBLL().GetActiveByEmployeeCareerHistoryID(HolidaysAttendanceDetailsList.FirstOrDefault().EmployeeCareerHistory.EmployeeCareerHistoryID);
                result.EnumMember = HolidayAttendanceValidationEnum.RejectedBecauseEmployeeAlreadyExistOnAnotherRecord.ToString();
                result.EnumType   = typeof(HolidayAttendanceValidationEnum);
                return(result);
            }

            #endregion

            this.HolidayAttendanceID = new HolidaysAttendanceDAL().Insert(HolidayAttendance);
            result = new Result();
            // result.Entity = this;
            result.EnumMember = HolidayAttendanceValidationEnum.Done.ToString();
            result.EnumType   = typeof(HolidayAttendanceValidationEnum);
            return(result);
        }
Beispiel #5
0
        public HolidaysAttendanceDetailsBLL GetHolidayAttendanceDetailByEmployeeCodeIDAndHolidayTypeIDAndHolidaySettingID(int EmployeeCodeID, int MaturityYearID, int HolidayTypeID)
        {
            HolidaysSettingsBLL HolidaySetting = new HolidaysSettingsBLL().GetByMaturityYearIDAndHolidayTypeID(MaturityYearID, HolidayTypeID);

            if (HolidaySetting != null)
            {
                List <HolidaysAttendanceBLL> HolidayAttendanceList = new HolidaysAttendanceBLL().GetByHolidaySettingID(HolidaySetting.HolidaySettingID);
                //if
                List <HolidaysAttendanceDetailsBLL> HolidaysAttendanceDetailsList = new List <HolidaysAttendanceDetailsBLL>();
                HolidayAttendanceList.ForEach(c => HolidaysAttendanceDetailsList.AddRange(c.HolidaysAttendanceDetails.ToList()));
                //EmployeesCareersHistoryBLL EmployeeCareerHistory = new EmployeesCareersHistoryBLL().GetHiringRecordByEmployeeCodeID(EmployeeCodeID); //{ EmployeeCode = new EmployeesCodesBLL() { EmployeeCodeID = EmployeeCodeID }

                EmployeesCareersHistoryBLL EmployeeCareerHistory = new EmployeesCodesBLL().GetCareerHistoryByEmployeeCodeID(EmployeeCodeID).FirstOrDefault(c => c.IsActive == true); //{ EmployeeCode = new EmployeesCodesBLL() { EmployeeCodeID = EmployeeCodeID }
                var result = HolidaysAttendanceDetailsList.FirstOrDefault(x => x.EmployeeCareerHistory.EmployeeCode.EmployeeCodeID == EmployeeCodeID);
                return(result);
            }
            else
            {
                return(null);
            }
        }