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); }
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); }
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; } }