protected void Page_Load(object sender, EventArgs e)
    {
        if (ListChamCong == null || ListChamCongCurrent == null)
        {
            return;
        }
        Today = string.IsNullOrEmpty(NgayXuatBen)
                    ? DateTime.Now
                    : Convert.ToDateTime(NgayXuatBen, new CultureInfo("Vi-vn"));

        SoChuyenNo = ListChamCong.Count(x => x.TrangThaiNo == 1);

        ListChamCong = ListChamCong.Where(x => x.TrangThaiNo != 1).ToList();

        var month     = Today.Month;
        var year      = Today.Year;
        var prevMonth = month == 1 ? 12 : month - 1;

        PrevMonth    = new List <LichItem>();
        CurrentMonth = new List <LichItem>();

        var mongMotThangTruoc = new DateTime(month == 1 ? year + -1 : year, prevMonth, 1);
        var mongMotThangNay   = new DateTime(year, month, 1);
        var mongMotThangSau   = new DateTime(month == 12 ? year + 1 : year, month == 12 ? 1 : month + 1, 1);


        PrevMonthLabel    = prevMonth;
        CurrentMonthLabel = month;
        Thangs            = new List <ListThang>();

        var listCanTruyThu = ListCanTruyThu(ListChamCong, LoaiBieuDo);

        for (var d = mongMotThangTruoc; d < mongMotThangNay; d = d.AddDays(1))
        {
            var chamCongList = ListChamCong.Where(x => x.Ngay == d);
            var item         = new LichItem {
                Day = d
            };
            var chamCongs      = chamCongList as List <ChamCong> ?? chamCongList.ToList();
            var itemCanTruyThu = listCanTruyThu.FirstOrDefault(x => x.Day == d);

            if (itemCanTruyThu != null)
            {
                item.KieuChamCong = 4;
            }

            if (chamCongs.Any())
            {
                var chamCongsItem = chamCongs[0];
                // Xác định chấm công này đã được lãnh đạo duyệt hay chưa
                var kieuChamCong = chamCongsItem.Loai != 3 ? chamCongsItem.Loai : (chamCongsItem.Duyet ? 3 : 5);
                item.List.AddRange(chamCongs);
                item.KieuChamCong = kieuChamCong;
                item.SoChuyen     = chamCongs.Count;
            }

            var chamCongsCurrent = ListChamCongCurrent.Where(x => x.Ngay == d).ToList();
            if (chamCongsCurrent.Any())
            {
                item.List.AddRange(chamCongsCurrent);
                item.KieuChamCong = chamCongsCurrent[0].Loai;
                item.SoChuyen    += chamCongsCurrent.Count;
                item.TRUYTHU_ID   = chamCongsCurrent[0].TRUYTHU_ID;
                item.PHOI_ID      = chamCongsCurrent[0].PHOI_ID;
                item.Clickactive  = true;
            }


            PrevMonth.Add(item);
        }

        Thangs.Add(new ListThang()
        {
            Ngay    = PrevMonth
            , Thang = prevMonth
            ,
            Tong = PrevMonth.Sum(x => x.SoChuyen)
            ,
            TongBieuDo = TongSoChuyeBieuDo(LoaiBieuDo, year, prevMonth)
        });

        for (var d = mongMotThangNay; d < mongMotThangSau; d = d.AddDays(1))
        {
            var chamCongList = ListChamCong.Where(x => x.Ngay == d);
            var item         = new LichItem {
                Day = d
            };
            var chamCongs = chamCongList as List <ChamCong> ?? chamCongList.ToList();

            var itemCanTruyThu = listCanTruyThu.FirstOrDefault(x => x.Day == d);

            if (itemCanTruyThu != null)
            {
                item.KieuChamCong = 4;
            }

            if (chamCongs.Any())
            {
                var chamCongsItem = chamCongs[0];
                // Xác định chấm công này đã được lãnh đạo duyệt hay chưa
                var kieuChamCong = chamCongsItem.Loai != 3 ? chamCongsItem.Loai : (chamCongsItem.Duyet ? 3 : 5);
                item.List.AddRange(chamCongs);
                item.KieuChamCong = kieuChamCong;
                item.SoChuyen     = chamCongs.Count;
            }

            var chamCongsCurrent = ListChamCongCurrent.Where(x => x.Ngay == d).ToList();
            if (chamCongsCurrent.Any())
            {
                item.List.AddRange(chamCongsCurrent);
                item.KieuChamCong = chamCongsCurrent[0].Loai;
                item.SoChuyen    += chamCongsCurrent.Count;
                item.Clickactive  = true;
                item.TRUYTHU_ID   = chamCongsCurrent[0].TRUYTHU_ID;
                item.PHOI_ID      = chamCongsCurrent[0].PHOI_ID;
            }
            CurrentMonth.Add(item);
        }

        Thangs.Add(new ListThang()
        {
            Ngay = CurrentMonth
            ,
            Thang  = month
            , Tong = CurrentMonth.Sum(x => x.SoChuyen)
            ,
            TongBieuDo = TongSoChuyeBieuDo(LoaiBieuDo, year, month)
        });
    }
