Exemplo n.º 1
0
        /// <summary>
        ///     view list KhachHang with filter
        /// </summary>
        public ActionResult Index(KhachHangFilterModel filter, Pager pager, ViewMode viewMode = ViewMode.Default)
        {
            title = "Quản lý Khách hàng";

            // default values
            if (filter.Mode == KhachHangFilterModel.FilterByManagementInfo) // not in filter
            {
                // set selected to, quan huyen = nhanVien's to, quan huyen
                if (nhanVien != null && filter.QuanHuyenID == null)
                {
                    filter.NhanVienID = nhanVien.NhanvienID;
                    filter.ToID       = nhanVien.ToQuanHuyenID;
                    IToRepository toRepository = uow.Repository <ToRepository>();
                    var           to           = toRepository.GetByID(nhanVien.ToQuanHuyenID ?? 0);
                    if (to != null)
                    {
                        filter.QuanHuyenID = to.QuanHuyenID;
                    }
                }
            }

            var items = khachHangRepository.GetAllKhachHangModel();

            items = filter.ApplyFilter(items);

            if (viewMode == ViewMode.Excel)
            {
                return(ExcelResult("IndexExport", items.ToList()));
            }

            items = pager.ApplyPager(items);

            #region view data
            ViewBag.NhanVien = nhanVien;
            ViewBag.Filter   = filter;
            ViewBag.Pager    = pager;
            #endregion
            return(View(items.ToList()));
        }
Exemplo n.º 2
0
        /// <summary>
        /// view list of HoaDon with filter
        /// </summary>
        public ActionResult Index(HoaDonFilterModel filter, Pager pager, String todo, ViewMode viewMode = ViewMode.Default)
        {
            title = "Quản lý công nợ khách hàng";

            // default values
            if (filter.Mode == null || filter.Mode == HoaDonFilterModel.FilterByUserInfo)   // not in filter
            {
                if ((filter.Month == null) || filter.TrangThaiThu == HDNHD.Models.Constants.ETrangThaiThu.DaQuaHan)
                {
                    filter.Month = DateTime.Now.Month;
                    filter.Year  = DateTime.Now.Year;

                    if (filter.TrangThaiThu == null)
                    {
                        filter.TrangThaiThu = HDNHD.Models.Constants.ETrangThaiThu.ChuaNopTien;
                    }
                    if (filter.HinhThucThanhToan == null)
                    {
                        filter.HinhThucThanhToan = HDNHD.Models.Constants.EHinhThucThanhToan.TienMat;
                    }
                }

                // set selected to, quan huyen = nhanVien's to, quan huyen
                if (nhanVien != null && filter.QuanHuyenID == null)
                {
                    filter.NhanVienID = nhanVien.NhanvienID;
                    filter.ToID       = nhanVien.ToQuanHuyenID;

                    var to = toRepository.GetByID(nhanVien.ToQuanHuyenID ?? 0);
                    if (to != null)
                    {
                        filter.QuanHuyenID = to.QuanHuyenID;
                    }
                }
            }

            // query items
            var items = hoaDonRepository.GetAllHoaDonModel(true); // đã in

            items = filter.ApplyFilter(items);

            ViewBag.TongSoTienTrenHoaDon = items.Sum(m => m.SoTienTrenHoaDon) ?? 0;
            ViewBag.TongSoTienPhaiNop    = items.Sum(m => m.SoTienNopTheoThang.SoTienPhaiNop) ?? 0;
            ViewBag.TongSoTienDaNop      = items.Sum(m => m.SoTienNopTheoThang.SoTienDaThu) ?? 0;
            ViewBag.TongDuCo             = items.Where(m => m.DuCo != null).Sum(m => m.DuCo.SoTienDu) ?? 0;
            ViewBag.TongDuNo             = items.Sum(m => m.DuNo) ?? 0;

            if (viewMode == ViewMode.Excel)
            {
                return(ExcelResult("IndexExport", items.ToList()));
            }

            items = pager.ApplyPager(items);

            #region view data
            ViewBag.NhanVien = nhanVien;
            ViewBag.Filter   = filter;
            ViewBag.Pager    = pager;
            ViewBag.ToDo     = todo; // actions
            #endregion
            return(View(items.ToList()));
        }
