public bool XoaHoaDonThuePhong(string maHoaDonThuePhong) { HoaDonThuePhong hoaDonThuePhong = db.HoaDonThuePhongs.Single(x => x.MaHD == maHoaDonThuePhong); db.HoaDonThuePhongs.DeleteOnSubmit(hoaDonThuePhong); db.SubmitChanges(); return(true); }
public bool CapNhatHoaDonThue(HoaDonThuePhong hoaDonThuePhong) { XoaHoaDonThuePhong(hoaDonThuePhong.MaHD); ThemHoaDonThue(hoaDonThuePhong); return(true); }
public bool ThemHoaDonThue(HoaDonThuePhong hoaDonThuePhong) { db.HoaDonThuePhongs.InsertOnSubmit(hoaDonThuePhong); db.SubmitChanges(); return(true); }
/* 0: TRỐNG * 1: ĐẶT TRƯỚC - CHỜ * 2: ĐANG Ở */ public void CapNhatTrangThaiPhong() { DateTime soNgayDuocPhepThue; DateTime ngayDatPhongTruocHienTai; DateTime ngayDatPhongTruocLonNhat = DateTime.Now; foreach (DatPhongTaiCho phieuDatPhong in datPhongBUS.HienThiDatPhongTaiCho()) { if (phieuDatPhong.TrangThaiDatPhong != "T")//chỉ phiếu đang ở hoặc đang chờ { //ngày hết hạn = ngày đặt + số ngày sẽ ở soNgayDuocPhepThue = phieuDatPhong.NgayDat.AddDays(Convert.ToDouble(phieuDatPhong.SoNgaySeThue)); //kiểm tra các phiếu đang chờ if (phieuDatPhong.TrangThaiDatPhong == "C") { ngayDatPhongTruocHienTai = phieuDatPhong.NgayDat.AddDays(Convert.ToDouble(phieuDatPhong.SoNgaySeThue)); /*kiểm tra tất cả phiếu đang CHỜ của các khách hàng. Lưu khách hàng có ngày chờ nhận phòng lớn nhất cho tới hiện tại * mục đích: xem xét xem 1 phòng nào đó có còn ai đang chờ - đặt trước hay ko*/ if (ngayDatPhongTruocHienTai > ngayDatPhongTruocLonNhat) { ngayDatPhongTruocLonNhat = ngayDatPhongTruocHienTai; } //kiểm tra các phiếu đặt phòng trước có bị hết hạn không(quá hạn ngày tới) if (DateTime.Now > phieuDatPhong.NgayToi) //ngày hiện tại lớn hơn ngày sẽ tới nhận phòng -> hủy phiếu. Cho kh kế tiếp thuê { phieuDatPhong.TrangThaiDatPhong = "T"; //thanh toán + hủy phiếu datPhongBUS.CapNhatTrangThaiCho1Phieu(phieuDatPhong); LayPhongQuaSoPhong(phieuDatPhong.SoPhong).TinhTrang = 0; //tình trạng phòng về TRỐNG db.SubmitChanges(); } } //kiểm tra các phiếu và phòng đang ở else if (phieuDatPhong.TrangThaiDatPhong == "O") { if (soNgayDuocPhepThue < DateTime.Now) //quá hạn -> tự động thanh toán { phieuDatPhong.TrangThaiDatPhong = "T"; //tình trạng phiếu về thanh toán LayPhongQuaSoPhong(phieuDatPhong.SoPhong).TinhTrang = 0; //phòng từ ĐANG Ở sẽ về TRỐNG datPhongBUS.CapNhatTrangThaiCho1Phieu(phieuDatPhong); db.SubmitChanges(); HoaDonThuePhong hdThanhToan = new HoaDonThuePhong(); hdThanhToan.MaHD = phieuDatPhong.MaKH + phieuDatPhong.SoPhong + rd.Next(999); hdThanhToan.MaKH = phieuDatPhong.MaKH; hdThanhToan.MaNV = "SYS001"; hdThanhToan.SoPhong = phieuDatPhong.SoPhong; hdThanhToan.NgayLap = DateTime.Now; hdThanhToan.NgayDatPhong = phieuDatPhong.NgayDat; hdThanhToan.TongTienThuePhong = LayPhongQuaSoPhong(phieuDatPhong.SoPhong).GiaTrenNgay *Convert.ToDecimal((DateTime.Now - hdThanhToan.NgayDatPhong.Value).TotalDays); hdThuePhongBUS.ThemHoaDonThue(hdThanhToan); } } } } //cập nhật lại danh sách phòng lần nữa Phong p; foreach (DatPhongTaiCho phieuDatPhong in datPhongBUS.HienThiDatPhongTaiCho()) { p = LayPhongQuaSoPhong(phieuDatPhong.SoPhong); if (phieuDatPhong.TrangThaiDatPhong == "O") { p.TinhTrang = 2; } else if (phieuDatPhong.TrangThaiDatPhong == "C") { p.TinhTrang = 1; } } db.SubmitChanges(); }