Ejemplo n.º 1
0
        public virtual List <ThongKeLuotXuatBenItem> GetThongKeLuotXuatBen(int ThangId, int NamId, int[] arrNhanVien, int HanhTrinhId)
        {
            //lay tat ca ngay trong thang
            if (ThangId > 0 && NamId > 0)
            {
                var arritem = _historyxexuatbenRepository.Table
                              .Where(c => (c.TrangThaiId == (int)ENTrangThaiXeXuatBen.DANG_DI ||
                                           c.TrangThaiId == (int)ENTrangThaiXeXuatBen.CHO_XUAT_BEN ||
                                           c.TrangThaiId == (int)ENTrangThaiXeXuatBen.KET_THUC) &&
                                     c.NgayDi.Month == ThangId &&
                                     c.NgayDi.Year == NamId &&
                                     (c.LaiPhuXes.Any(n => arrNhanVien.Contains(n.NhanVien_Id)))
                                     );
                if (HanhTrinhId > 0)
                {
                    arritem = arritem.Where(c => c.HanhTrinhId == HanhTrinhId);
                }
                var query = arritem.ToList().Select(m =>
                {
                    var item         = new ThongKeLuotXuatBenItem();
                    item.NhanVienIds = m.LaiPhuXes.Select(n => n.NhanVien_Id).ToArray();
                    item.Ngay        = m.NgayDi.Day;
                    item.Thang       = ThangId;
                    var pvs          = GetPhoiVeByChuyenDi(m.Id);
                    item.DoanhThu    = pvs.Sum(c => c.GiaVeHienTai);
                    item.Nam         = NamId;
                    item.SoLuot      = 1;
                    return(item);
                }).ToList();
                return(query);
            }
            //lay du lieu trong nam
            if (NamId > 0)
            {
                var arritem = _historyxexuatbenRepository.Table
                              .Where(c => (c.TrangThaiId == (int)ENTrangThaiXeXuatBen.DANG_DI ||
                                           c.TrangThaiId == (int)ENTrangThaiXeXuatBen.CHO_XUAT_BEN ||
                                           c.TrangThaiId == (int)ENTrangThaiXeXuatBen.KET_THUC) &&
                                     c.NgayDi.Year == NamId &&
                                     (c.LaiPhuXes.Any(n => arrNhanVien.Contains(n.NhanVien_Id)))
                                     );
                if (HanhTrinhId > 0)
                {
                    arritem = arritem.Where(c => c.HanhTrinhId == HanhTrinhId);
                }
                var query = arritem.ToList().Select(m =>
                {
                    var item         = new ThongKeLuotXuatBenItem();
                    item.NhanVienIds = m.LaiPhuXes.Select(n => n.NhanVien_Id).ToArray();
                    item.Ngay        = 0;
                    item.Thang       = m.NgayDi.Month;
                    var pvs          = GetPhoiVeByChuyenDi(m.Id);
                    item.DoanhThu    = pvs.Sum(c => c.GiaVeHienTai);
                    item.Nam         = NamId;
                    item.SoLuot      = 1;
                    return(item);
                }).ToList();
                return(query);
            }

            //lay du lieu trong vong 5 nam
            int _nam     = DateTime.Now.Year;
            var arritem1 = _historyxexuatbenRepository.Table
                           .Where(c => (c.TrangThaiId == (int)ENTrangThaiXeXuatBen.DANG_DI ||
                                        c.TrangThaiId == (int)ENTrangThaiXeXuatBen.CHO_XUAT_BEN ||
                                        c.TrangThaiId == (int)ENTrangThaiXeXuatBen.KET_THUC) &&
                                  c.NgayDi.Year <= _nam &&
                                  (c.LaiPhuXes.Any(n => arrNhanVien.Contains(n.NhanVien_Id)))
                                  );

            if (HanhTrinhId > 0)
            {
                arritem1 = arritem1.Where(c => c.HanhTrinhId == HanhTrinhId);
            }
            var query1 = arritem1.ToList().Select(m =>
            {
                var item         = new ThongKeLuotXuatBenItem();
                item.NhanVienIds = m.LaiPhuXes.Select(n => n.NhanVien_Id).ToArray();
                item.Ngay        = 0;
                item.Thang       = 0;
                item.Nam         = m.NgayDi.Year;
                var pvs          = GetPhoiVeByChuyenDi(m.Id);
                item.DoanhThu    = pvs.Sum(c => c.GiaVeHienTai);
                item.SoLuot      = 1;
                return(item);
            }).ToList();

            return(query1);
        }
Ejemplo n.º 2
0
        public virtual List <ThongKeLuotXuatBenItem> GetThongKeLuotXuatBen(int ThangId, int NamId, int[] arrNhanVien)
        {
            //lay tat ca ngay trong thang
            if (ThangId > 0 && NamId > 0)
            {
                var query = _chuyendiRepository.Table
                            .Where(c => (c.TrangThaiId == (int)ENTrangThaiXeXuatBen.DANG_DI ||
                                         c.TrangThaiId == (int)ENTrangThaiXeXuatBen.CHO_XUAT_BEN ||
                                         c.TrangThaiId == (int)ENTrangThaiXeXuatBen.KET_THUC) &&
                                   c.NgayDi.Month == ThangId &&
                                   c.NgayDi.Year == NamId &&
                                   (arrNhanVien.Contains(c.LaiXeId.Value))
                                   ).ToList().Select(m =>
                {
                    var item     = new ThongKeLuotXuatBenItem();
                    item.LaiXeId = m.LaiXeId.Value;
                    item.Ngay    = m.NgayDi.Day;
                    item.Thang   = ThangId;
                    item.Nam     = NamId;
                    item.SoLuot  = 1;
                    return(item);
                }).ToList();
                return(query);
            }
            //lay du lieu trong nam
            if (NamId > 0)
            {
                var query = _chuyendiRepository.Table
                            .Where(c => (c.TrangThaiId == (int)ENTrangThaiXeXuatBen.DANG_DI ||
                                         c.TrangThaiId == (int)ENTrangThaiXeXuatBen.CHO_XUAT_BEN ||
                                         c.TrangThaiId == (int)ENTrangThaiXeXuatBen.KET_THUC) &&
                                   c.NgayDi.Year == NamId &&
                                   (arrNhanVien.Contains(c.LaiXeId.Value))
                                   ).ToList().Select(m =>
                {
                    var item     = new ThongKeLuotXuatBenItem();
                    item.LaiXeId = m.LaiXeId.Value;
                    item.Ngay    = 0;
                    item.Thang   = m.NgayDi.Month;
                    item.Nam     = NamId;
                    item.SoLuot  = 1;
                    return(item);
                }).ToList();
                return(query);
            }

            //lay du lieu trong vong 5 nam
            int _nam   = DateTime.Now.Year;
            var query1 = _chuyendiRepository.Table
                         .Where(c => (c.TrangThaiId == (int)ENTrangThaiXeXuatBen.DANG_DI ||
                                      c.TrangThaiId == (int)ENTrangThaiXeXuatBen.CHO_XUAT_BEN ||
                                      c.TrangThaiId == (int)ENTrangThaiXeXuatBen.KET_THUC) &&
                                c.NgayDi.Year <= _nam &&
                                (arrNhanVien.Contains(c.LaiXeId.Value))
                                ).ToList().Select(m =>
            {
                var item     = new ThongKeLuotXuatBenItem();
                item.LaiXeId = m.LaiXeId.Value;
                item.Ngay    = 0;
                item.Thang   = 0;
                item.Nam     = m.NgayDi.Year;
                item.SoLuot  = 1;
                return(item);
            }).ToList();

            return(query1);
        }