Example #1
0
    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));
    }
Example #4
0
    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);
    }
Example #8
0
 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;
 }