public void Nhap() { do { HoaDonBan hoadb = new HoaDonBan(); IFHoaDonBanBLL hdb = new HoaDonBanBLL(); HoaDonBanBLL hdbbll = new HoaDonBanBLL(); IFNhanVienBLL inv = new NhanVienBLL(); NhanVienBLL nvbll = new NhanVienBLL(); FormNhanVien fnv = new FormNhanVien(); FormHangHoa fhh = new FormHangHoa(); IFHangHoaBLL ihh = new HangHoaBLL(); HangHoaBLL hhbll = new HangHoaBLL(); HoaDonBan HDB; CTHoaDonBan cthdb = new CTHoaDonBan(); IFCTHoaDonBanBLL icthdn = new CTHoaDonBanBLL(); FormHoaDonNhap fhdn = new FormHoaDonNhap(); IFCTHoaDonNhapBLL ictn = new CTHoaDonNhapBLL(); Console.Clear(); IO.BoxTitle(" NHẬP THÔNG TIN HÓA ĐƠN BÁN", 1, 1, 14, 100); IO.Writexy("Mã nhân viên bán:", 5, 4); IO.Writexy("Ngày bán:", 40, 4); IO.Writexy("------------Nhập chi tiết hóa đơn bán----------------", 2, 5); IO.Writexy("Mã hàng:", 5, 6); IO.Writexy("Số lượng: ", 30, 6); IO.Writexy("Đơn vị tính:", 50, 6); IO.Writexy("Giá bán:", 70, 6); IO.Writexy("Thành tiền:", 5, 7); IO.Writexy("-----------------Tổng thanh toán----------------------", 2, 9); IO.Writexy("Tổng hóa đơn:", 5, 10); IO.Writexy("--------------------------------------------------------------------------------------------------", 2, 11); IO.Writexy("Enter để nhập, Esc để thoát, X để xem chi tiết...", 5, 12); fnv.Hien(1, 16, inv.XemDSNhanVien(), 5, 0); do { hoadb.manvban = int.Parse(IO.ReadNumber(24, 4)); if (hoadb.manvban < 0) { IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Nhập sai. Xin vui lòng nhập lại!", 5, 12); } else { if (nvbll.KiemTra(hoadb.manvban) == false) { IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Không tồn tại mã nhân viên này!", 5, 12); } else { break; } } } while (hoadb.manvban < 0 || nvbll.KiemTra(hoadb.manvban) == false); IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Enter để nhập, Esc để thoát, X để xem chi tiết...", 5, 12); do { hoadb.ngayban = IO.ReadString(50, 4); if (hoadb.ngayban == null) { IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Nhập sai. Xin vui lòng nhập lại!", 5, 12); } } while (hoadb.ngayban == null); IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Enter để nhập, Esc để thoát, X để xem chi tiết...", 5, 12); hdb.ThemHoaDonBan(hoadb); while (true) { HDB = hdbbll.ReturnKey(hoadb.manvban, hoadb.ngayban); cthdb.mahdb = HDB.mahdb; IO.Clear(5, 16, 99, ConsoleColor.Black); fhh.Hien(1, 16, ihh.XemDSHangHoa(), 5, 0); do { IO.Clear(13, 6, 5, ConsoleColor.Black); cthdb.mahang = int.Parse(IO.ReadNumber(14, 6)); if (cthdb.mahang < 0) { IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Nhập sai. Xin vui lòng nhập lại!", 5, 12); } else { if (hhbll.KiemTra(cthdb.mahang) == false) { IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Không tồn tại mã hàng này!", 5, 12); } else { break; } } } while (cthdb.mahang < 0 || hhbll.KiemTra(cthdb.mahang) == false); IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Enter để nhập, Esc để thoát, X để xem chi tiết...", 5, 12); do { IO.Clear(39, 6, 5, ConsoleColor.Black); cthdb.soluong = int.Parse(IO.ReadNumber(40, 6)); if (cthdb.soluong < 0) { IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Nhập sai. Xin vui lòng nhập lại!", 5, 12); } } while (cthdb.soluong < 0); IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Enter để nhập, Esc để thoát, X để xem chi tiết...", 5, 12); IO.Clear(5, 16, 99, ConsoleColor.Black); fhdn.HienCT(1, 16, ictn.XemDSCTHoaDonNhap(), 5, 0); do { IO.Clear(62, 6, 5, ConsoleColor.Black); cthdb.donvi = IO.ReadString(63, 6); if (cthdb.donvi == null) { IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Nhập sai. Xin vui lòng nhập lại!", 5, 12); } } while (cthdb.donvi == null); IO.Clear(5, 12, 80, ConsoleColor.Black); IO.Writexy("Enter để nhập, Esc để thoát, X để xem chi tiết...", 5, 12); HangHoa ghh = hhbll.ReturnGiaBan(cthdb.mahang); IO.Writexy(ghh.giaban.ToString(), 79, 6); cthdb.giaban = ghh.giaban; IO.Writexy(cthdb.thanhtien.ToString(), 17, 7); icthdn.ThemCTHoaDonBan(cthdb); HangHoa hh = ihh.LayHangHoa(cthdb.mahang); if (hhbll.KiemTra(cthdb.mahang) == true) { hhbll.TruSL(hh, cthdb.soluong); } else { cthdb.soluong = cthdb.soluong; } IO.Writexy("Nhấn B/b để nhập tiếp. Nhấn phím bất kỳ để dừng nhập!", 5, 8); ConsoleKeyInfo b = Console.ReadKey(); if (b.KeyChar != 'b') { break; } } IO.Writexy(hdbbll.TinhTong(cthdb.mahdb).ToString(), 19, 10); hoadb.tongtien = hdbbll.TinhTong(cthdb.mahdb); Console.SetCursorPosition(55, 12); ConsoleKeyInfo kt = Console.ReadKey(); if (kt.Key == ConsoleKey.Escape) { HienChucNang(); } else if (kt.Key == ConsoleKey.X) { Hien(1, 16, hdb.XemDSHoaDonBan(), 5, 1); } else if (kt.Key == ConsoleKey.Enter) { hdb.XoaHoaDonBan(cthdb.mahdb); hdb.ThemHoaDonBan(hoadb); Hien(1, 16, hdb.XemDSHoaDonBan(), 5, 0); } } while (true); }