Пример #1
0
        public void generateChiSoFromNearestMonth(int currentMonth, int currentYear, int nhanVienId, int tuyenKHID)
        {
            DateTime thangNamGanNhat = getThangNamGanNhatThuocHoaDon(tuyenKHID, currentMonth, currentYear);
            int      previousMonth   = thangNamGanNhat.Month;
            int      previousYear    = thangNamGanNhat.Year;

            if (previousYear != 1)
            {
                var hoaDonNuocsThangTruoc = getHoaDonThang(previousMonth, previousYear, tuyenKHID);
                var hoaDonNuocsHienTai    = getHoaDonThang(currentMonth, currentYear, tuyenKHID);

                int countHoaDonsThangTruoc   = hoaDonNuocsThangTruoc.Count();
                int countHoaDonsThangHienTai = hoaDonNuocsHienTai.Count();

                if (countHoaDonsThangTruoc != 0)
                {
                    foreach (var hoaDonNuocThangTruoc in hoaDonNuocsThangTruoc)
                    {
                        HoaDonNuocHaDong.Models.SoLieuTieuThu.HoaDonNuoc hoaDonNuoc = hoaDonNuocsHienTai.FirstOrDefault(p => p.Thang == currentMonth && p.Nam == currentYear && p.KhachHangID == hoaDonNuocThangTruoc.KhachHangID);
                        if (hoaDonNuoc == null)
                        {
                            Hoadonnuoc hoaDonThangHienTai = new Hoadonnuoc();
                            hoaDonThangHienTai.ThangHoaDon = currentMonth;
                            hoaDonThangHienTai.NamHoaDon   = currentYear;
                            if (hoaDonNuocThangTruoc.NgayKetThucSuDung == null || hoaDonNuocThangTruoc.NgayKetThucSuDung == DateTime.MinValue)
                            {
                                hoaDonThangHienTai.Ngaybatdausudung = hoaDonNuocThangTruoc.NgayBatDauSuDung;
                            }
                            else
                            {
                                hoaDonThangHienTai.Ngaybatdausudung = hoaDonNuocThangTruoc.NgayKetThucSuDung;
                            }

                            hoaDonThangHienTai.KhachhangID   = hoaDonNuocThangTruoc.KhachHangID;
                            hoaDonThangHienTai.NhanvienID    = nhanVienId;
                            hoaDonThangHienTai.Trangthaixoa  = false;
                            hoaDonThangHienTai.Trangthaithu  = false;
                            hoaDonThangHienTai.Trangthaiin   = false;
                            hoaDonThangHienTai.Trangthaichot = false;
                            db.Hoadonnuocs.Add(hoaDonThangHienTai);
                            db.SaveChanges();
                            //Thêm chi tiết hóa đơn nước tháng sau
                            Chitiethoadonnuoc chiTiet = new Chitiethoadonnuoc();
                            chiTiet.HoadonnuocID = hoaDonThangHienTai.HoadonnuocID;
                            chiTiet.Chisocu      = hoaDonNuocThangTruoc.ChiSoMoi;
                            db.Chitiethoadonnuocs.Add(chiTiet);
                        }
                    }
                    db.SaveChanges();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Thêm mới hóa đơn cho tháng sau
        /// </summary>
        /// <param name="KHID"></param>
        /// <param name="HoaDonID"></param>
        /// <param name="ChiSoCuoi"></param>
        public static void themMoiHoaDonThangSau(int KHID, int ChiSoCuoi, int nhanvienID, int?_month, int?_year, DateTime ngayBatDau)
        {
            int month = _month.Value; int year = _year.Value;

            //thêm 1 record vào tháng sau trong trường hợp chưa có
            //nếu tháng sau = 12 thì chuyển năm
            if (month + 1 > 12)
            {
                //ngayHoaDon = new DateTime(DateTime.Now.Year + 1, 1,15);
                month = 1;
                year  = _year.Value + 1;
            }
            //nếu không thì vẫn chuyển năm như bình thường
            else
            {
                month = month + 1;
            }
            var hoaDonNuocThangSau = db.Hoadonnuocs.FirstOrDefault(p => p.KhachhangID == KHID && p.ThangHoaDon == month && p.NamHoaDon == year);

            //nếu k có trong db mới tiến hành add record
            if (hoaDonNuocThangSau == null)
            {
                Hoadonnuoc hoaDonThangSau = new Hoadonnuoc();
                hoaDonThangSau.Ngayhoadon  = null;
                hoaDonThangSau.KhachhangID = KHID;

                //lấy hóa đơn tháng sau dựa trên thứ tự đọc của hóa đơn tháng trước
                hoaDonThangSau.ThangHoaDon      = month;
                hoaDonThangSau.NamHoaDon        = year;
                hoaDonThangSau.NhanvienID       = nhanvienID;
                hoaDonThangSau.Ngaybatdausudung = ngayBatDau;
                db.Hoadonnuocs.Add(hoaDonThangSau);
                db.SaveChanges();

                //tạo new record chi tiết hóa đơn nước vào tháng sau
                Chitiethoadonnuoc chiTietThangSau = new Chitiethoadonnuoc();
                chiTietThangSau.HoadonnuocID = hoaDonThangSau.HoadonnuocID;
                chiTietThangSau.Chisocu      = ChiSoCuoi;
                db.Chitiethoadonnuocs.Add(chiTietThangSau);
                db.SaveChanges();
            }

            //nếu có record trong tháng sau thì cập nhật lại ngày bắt đầu và các thông số liên quan
            else
            {
                hoaDonNuocThangSau.Ngaybatdausudung = ngayBatDau;
                db.SaveChanges();
                var chiTietHoaDonNuocExist = hoaDonNuocThangSau.Chitiethoadonnuocs.FirstOrDefault();
                //nếu k có trong db thì add
                if (chiTietHoaDonNuocExist == null)
                {
                    //tạo new record chi tiết hóa đơn nước vào tháng sau
                    Chitiethoadonnuoc chiTietThangSau = new Chitiethoadonnuoc();
                    chiTietThangSau.HoadonnuocID = hoaDonNuocThangSau.HoadonnuocID;
                    chiTietThangSau.Chisocu      = ChiSoCuoi;
                    db.Chitiethoadonnuocs.Add(chiTietThangSau);
                    db.SaveChanges();
                }
                else
                {
                    chiTietHoaDonNuocExist.Chisocu = ChiSoCuoi;
                    db.SaveChanges();
                }
            }
        }