Beispiel #1
0
 private OperatorType InitOperatorType()
 {
     if (_OutApplicationItem.Status.Id == RequestStatus.ApprovePass.Id)
     {
         return(OperatorType.add);
     }
     if (OutApplicationUtility.IsItemFlowContainStatus(_OutApplicationItem, RequestStatus.ApprovePass))
     {
         if (_OutApplicationItem.Status.Id == RequestStatus.ApproveCancelPass.Id &&
             !OutApplicationUtility.IsItemFlowContainStatus(_OutApplicationItem, RequestStatus.ApproveCancelPass))
         {
             return(OperatorType.delete);
         }
     }
     else
     {
         if (_OutApplicationItem.Status.Id == RequestStatus.ApproveCancelFail.Id)
         {
             return(OperatorType.add);
         }
         if (_OutApplicationItem.Status.Id == RequestStatus.ApproveCancelPass.Id
             &&
             OutApplicationUtility.IsItemFlowContainStatus(_OutApplicationItem,
                                                           RequestStatus.ApproveCancelFail))
         {
             return(OperatorType.delete);
         }
     }
     return(OperatorType.empty);
 }
        /// <summary>
        ///
        /// </summary>
        public List <DayAttendance> GetCalendarByEmployee(int AccountID, DateTime fromDate, DateTime toDate)
        {
            List <DayAttendance>      dayAttendance             = new List <DayAttendance>();
            List <OutApplicationItem> outApplicationItemList    = new List <OutApplicationItem>();
            List <OutApplicationItem> outApplicationItemFromDal =
                _OutApplicationDal.GetOutApplicationForCalendar(AccountID, fromDate, toDate);

            foreach (OutApplicationItem item in outApplicationItemFromDal)
            {
                OutApplicationItem outApplicationItem =
                    _OutApplicationDal.GetOutApplicationItemByItemID(item.ItemID);
                item.OutApplicationID = outApplicationItem.OutApplicationID;
                if (item.Status == RequestStatus.Cancelled || item.Status == RequestStatus.CancelApproving)
                {
                    if (OutApplicationUtility.IsAgreed(outApplicationItem))
                    {
                        outApplicationItemList.Add(item);
                    }
                }
                else
                {
                    outApplicationItemList.Add(item);
                }
            }
            foreach (OutApplicationItem item in outApplicationItemList)
            {
                OutType outType = _OutApplicationDal.GetOutApplicationByOutApplicationID(item.OutApplicationID).OutType;
                if (outType.ID == OutType.InCity.ID || outType.ID == OutType.OutCity.ID)
                {
                    CalculateOutHour cal = new CalculateOutHour(item.FromDate, item.ToDate, AccountID);
                    cal.Excute();
                    dayAttendance.AddRange(cal.DayAttendanceList);
                }
                else if (outType.ID == OutType.OutCity.ID)
                {
                    CalculateOutCityHour cal = new CalculateOutCityHour(item.FromDate, item.ToDate, AccountID);
                    cal.Excute();
                    dayAttendance.AddRange(cal.DayAttendanceList);
                }
            }
            return(dayAttendance);
        }
Beispiel #3
0
 protected override void ExcuteSelf()
 {
     if (_OutApplicationItem.Status == RequestStatus.ApprovePass)
     {
         AddAdjustRestRemainedHours();
     }
     if (OutApplicationUtility.IsAgreed(_OutApplicationItem))
     {
         if (_OutApplicationItem.Status == RequestStatus.ApproveCancelPass)
         {
             DeleteAdjustRestRemainedHours();
         }
     }
     else
     {
         if (_OutApplicationItem.Status == RequestStatus.ApproveCancelFail)
         {
             AddAdjustRestRemainedHours();
         }
     }
 }