protected void Page_Load(object sender, EventArgs e) { var id = Request["ID"]; Item = string.IsNullOrEmpty(id) ? new LoaiBieuDo() : LoaiBieuDoDal.SelectById(Convert.ToInt32(id)); Add.Item = Item; }
protected void Page_Load(object sender, EventArgs e) { var XE_ID = Request["XE_ID"]; var PHOI_ID = Request["PHOI_ID"]; if (!string.IsNullOrEmpty(XE_ID)) { var month = DateTime.Now.Month; var year = DateTime.Now.Year; var prevMonth = month == 1 ? 12 : month - 1; var tuNgay = new DateTime(year, prevMonth, 1).AddDays(-1); var Xe = XeDal.SelectById(Convert.ToInt64(XE_ID)); var LoaiBieuDo = LoaiBieuDoDal.SelectById(Xe.BIEUDO_ID); var chamCongList = ChamCongDal.SelectByXeTuNgay(PHOI_ID, tuNgay.ToString("dd/MM/yyyy"), Xe.ID); var chamCongListCurrent = new List <ChamCong>(); ChamCongCalendar_View.ListChamCong = chamCongList; ChamCongCalendar_View.ListChamCongCurrent = chamCongListCurrent; ChamCongCalendar_View.LoaiBieuDo = LoaiBieuDo; ChamCongCalendar_View.Visible = true; ChamCongCalendar_View.TuNgay = tuNgay; ChamCongCalendar_View.DenNgay = DateTime.Now; BieuDo = LoaiBieuDo; } }
/// <summary> /// Hàm tính tổng số ngày theo biểu đồ /// </summary> /// <param name="loaiBieuDo"></param> /// <param name="year"></param> /// <param name="month"></param> /// <returns></returns> public int TongSoChuyeBieuDo(LoaiBieuDo loaiBieuDo, int year, int month) { if (loaiBieuDo.KhoanTuyen) { return(loaiBieuDo.SoTuyenKhoan); } var days = DateTime.DaysInMonth(year, month); var cachNgay = loaiBieuDo.CachNgay == 0 ? 1 : loaiBieuDo.CachNgay; if (days % cachNgay == 0) { return(days / cachNgay); } return(Convert.ToInt32(Math.Round(Convert.ToDecimal(days / cachNgay)) + 1)); }
protected void Page_Load(object sender, EventArgs e) { var XE_ID = Request["XE_ID"]; var PHOI_ID = Request["PHOI_ID"]; if (!string.IsNullOrEmpty(XE_ID)) { var month = DateTime.Now.Month; var year = DateTime.Now.Year; var prevMonth = month == 1 ? 12 : month - 1; var tuNgay = new DateTime(year, prevMonth, 1).AddDays(-1); var Xe = XeDal.SelectById(Convert.ToInt64(XE_ID)); var LoaiBieuDo = LoaiBieuDoDal.SelectById(Xe.BIEUDO_ID); var chamCongList = ChamCongDal.SelectByXeTuNgay(PHOI_ID, tuNgay.ToString("dd/MM/yyyy"), Xe.ID); var chamCongListCurrent = new List<ChamCong>(); ChamCongCalendar_View.ListChamCong = chamCongList; ChamCongCalendar_View.ListChamCongCurrent = chamCongListCurrent; ChamCongCalendar_View.LoaiBieuDo = LoaiBieuDo; ChamCongCalendar_View.Visible = true; BieuDo = LoaiBieuDo; } }
/// <summary> /// Hàm tính tổng số ngày theo biểu đồ /// </summary> /// <param name="loaiBieuDo"></param> /// <param name="year"></param> /// <param name="month"></param> /// <returns></returns> public int TongSoChuyeBieuDo(LoaiBieuDo loaiBieuDo, int year, int month) { if (loaiBieuDo.KhoanTuyen) { return loaiBieuDo.SoTuyenKhoan; } var days = DateTime.DaysInMonth(year, month); var cachNgay = loaiBieuDo.CachNgay == 0 ? 1 : loaiBieuDo.CachNgay; if (days % cachNgay == 0) { return days / cachNgay; } return Convert.ToInt32(Math.Round(Convert.ToDecimal(days / cachNgay)) + 1); }
/// <summary> /// Tính số ngày cần truy thu tính từ ngày chấm công (truy thu) cuối cùng đến ngày hôm nay /// </summary> /// <param name="chamCongList"> Danh sách chấm công </param> /// <param name="loaiBieuDo">Loại biểu đồ</param> /// <returns>Danh sách ngày cần truy thu dựa vào loại biểu đồ</returns> public List<LichItem> ListCanTruyThu(List<ChamCong> chamCongList, LoaiBieuDo loaiBieuDo) { var date = Today; var currentDate = new DateTime(date.Year, date.Month, date.Day); var ngayDauThang = new DateTime(currentDate.Year, currentDate.Month, 1); var ngayCuoiThang = ngayDauThang.AddMonths(1); var ngayChamCongCuoiCung = chamCongList.Any() ? chamCongList.Last().Ngay : ngayDauThang.AddDays(-1).AddMonths(-1); var tongNgay = (currentDate - ngayChamCongCuoiCung).Days; var list = new List<LichItem>(); if (loaiBieuDo.ID == 0) return list; if (!loaiBieuDo.KhoanTuyen) // Nếu biểu đồ là biểu đồ cách ngày { // lấy tất cả các ngày cách còn lại trong biểu đồ (không kể ngày chấm công cuối cùng) for (var d = currentDate; d > ngayChamCongCuoiCung; d = d.AddDays(-loaiBieuDo.CachNgay)) { if (d == ngayChamCongCuoiCung || d == currentDate) continue; list.Add(new LichItem() { Day = d, Clickactive = true, KieuChamCong = 4, SoChuyen = 1 }); } } else // Nếu biểu đồ là biểu đồ khoán số chuyển theo tháng. Cần tính số tuyến đã chạy trong tháng + số tuyến còn lại. { var totalChuyen = Convert.ToInt32(loaiBieuDo.SoTuyenKhoan); var soChuyenDaChayTrongThang = chamCongList.Count(x => x.Ngay >= ngayDauThang.AddDays(-1)); var soChuyenConLai = totalChuyen - soChuyenDaChayTrongThang; var soNgayConLaiTrongThang = (ngayCuoiThang - currentDate).Days; // Nếu là ngày cuối cùng của tháng sẽ truy thu các chuyến còn thiếu của tháng. if (soNgayConLaiTrongThang == 0) { var i = 0; for (var d = currentDate; d > ngayDauThang.AddMonths(-1); d = d.AddDays(-1)) { if (i == soChuyenConLai) break; if (d == ngayChamCongCuoiCung || d == currentDate) continue; if (ListChamCong.Any(x => x.Ngay == d)) continue; list.Add(new LichItem() { Day = d, Clickactive = true, KieuChamCong = 4, SoChuyen = 1 }); i++; } } else // Số chuyến phải truy thu = Số chuyến còn lại - Số chuyến có thể chạy trong những ngày còn lại (chính là số ngày còn lại trong tháng) { if (soChuyenConLai > soNgayConLaiTrongThang) { var soChuyenCanTruyThu = soChuyenConLai - soNgayConLaiTrongThang; for (var d = currentDate; d > currentDate.AddDays(-soChuyenCanTruyThu); d = d.AddDays(-1)) { if (d == ngayChamCongCuoiCung || d == currentDate) continue; list.Add(new LichItem() { Day = d, Clickactive = true, KieuChamCong = 4, SoChuyen = 1 }); } } } } return list; }
/// <summary> /// Tính số ngày cần truy thu tính từ ngày chấm công (truy thu) cuối cùng đến ngày hôm nay /// </summary> /// <param name="ngayChamCongCuoiCung">Ngày chấm công (truy thu) cuối cùng</param> /// <param name="loaiBieuDo">Loại biểu đồ</param> /// <returns>Danh sách ngày cần truy thu dựa vào loại biểu đồ</returns> public List <LichItem> ListCanTruyThu(List <ChamCong> chamCongList, LoaiBieuDo loaiBieuDo) { var date = Today; var currentDate = new DateTime(date.Year, date.Month, date.Day); var ngayDauThang = new DateTime(currentDate.Year, currentDate.Month, 1); var ngayCuoiThang = ngayDauThang.AddMonths(1); var ngayChamCongCuoiCung = chamCongList.Any() ? chamCongList.Last().Ngay : ngayDauThang.AddDays(-1).AddMonths(-1); var tongNgay = (currentDate - ngayChamCongCuoiCung).Days; var list = new List <LichItem>(); if (loaiBieuDo.ID == 0) { return(list); } if (!loaiBieuDo.KhoanTuyen) // Nếu biểu đồ là biểu đồ cách ngày { // lấy tất cả các ngày cách còn lại trong biểu đồ (không kể ngày chấm công cuối cùng) for (var d = currentDate; d > ngayChamCongCuoiCung; d = d.AddDays(-loaiBieuDo.CachNgay)) { if (d == ngayChamCongCuoiCung || d == currentDate) { continue; } list.Add(new LichItem() { Day = d, Clickactive = true, KieuChamCong = 4, SoChuyen = 1 }); } } else // Nếu biểu đồ là biểu đồ khoán số chuyển theo tháng. Cần tính số tuyến đã chạy trong tháng + số tuyến còn lại. { var totalChuyen = Convert.ToInt32(loaiBieuDo.SoTuyenKhoan); var soChuyenDaChayTrongThang = chamCongList.Count(x => x.Ngay >= ngayDauThang.AddDays(-1)); var soChuyenConLai = totalChuyen - soChuyenDaChayTrongThang; var soNgayConLaiTrongThang = (ngayCuoiThang - currentDate).Days; // Nếu là ngày cuối cùng của tháng sẽ truy thu các chuyến còn thiếu của tháng. if (soNgayConLaiTrongThang == 0) { var i = 0; for (var d = currentDate; d > ngayDauThang.AddMonths(-1); d = d.AddDays(-1)) { if (i == soChuyenConLai) { break; } if (d == ngayChamCongCuoiCung || d == currentDate) { continue; } if (ListChamCong.Any(x => x.Ngay == d)) { continue; } list.Add(new LichItem() { Day = d, Clickactive = true, KieuChamCong = 4, SoChuyen = 1 }); i++; } } else // Số chuyến phải truy thu = Số chuyến còn lại - Số chuyến có thể chạy trong những ngày còn lại (chính là số ngày còn lại trong tháng) { if (soChuyenConLai > soNgayConLaiTrongThang) { var soChuyenCanTruyThu = soChuyenConLai - soNgayConLaiTrongThang; for (var d = currentDate; d > currentDate.AddDays(-soChuyenCanTruyThu); d = d.AddDays(-1)) { if (d == ngayChamCongCuoiCung || d == currentDate) { continue; } list.Add(new LichItem() { Day = d, Clickactive = true, KieuChamCong = 4, SoChuyen = 1 }); } } } } return(list); }