Exemplo n.º 3
0
        /// <summary>
        ///     Revenue report for month m / year y
        ///         DuCoDauKy = sum DuCo of prev month
        ///         DuNoDauKy = sum HoaDon of prev month with TrangThaiThu = false ???
        /// </summary>
        public ActionResult DoanhThu(int?month, int?year, DoanhThuFilterModel filter, GiaoDichFilterModel giaoDichFilter,
                                     DuCoFilterModel duCoFilter, DuNoFilterModel duNoFilter, SoTienNopTheoThangFilterModel soTienNopTheoThangFilter, ViewMode viewMode = ViewMode.Default)
        {
            title = "Báo cáo doanh thu";

            var hoaDonRepository             = uow.Repository <HoaDonRepository>();
            var duCoRepository               = uow.Repository <DuCoRepository>();
            var giaoDichRepository           = uow.Repository <GiaoDichRepository>();
            var soTienNopTheoThangRepository = uow.Repository <SoTienNopTheoThangRepository>();

            // default values: xem báo cáo tháng trước
            var dtBaoCao = DateTime.Now.AddMonths(-1);

            if (month == null)
            {
                month = dtBaoCao.Month;
            }
            if (year == null)
            {
                year = dtBaoCao.Year;
            }

            if (filter.Mode == null) // not in filter
            {
                // set selected to, quan huyen = nhanVien's to, quan huyen
                if (nhanVien != null)
                {
                    //filter.NhanVienID = nhanVien.NhanvienID;
                    //filter.ToID = nhanVien.ToQuanHuyenID;

                    var to = toRepository.GetByID(nhanVien.ToQuanHuyenID ?? 0);
                    if (to != null)
                    {
                        filter.QuanHuyenID = to.QuanHuyenID;
                    }
                }

                giaoDichFilter.NhanVienID  = filter.NhanVienID;
                giaoDichFilter.ToID        = filter.ToID;
                giaoDichFilter.QuanHuyenID = filter.QuanHuyenID;

                duCoFilter.NhanVienID  = filter.NhanVienID;
                duCoFilter.ToID        = filter.ToID;
                duCoFilter.QuanHuyenID = filter.QuanHuyenID;

                duNoFilter.NhanVienID  = filter.NhanVienID;
                duNoFilter.ToID        = filter.ToID;
                duNoFilter.QuanHuyenID = filter.QuanHuyenID;

                soTienNopTheoThangFilter.NhanVienID  = filter.NhanVienID;
                soTienNopTheoThangFilter.ToID        = filter.ToID;
                soTienNopTheoThangFilter.QuanHuyenID = filter.QuanHuyenID;
            }

            // data
            var prevMonth = month;
            var prevYear  = year;

            prevMonth--;
            if (prevMonth < 1)
            {
                prevMonth = 12;
                prevYear--;
            }

            #region Tổng
            // dư nợ đầu kỳ
            var duNoDauKy = hoaDonRepository.GetAllDuNoModel(prevMonth.Value, prevYear.Value);
            duNoDauKy         = duNoFilter.ApplyFilter(duNoDauKy);
            ViewBag.DuNoDauKy = duNoDauKy.Sum(m => m.SoTienNo) ?? 0;

            // dư có đầu kỳ
            var duCoDauKy = duCoRepository.GetAllDuCoModel(prevMonth.Value, prevYear.Value);
            duCoDauKy         = duCoFilter.ApplyFilter(duCoDauKy);
            ViewBag.DuCoDauKy = duCoDauKy.Sum(m => m.SoTien) ?? 0;

            // hóa đơn in trong tháng (tháng hóa đơn - 1)
            var soTienNopTheoThang = soTienNopTheoThangRepository.GetAllByMonthYear(month.Value, year.Value);
            soTienNopTheoThang       = soTienNopTheoThangFilter.ApplyFilter(soTienNopTheoThang);
            ViewBag.SoTienTrenHoaDon = soTienNopTheoThang.Sum(m => m.SoTienTrenHoaDon) ?? 0;

            // số tiền phải thu
            ViewBag.SoTienPhaiThu = soTienNopTheoThang.Sum(m => m.SoTienPhaiNop) ?? 0;

            // số tiền đã thu
            var giaoDich = giaoDichRepository.GetAllByMonthYear(month.Value, year.Value);
            giaoDich                       = giaoDichFilter.ApplyFilter(giaoDich);
            ViewBag.SoTienDaThu            = giaoDich.Sum(m => m.SoTien) ?? 0;
            ViewBag.SoTienDaThuChuyenKhoan = giaoDich.Where(m => m.IsChuyenKhoan).Sum(m => m.SoTien) ?? 0;
            ViewBag.SoTienDaThuTienMat     = ViewBag.SoTienDaThu - ViewBag.SoTienDaThuChuyenKhoan;

            // dư nợ cuối kỳ
            var duNoCuoiKy = hoaDonRepository.GetAllDuNoModel(month.Value, year.Value);
            duNoCuoiKy         = duNoFilter.ApplyFilter(duNoCuoiKy);
            ViewBag.DuNoCuoiKy = duNoCuoiKy.Sum(m => m.SoTienNo) ?? 0;

            // dư có cuối kỳ
            var duCoCuoiKy = duCoRepository.GetAllDuCoModel(month.Value, year.Value);
            duCoCuoiKy         = duCoFilter.ApplyFilter(duCoCuoiKy);
            ViewBag.DuCoCuoiKy = duCoCuoiKy.Sum(m => m.SoTien) ?? 0;
            #endregion

            #region Hộ gia đình
            duNoFilter.LoaiKhachHang = ELoaiKhachHang.HoGiaDinh;
            duCoFilter.LoaiKhachHang = ELoaiKhachHang.HoGiaDinh;
            soTienNopTheoThangFilter.LoaiKhachHang = ELoaiKhachHang.HoGiaDinh;
            giaoDichFilter.LoaiKhachHang           = ELoaiKhachHang.HoGiaDinh;

            // dư nợ đầu kỳ
            duNoDauKy             = duNoFilter.ApplyFilter(duNoDauKy);
            ViewBag.DuNoDauKyHoGD = duNoDauKy.Sum(m => m.SoTienNo) ?? 0;

            // dư có đầu kỳ
            duCoDauKy             = duCoFilter.ApplyFilter(duCoDauKy);
            ViewBag.DuCoDauKyHoGD = duCoDauKy.Sum(m => m.SoTien) ?? 0;

            // hóa đơn in trong tháng (tháng hóa đơn - 1)
            soTienNopTheoThang           = soTienNopTheoThangFilter.ApplyFilter(soTienNopTheoThang);
            ViewBag.SoTienTrenHoaDonHoGD = soTienNopTheoThang.Sum(m => m.SoTienTrenHoaDon) ?? 0;

            // số tiền phải thu
            ViewBag.SoTienPhaiThuHoGD = soTienNopTheoThang.Sum(m => m.SoTienPhaiNop) ?? 0;

            // số tiền đã thu
            giaoDich = giaoDichFilter.ApplyFilter(giaoDich);
            ViewBag.SoTienDaThuHoGD            = giaoDich.Sum(m => m.SoTien) ?? 0;
            ViewBag.SoTienDaThuChuyenKhoanHoGD = giaoDich.Where(m => m.IsChuyenKhoan).Sum(m => m.SoTien) ?? 0;
            ViewBag.SoTienDaThuTienMatHoGD     = ViewBag.SoTienDaThu - ViewBag.SoTienDaThuChuyenKhoan;

            // dư nợ cuối kỳ
            duNoCuoiKy            = duNoFilter.ApplyFilter(duNoCuoiKy);
            ViewBag.DuNoCuoiKyHGD = duNoCuoiKy.Sum(m => m.SoTienNo) ?? 0;

            // dư có cuối kỳ
            duCoCuoiKy             = duCoFilter.ApplyFilter(duCoCuoiKy);
            ViewBag.DuCoCuoiKyHoGD = duCoCuoiKy.Sum(m => m.SoTien) ?? 0;
            #endregion

            #region viewdata
            ViewBag.Month  = month.Value;
            ViewBag.Year   = year.Value;
            ViewBag.Filter = filter;
            #endregion

            if (viewMode == ViewMode.Excel)
            {
                return(ExcelResult("DoanhThuExport"));
            }

            return(View());
        }