public OverTimePersonDetailViewModel GetItem(decimal id)
        {
            try
            {
                OverTimePersonDetail          overTimePersonDetail = OverTimePersonDetailBusiness.GetByID(id);
                OverTimePersonDetailViewModel obj = new OverTimePersonDetailViewModel();

                obj.Id             = overTimePersonDetail.ID;
                obj.Date           = overTimePersonDetail.OverTime.Date;
                obj.PersonFullName = overTimePersonDetail.Person.FirstName + " " + overTimePersonDetail.Person.LastName;

                obj.HasOverTime    = overTimePersonDetail.Person.PersonTASpec.HasPeyment;
                obj.HasHolidayWork = overTimePersonDetail.Person.PersonTASpec.HolidayWork;
                obj.HasNightWork   = overTimePersonDetail.Person.PersonTASpec.NightWork;

                if (obj.HasOverTime)
                {
                    obj.MaxOverTime = overTimePersonDetail.MaxOverTime;
                }
                if (obj.HasNightWork)
                {
                    obj.MaxNightWork = overTimePersonDetail.MaxNightly;
                }
                if (obj.HasHolidayWork)
                {
                    obj.MaxHolidayWork = overTimePersonDetail.MaxHoliday;
                }

                return(obj);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public OverTimePersonDetailViewModel GetItem(decimal id)
        {
            try
            {
                OverTimePersonDetail          overTimePersonDetail = OverTimePersonDetailBusiness.GetByID(id);
                OverTimePersonDetailViewModel obj = new OverTimePersonDetailViewModel();

                obj.Id             = overTimePersonDetail.ID;
                obj.Date           = overTimePersonDetail.OverTime.Date;
                obj.PersonFullName = overTimePersonDetail.Person.FirstName + " " + overTimePersonDetail.Person.LastName;

                //----------------------------------------------------------------------------------
                var  IsEditableOverTimeObj = overTimePersonDetail.Person.PersonTASpec.GetParamValue(overTimePersonDetail.Person.ID, "IsEditableOverTime", DateTime.Now);
                bool IsEditableOverTime    = IsEditableOverTimeObj != null?Utility.ToInteger(IsEditableOverTimeObj.Value) > 0 : true;

                var  IsEditableHolidayObj = overTimePersonDetail.Person.PersonTASpec.GetParamValue(overTimePersonDetail.Person.ID, "IsEditableHolidayWork", DateTime.Now);
                bool IsEditableHoliday    = IsEditableHolidayObj != null?Utility.ToInteger(IsEditableHolidayObj.Value) > 0 : true;

                var  IsEditableNightObj = overTimePersonDetail.Person.PersonTASpec.GetParamValue(overTimePersonDetail.Person.ID, "IsEditableNightWork", DateTime.Now);
                bool IsEditableNight    = IsEditableNightObj != null?Utility.ToInteger(IsEditableNightObj.Value) > 0 : true;

                //----------------------------------------------------------------------------------
                obj.HasOverTime    = overTimePersonDetail.Person.PersonTASpec.OverTimeWork && IsEditableOverTime;
                obj.HasHolidayWork = overTimePersonDetail.Person.PersonTASpec.HolidayWork && IsEditableHoliday;
                obj.HasNightWork   = overTimePersonDetail.Person.PersonTASpec.NightWork && IsEditableNight;

                var isApprove = personApprovalAttendanceBusiness.CheckIsDuplicate(overTimePersonDetail.OverTime.Date, overTimePersonDetail.Person.ID);
                if (!isApprove)
                {
                    obj.HasOverTime    = false;
                    obj.HasHolidayWork = false;
                    obj.HasNightWork   = false;
                }

                obj.IsApprove = isApprove;
                //----------------------------------------------------------------------------------
                //if (obj.HasOverTime)
                obj.MaxOverTime = overTimePersonDetail.MaxOverTime;
                //if (obj.HasNightWork)
                obj.MaxNightWork = overTimePersonDetail.MaxNightly;
                //if (obj.HasHolidayWork)
                obj.MaxHolidayWork = overTimePersonDetail.MaxHoliday;

                return(obj);
            }
            catch (Exception ex)
            {
                this.exceptionHandler.ApiHandleException("OverTimePersonController", ex);
                throw ex;
            }
        }