Exemple #1
0
        public static TimeSpan TGLamViecToiHienTai(int LineId)
        {
            var      timeNow    = DateTime.Now.TimeOfDay;
            var      lineShifts = BLLShift.GetShiftsOfLine(LineId);
            TimeSpan timeWork   = TimeSpan.Parse("00:00:00");

            for (int j = 0; j < lineShifts.Count; j++)
            {
                if (timeNow > lineShifts[j].Start)
                {
                    if (timeNow < lineShifts[j].End)
                    {
                        timeWork += (timeNow - lineShifts[j].Start);
                    }
                    else
                    {
                        timeWork += (lineShifts[j].End - lineShifts[j].Start);
                    }
                }
            }
            return(timeWork);
        }
Exemple #2
0
 public static List <WorkingTimeModel> GetNSCForChart(int lineId, string date)
 {
     try
     {
         var db    = new PMSEntities();
         var times = BLLShift.GetWorkingTimeOfLine(lineId);
         var tdns  = db.TheoDoiNgays.Where(x => !x.Chuyen.IsDeleted && !x.Cum.IsDeleted && x.Date == date && x.MaChuyen == lineId).ToList();
         if (times != null && times.Count > 0)
         {
             foreach (var item in times)
             {
                 var tang = tdns.Where(x => x.Time >= item.TimeStart && x.Time <= item.TimeEnd && x.CommandTypeId == (int)eCommandRecive.ProductIncrease && x.ProductOutputTypeId == (int)eProductOutputType.KCS).Sum(x => x.ThanhPham);
                 var giam = tdns.Where(x => x.Time >= item.TimeStart && x.Time <= item.TimeEnd && x.CommandTypeId == (int)eCommandRecive.ProductReduce && x.ProductOutputTypeId == (int)eProductOutputType.KCS).Sum(x => x.ThanhPham);
                 tang     = tang - giam;
                 item.KCS = tang > 0 ? tang : 0;
             }
             return(times);
         }
     }
     catch (Exception)
     {
     }
     return(null);
 }
Exemple #3
0
 public static List <WorkingTimeModel> GetListWorkHoursOfLineByLineId(int lineId)
 {
     try
     {
         List <WorkingTimeModel> listWorkHours = null;
         var listShiftOfLine = BLLShift.GetShiftsOfLine(lineId);
         if (listShiftOfLine != null && listShiftOfLine.Count > 0)
         {
             listWorkHours = new List <WorkingTimeModel>();
             int      intHours         = 1;
             TimeSpan timeEnd          = new TimeSpan(0, 0, 0);
             TimeSpan timeStart        = new TimeSpan(0, 0, 0);
             bool     isWaitingTimeEnd = false;
             double   dHoursShiftOld   = 0;
             for (int i = 0; i < listShiftOfLine.Count; i++)
             {
                 var shift = listShiftOfLine[i];
                 while (true)
                 {
                     if (!isWaitingTimeEnd)
                     {
                         if (timeStart == new TimeSpan(0, 0, 0))
                         {
                             timeStart = shift.Start;
                         }
                         else
                         {
                             timeStart = timeEnd;
                         }
                     }
                     else
                     {
                         if (dHoursShiftOld == 0)
                         {
                             timeStart = shift.Start;
                         }
                     }
                     if (timeStart > shift.End)
                     {
                         break;
                     }
                     else
                     {
                         if (!isWaitingTimeEnd)
                         {
                             timeEnd = timeStart.Add(new TimeSpan(1, 0, 0));
                         }
                         else
                         {
                             if (dHoursShiftOld > 0)
                             {
                                 double hour    = 1 - dHoursShiftOld;
                                 int    minuter = (int)(hour * 60);
                                 timeEnd = shift.Start.Add(new TimeSpan(0, minuter, 0));
                             }
                             else
                             {
                                 timeEnd = timeStart.Add(new TimeSpan(1, 0, 0));
                             }
                             isWaitingTimeEnd = false;
                         }
                         if (timeEnd <= shift.End)
                         {
                             listWorkHours.Add(new WorkingTimeModel()
                             {
                                 IntHours  = intHours,
                                 TimeStart = timeStart,
                                 TimeEnd   = timeEnd,
                                 Name      = "Giờ " + intHours + " (" + timeStart.ToString(@"hh\:mm") + "-" + timeEnd.ToString(@"hh\:mm") + ")",
                                 IsShow    = (DateTime.Now.TimeOfDay > timeStart && DateTime.Now.TimeOfDay < timeEnd) ? true : false
                             });
                             intHours++;
                         }
                         else
                         {
                             isWaitingTimeEnd = true;
                             dHoursShiftOld   = shift.End.TotalHours - timeStart.TotalHours;
                             if (dHoursShiftOld != 0 && i == listShiftOfLine.Count - 1)
                             {
                                 listWorkHours.Add(new WorkingTimeModel()
                                 {
                                     IntHours  = intHours,
                                     TimeStart = timeStart,
                                     TimeEnd   = shift.End,
                                     Name      = "Giờ " + intHours + " (" + timeStart.ToString(@"hh\:mm") + "-" + shift.End.ToString(@"hh\:mm") + ")",
                                     IsShow    = (DateTime.Now.TimeOfDay > timeStart && DateTime.Now.TimeOfDay < timeEnd) ? true : false
                                 });
                                 intHours++;
                             }
                             break;
                         }
                     }
                     if (intHours > 30)
                     {
                         break;
                     }
                 }
             }
         }
         return(listWorkHours);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }