コード例 #1
0
        public void Nhap(int x, int y, ConsoleColor background_color, ConsoleColor text_color)
        {
            do
            {
                Console.BackgroundColor = background_color;
                Console.ForegroundColor = text_color;
                IHDNhapBLL   hdnhap   = new HDNhapBLL();
                INhanVienBLL nhanvien = new NhanVienBLL();
                INCC_BLL     nhacc    = new NCC_BLL();
                IMayTinhBLL  maytinh  = new MayTinhBLL();
                FormNhanVien fnv      = new FormNhanVien();
                FormNCC      fncc     = new FormNCC();
                FormMayTinh  fmt      = new FormMayTinh();
                NhanVienBLL  nvBLL    = new NhanVienBLL();
                NCC_BLL      nccBLL   = new NCC_BLL();
                ICTHDNhapBLL cthdnhap = new CTHDNhapBLL();
                HDNhapBLL    hdnBLL   = new HDNhapBLL();
                MayTinhBLL   mtBLL    = new MayTinhBLL();
                HDNhap       hdn      = new HDNhap();
                CTHDNhap     cthdn    = new CTHDNhap();
                HDNhap       hd;

                Console.Clear();
                IO.Box(0, 0, 28, 114, ConsoleColor.Black, ConsoleColor.White);
                IO.BoxTitle("                                        NHẬP THÔNG TIN HÓA ĐƠN NHẬP", x, y, 11, 112);
                IO.Writexy("Mã nhân viên:", x + 2, y + 3);
                IO.Writexy("Mã nhà CC:", x + 28, y + 3);
                IO.Writexy("Ngày nhập:", x + 55, y + 3);
                IO.Writexy("Tổng tiền:", x + 83, y + 3);
                IO.Writexy("--------------------------------------------------------------------------------------------------------------", x + 1, y + 4);
                IO.Writexy("Mã máy tính:", x + 2, y + 5);
                IO.Writexy("Tên máy tính:", x + 2, y + 6);
                IO.Writexy("Số lượng:", x + 28, y + 5);
                IO.Writexy("Đơn giá:", x + 55, y + 5);
                IO.Writexy("Thành tiền:", x + 83, y + 5);
                IO.Writexy("--------------------------------------------------------------------------------------------------------------", x + 1, y + 7);
                IO.Writexy("Nhập ! để thoát...", x + 4, y + 9);

                fnv.Hien(x, y + 11, nhanvien.LayDSNhanVien(), 5, 0);
                do
                {
                    Console.SetCursorPosition(x + 16, y + 3);
                    hdn.maNV = Console.ReadLine();
                    if (hdn.maNV == null)
                    {
                        IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                        IO.Writexy("Nhập lại mã nhân viên...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                    }
                    else if (hdn.maNV == "!")
                    {
                        return;
                    }
                    else
                    {
                        if (nvBLL.KT_MaNhanVien(CongCu.ChuanHoaMa(hdn.maNV)) == false)
                        {
                            IO.Writexy("Không tồn tại mã nhân viên này...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                            IO.Clear(x + 15, y + 3, 12, ConsoleColor.Black);
                        }
                        else
                        {
                            break;
                        }
                    }
                } while (hdn.maNV == null || nvBLL.KT_MaNhanVien(CongCu.ChuanHoaMa(hdn.maNV)) == false);
                IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                IO.Clear(x + 3, y + 9, 60, ConsoleColor.Black);
                fncc.Hien(x + 16, y + 11, nhacc.LayDSNCC(), 5, 0);
                do
                {
                    Console.SetCursorPosition(x + 39, y + 3);
                    hdn.maNCC = Console.ReadLine();
                    if (hdn.maNCC == null)
                    {
                        IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                        IO.Writexy("Nhập lại mã nhà cung cấp...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                    }
                    else
                    {
                        if (nccBLL.KT_MaNCC(CongCu.ChuanHoaMa(hdn.maNCC)) == false)
                        {
                            IO.Writexy("Không tồn tại mã nhà cung cấp này...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                            IO.Clear(x + 38, y + 3, 16, ConsoleColor.Black);
                        }
                        else
                        {
                            break;
                        }
                    }
                } while (hdn.maNCC == null || nccBLL.KT_MaNCC(CongCu.ChuanHoaMa(hdn.maNCC)) == false);
                IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                IO.Writexy("Nhập ngày nhập định dạng 'dd/MM/yyyy'...", x + 4, y + 9, ConsoleColor.Black, ConsoleColor.White);
                do
                {
                    Console.SetCursorPosition(x + 66, y + 3);
                    hdn.ngayNhap = Console.ReadLine();
                    if (hdn.ngayNhap == null || CongCu.CheckDate(hdn.ngayNhap) == false)
                    {
                        IO.Writexy("Nhập lại ngày nhập...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                        IO.Clear(x + 65, y + 3, 17, ConsoleColor.Black);
                    }
                } while (hdn.ngayNhap == null || CongCu.CheckDate(hdn.ngayNhap) == false);

                hdnhap.ThemHDNhap(hdn);

                while (true)
                {
                    hd          = hdnBLL.LayMaHDN(hdn.maNV, hdn.maNCC, hdn.ngayNhap);
                    cthdn.maHDN = hd.maHDN;

                    IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                    fmt.Hien(x + 11, y + 11, maytinh.LayDSMayTinh(), 5, 0);
                    do
                    {
                        IO.Clear(x + 14, y + 5, 12, ConsoleColor.Black);
                        Console.SetCursorPosition(x + 15, y + 5);
                        cthdn.maMT = Console.ReadLine();
                        if (cthdn.maMT == null)
                        {
                            IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                            IO.Writexy("Nhập lại mã máy tính...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                        }
                    } while (cthdn.maMT == null);
                    IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);

                    if (mtBLL.KT_MaMayTinh(CongCu.ChuanHoaMa(cthdn.maMT)) == true)
                    {
                        MayTinh Mt = mtBLL.LayMayTinh(CongCu.ChuanHoaMa(cthdn.maMT));
                        IO.Writexy(Mt.tenMT, x + 16, y + 6);
                        cthdn.tenMT = Mt.tenMT;
                    }
                    else
                    {
                        do
                        {
                            IO.Clear(x + 14, y + 6, 90, ConsoleColor.Black);
                            Console.SetCursorPosition(x + 16, y + 6);
                            cthdn.tenMT = Console.ReadLine();
                            if (cthdn.tenMT == null)
                            {
                                IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                                IO.Writexy("Nhập lại tên máy tính...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                            }
                        } while (cthdn.tenMT == null);
                    }

                    IO.Clear(x + 3, y + 9, 60, ConsoleColor.Black);
                    IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                    do
                    {
                        IO.Clear(x + 37, y + 5, 16, ConsoleColor.Black);
                        cthdn.soLuong = int.Parse(IO.ReadNumber(x + 38, y + 5));
                        if (cthdn.soLuong <= 0)
                        {
                            IO.Writexy("Nhập lại số lượng...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                            IO.Clear(x + 37, y + 5, 16, ConsoleColor.Black);
                        }
                    } while (cthdn.soLuong <= 0);
                    IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                    HienCT_N(x, y + 11, cthdnhap.LayDS_CTHDNhap(), 5, 0);
                    do
                    {
                        IO.Clear(x + 63, y + 5, 16, ConsoleColor.Black);
                        cthdn.donGia = double.Parse(IO.ReadNumber(x + 64, y + 5));
                        if (cthdn.donGia <= 0)
                        {
                            IO.Writexy("Nhập lại đơn giá...", x + 4, y + 8, ConsoleColor.Black, ConsoleColor.White);
                            IO.Clear(x + 63, y + 5, 16, ConsoleColor.Black);
                        }
                    } while (cthdn.donGia <= 0);

                    IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                    IO.Clear(x + 94, y + 5, 16, ConsoleColor.Black);
                    IO.Writexy(cthdn.thanhTien.ToString(), x + 95, y + 5);

                    cthdnhap.ThemCTHDNhap(cthdn);

                    MayTinh mt = mtBLL.LayMayTinh(CongCu.ChuanHoaMa(cthdn.maMT));
                    if (mtBLL.KT_MaMayTinh(cthdn.maMT) == true)
                    {
                        mtBLL.CongSoLuong(mt, cthdn.soLuong);
                    }
                    else
                    {
                        cthdn.soLuong = cthdn.soLuong;
                    }

                    IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                    Console.SetCursorPosition(x + 34, y + 8);
                    IO.Writexy("Nhập tiếp? (C/K)...", x + 4, y + 8);
                    ConsoleKeyInfo c = Console.ReadKey();
                    if (c.KeyChar != 'c')
                    {
                        break;
                    }
                }

                IO.Clear(x + 93, y + 5, 16, ConsoleColor.Black);
                IO.Writexy(hdnBLL.TTien(cthdn.maHDN).ToString(), x + 94, y + 3);
                hdn.tongTien = hdnBLL.TTien(cthdn.maHDN);

                IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                IO.Writexy("Enter để nhập, Esc để thoát...", x + 4, y + 8);
                Console.SetCursorPosition(x + 34, y + 8);
                ConsoleKeyInfo kt = Console.ReadKey();
                if (kt.Key == ConsoleKey.Escape)
                {
                    break;
                }
                else if (kt.Key == ConsoleKey.Enter)
                {
                    IO.Clear(x + 3, y + 8, 60, ConsoleColor.Black);
                    IO.Writexy("Hóa đơn nhập đã được thêm...", x + 4, y + 8);
                    hdnhap.XoaHDNhap(cthdn.maHDN);
                    hdnhap.ThemHDNhap(hdn);
                    Hien(x + 13, y + 11, hdnhap.LayDSHDNhap(), 5, 1);
                }
            } while (true);
        }