Esempio n. 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (ListChamCong == null || ListChamCongCurrent == null)
        {
            return;
        }
        ListChamCong = ListChamCong;
        Today        = string.IsNullOrEmpty(NgayXuatBen)
                    ? DateTime.Now
                    : Convert.ToDateTime(NgayXuatBen, new CultureInfo("Vi-vn"));

        SoChuyenNo = ListChamCong.Count(x => x.TrangThaiNo == 1);
        if (ListChamCong.Any() && !ShowFullMonth)
        {
            TuNgay = ListChamCong.Last().Ngay;
        }

        var tuNgayDauThang   = new DateTime(TuNgay.Year, TuNgay.Month, 1);
        var denNgayCuoiThang = new DateTime(DenNgay.Year, DenNgay.Month, 1).AddMonths(1).AddDays(-1);



        var listCanTruyThu = ListCanTruyThu(ListChamCong, LoaiBieuDo);

        Thangs = new List <ListThang>();
        var listNgay          = new List <LichItem>();
        var listNgayTangCuong = new List <LichItem>();
        var item = new LichItem();

        for (var xDay = tuNgayDauThang; xDay <= denNgayCuoiThang; xDay = xDay.AddMonths(1))
        {
            var xNgayCuoiThang = new DateTime(xDay.Year, xDay.Month, 1).AddMonths(1);
            listNgay          = new List <LichItem>();
            listNgayTangCuong = new List <LichItem>();
            for (var d = xDay; d < xNgayCuoiThang; d = d.AddDays(1))
            {
                var chamCongBinhThuong         = ListChamCong.FirstOrDefault(x => x.Ngay == d && !x.TangCuong);
                var chamCongTangCuong          = ListChamCong.FirstOrDefault(x => x.Ngay == d && x.TangCuong);
                var itemCanTruyThu             = listCanTruyThu.FirstOrDefault(x => x.Day == d);
                var chamCongsCurrentBinhThuong = ListChamCongCurrent.FirstOrDefault(x => x.Ngay == d && !x.TangCuong);
                var chamCongsCurrentTangCuong  = ListChamCongCurrent.FirstOrDefault(x => x.Ngay == d && x.TangCuong);

                item = new LichItem {
                    Day = d
                };
                item.Clickable = true;

                // Chỉ tính chấm công đã trả nợ
                if (itemCanTruyThu != null)
                {
                    item.KieuChamCong = 7;
                }

                if (chamCongBinhThuong != null)
                {
                    // Xác định chấm công này đã được lãnh đạo duyệt hay chưa
                    var kieuChamCong = chamCongBinhThuong.Loai != 3 ? chamCongBinhThuong.Loai : (chamCongBinhThuong.Duyet ? 3 : 5);
                    if (chamCongBinhThuong.TrangThaiNo == 1)
                    {
                        kieuChamCong = 6;
                    }
                    item.Item         = chamCongBinhThuong;
                    item.KieuChamCong = kieuChamCong;
                    item.SoChuyen     = 1;
                    item.GhiChu       = chamCongBinhThuong.GhiChu;
                    item.TangCuong    = chamCongBinhThuong.TangCuong;
                    item.Clickable    = false;
                }
                if (chamCongsCurrentBinhThuong != null)
                {
                    item.Item         = chamCongsCurrentBinhThuong;
                    item.KieuChamCong = chamCongsCurrentBinhThuong.Loai;
                    item.SoChuyen    += 1;
                    item.TRUYTHU_ID   = chamCongsCurrentBinhThuong.TRUYTHU_ID;
                    item.PHOI_ID      = chamCongsCurrentBinhThuong.PHOI_ID;
                    item.TangCuong    = chamCongsCurrentBinhThuong.TangCuong;
                    item.Clickactive  = true;
                }
                listNgay.Add(item);

                item = new LichItem()
                {
                    Day = d
                };
                item.Clickable = true;
                if (chamCongTangCuong != null)
                {
                    // Xác định chấm công này đã được lãnh đạo duyệt hay chưa
                    var kieuChamCong = chamCongTangCuong.Loai != 3 ? chamCongTangCuong.Loai : (chamCongTangCuong.Duyet ? 3 : 5);
                    if (chamCongTangCuong.TrangThaiNo == 1)
                    {
                        kieuChamCong = 6;
                    }
                    item.Item         = chamCongTangCuong;
                    item.KieuChamCong = kieuChamCong;
                    item.SoChuyen     = 1;
                    item.GhiChu       = chamCongTangCuong.GhiChu;
                    item.TangCuong    = chamCongTangCuong.TangCuong;
                    item.Clickable    = false;
                }
                //Ngày chấm công hiện tại
                if (chamCongsCurrentTangCuong != null)
                {
                    item.Item         = chamCongsCurrentTangCuong;
                    item.KieuChamCong = chamCongsCurrentTangCuong.Loai;
                    item.SoChuyen    += 1;
                    item.TRUYTHU_ID   = chamCongsCurrentTangCuong.TRUYTHU_ID;
                    item.PHOI_ID      = chamCongsCurrentTangCuong.PHOI_ID;
                    item.TangCuong    = chamCongsCurrentTangCuong.TangCuong;
                    item.Clickactive  = true;
                }
                listNgayTangCuong.Add(item);
            }

            Thangs.Add(new ListThang()
            {
                Ngay          = listNgay,
                NgayTangCuong = listNgayTangCuong,
                Thang         = xDay.Month,
                Tong          = listNgay.Sum(x => x.SoChuyen),
                TongBieuDo    = TongSoChuyeBieuDo(LoaiBieuDo, xDay.Year, xDay.Month)
            });
        }
    }