public DonGia LayDonGiaBangMaSanPham(string maSP)
        {
            DonGia donGia = new DonGia();
             DataTable table;

             try
             {
                 table = this.donGiaDAL.LayDonGiaBangMaSanPham(maSP);

                 foreach (DataRow row in table.Rows)
                 {
                     donGia.MaDonGia = row["MaDonGia"].ToString();
                     donGia.GiaNhap = Convert.ToDecimal(row["GiaNhap"].ToString());
                     donGia.GiaXuat = Convert.ToDecimal(row["GiaXuat"].ToString());

                 }

                 return donGia;
             }
             catch (System.Exception ex)
             {
                 Console.WriteLine("Message= {1}", ex.Message);
             }
             return null;
        }
 public bool CapNhatDonGia(DonGia donGia)
 {
     try
     {
         return this.donGiaDAL.CapNhatDonGia(donGia);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message= {1}", ex.Message);
     }
     return false;
 }
 public bool CapNhatMatHang(MatHang matHang, CauHinhDienThoai cauhinh, string maNhaCC,
    string GhiChuNhaCC, DonGia donGia, HinhAnh hinh)
 {
     try
     {
         return this._MatHangDAL.CapNhatMatHang(matHang, cauhinh, maNhaCC,
     GhiChuNhaCC, donGia, hinh);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message= {1}", ex.Message);
     }
     return false;
 }
 public DataTable LayMaDonGiaBangMaSanPham(DonGia dongia)
 {
     try
     {
         SqlParameter[] para = new SqlParameter[1];
         para[0] = new SqlParameter("@p_MaMatHang", dongia.MaMatHang);
         DataTable dg = LoadDataTable("LayMaDonGia_L", para);
         return dg;
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message= {1}", ex.Message);
     }
     return null;
 }
        public bool CapNhatMatHang(MatHang matHang, CauHinhDienThoai cauhinh, string maNhaCC,
           string GhiChuNhaCC, DonGia donGia, HinhAnh hinh)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[21];
                para[0] = new SqlParameter("@p_MaMatHang", matHang.MaMatHang);
                para[1] = new SqlParameter("@p_TenMatHang", matHang.TenMatHang);
                para[2] = new SqlParameter("@p_MaLoaiMatHang", matHang.MaLoaiMatHang);
                para[3] = new SqlParameter("@p_MaNSX", matHang.MaNhaSanXuat);
                para[4] = new SqlParameter("@p_SoLuongTon", matHang.SoLuong);
                para[5] = new SqlParameter("@p_MaNCC", maNhaCC);
                para[6] = new SqlParameter("@p_GhiChuNhaCC", GhiChuNhaCC);
                para[7] = new SqlParameter("@p_GiaNhap", donGia.GiaNhap);
                para[8] = new SqlParameter("@p_GiaXuat", donGia.GiaXuat);
                para[9] = new SqlParameter("@p_ThoiGianBaoHanh", matHang.ThoiGianBaoHanh);
                para[10] = new SqlParameter("@p_Mota", matHang.MoTa);
                para[11] = new SqlParameter("@p_GhiChu", matHang.GhiChu);

                para[12] = new SqlParameter("@p_KichThuoc", cauhinh.KichThuocManHinh);
                para[13] = new SqlParameter("@p_HeDieuHanh", cauhinh.HeDieuHanh);
                para[14] = new SqlParameter("@p_Ram", cauhinh.Ram);
                para[15] = new SqlParameter("@p_MaMau", cauhinh.MaMauSac);
                para[16] = new SqlParameter("@p_Pin", cauhinh.DungLuongPin);
                para[17] = new SqlParameter("@p_MaCPU", cauhinh.MaCPU);
                para[18] = new SqlParameter("@p_BoNho", cauhinh.BoNho);
                para[19] = new SqlParameter("@p_SoSim", cauhinh.SoSim);

                para[20] = new SqlParameter("@p_NoiDung", hinh.NoiDungHinhAnh);

                int result = this.ExecuteNonQuery("MATHANG_Upd", para);
                if (result != 0)
                {
                    return true;
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message= {1}", ex.Message);
            }

            return false;
        }
        public bool CapNhatDonGia(DonGia donGia)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[3];
                para[0] = new SqlParameter("@p_MaDonGia", donGia.MaDonGia);
                para[1] = new SqlParameter("@p_GiaNhap", donGia.GiaNhap);
                para[2] = new SqlParameter("@p_GiaXuat", donGia.GiaXuat);

                int result = this.ExecuteNonQuery("DONGIA_Upd", para);
                if (result != 0)
                {
                    return true;
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message= {1}", ex.Message);
            }

            return false;
        }
 public DataTable LayMaDonGiaBangMaSanPham(DonGia dongia)
 {
     try
      {
          return this.donGiaDAL.LayMaDonGiaBangMaSanPham(dongia);
      }
      catch (System.Exception ex)
      {
          Console.WriteLine("Message= {1}", ex.Message);
      }
      return null;
 }
 public DataTable TimKiemDonGia(DonGia donGia)
 {
     try
     {
         return this.donGiaDAL.TimKiemDonGia(donGia);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message= {1}", ex.Message);
     }
     return null;
 }
 public string ThemDonGiaVaLayMaDonGia(DonGia dongia)
 {
     try
      {
          return this.donGiaDAL.ThemDonGiaVaLayMaDonGia(dongia);
      }
      catch (System.Exception ex)
      {
          Console.WriteLine("Message= {1}", ex.Message);
      }
      return null;
 }
        private void sbThemSP_Click(object sender, EventArgs e)
        {
            //Mat Hang
            HinhAnh hinh = new HinhAnh();
            MatHang mh = new MatHang();

            hinh.NoiDungHinhAnh = ImageToBase64(peHinhAnh.Image);
            if (this.teTenSanPham.Text.Equals(""))
            {
                MessageBox.Show("Không được để trống tên sản phẩm");
                return;
            }

            mh.TenMatHang = this.teTenSanPham.Text;
            if (this.lueLoaiSanPham.EditValue == null)
            {
                MessageBox.Show("Không được để trống loại sản phẩm");
                return;
            }

            mh.MaLoaiMatHang = this.lueLoaiSanPham.EditValue == null ? "" : this.lueLoaiSanPham.EditValue.ToString();

            if (this.lueNhaSanXuat.EditValue == null)
            {
                MessageBox.Show("Không được để trống tên nhà sản xuất");
                return;
            }

            mh.MaNhaSanXuat = this.lueNhaSanXuat.EditValue == null ? "" : this.lueNhaSanXuat.EditValue.ToString();

            /* if (this.teSoLuongTon.Text.Equals(""))
             {
                 MessageBox.Show("Không được để trống số lượng");
                 return;
             }

             mh.SoLuong = Convert.ToInt32(this.teSoLuongTon.Text);
             */
            if (this.teThoiGianBaoHanh.Text.Equals(""))
            {
                MessageBox.Show("Không được để trống thời gian bảo hành");
                return;
            }

            mh.ThoiGianBaoHanh = Convert.ToInt32(this.teThoiGianBaoHanh.Text);

            ThamSo ts = new ThamSo();
            ts.TenThamSo = "ThoiGianBaoHanhToiThieu";
            int tgBaoHanhNhoNhat = (int)Convert.ToDecimal(new ThamSoBUS().LayGiaTriThamSo(ts));
            if (mh.ThoiGianBaoHanh < tgBaoHanhNhoNhat)
            {
                MessageBox.Show("Thời gian bảo hành không được nhỏ hơn " + tgBaoHanhNhoNhat.ToString() + " tháng");
                return;
            }

            mh.MoTa = this.memMoTa.Text;
            mh.GhiChu = this.memGhiChu.Text;

            //Nha Cung cap
            string maNhaCC = "";
            string ghiChuNhaCC = "";

            if (this.lueNhaCC.EditValue == null)
            {
                MessageBox.Show("Không được để trống nhà cung cấp");
                return;
            }

            maNhaCC = this.lueNhaCC.EditValue == null ? "" : this.lueNhaCC.EditValue.ToString();

            ghiChuNhaCC = this.memGhiChuNCC.Text;

            //Don Gia
            DonGia dg = new DonGia();

            if (this.teGiaNhap.Text.Equals(""))
            {
                MessageBox.Show("Không được để trống giá nhập");
                return;
            }

            dg.GiaNhap = Convert.ToDecimal(this.teGiaNhap.Text);

            if (this.teGiaXuat.Text.Equals(""))
            {
                MessageBox.Show("Không được để trống giá xuất");
                return;
            }

            dg.GiaXuat = Convert.ToDecimal(this.teGiaXuat.Text);

            // Cau Hinh Dien Thoai

            CauHinhDienThoai chdt = new CauHinhDienThoai();

            //Mobile
            if (this.groupCauHinhDienThoai.Enabled == true)
            {
                if (this.teKichThuocManHinh.Text.Equals(""))
                {
                    MessageBox.Show("Không được để trống kích thước màn hình");
                    return;
                }

                chdt.KichThuocManHinh = Convert.ToDecimal(this.teKichThuocManHinh.Text);
                ts = new ThamSo();
                ts.TenThamSo = "KichThuocManHinhToiThieu";
                decimal kichThuocManHinhToiThieu = Convert.ToDecimal(new ThamSoBUS().LayGiaTriThamSo(ts));
                if (chdt.KichThuocManHinh < kichThuocManHinhToiThieu)
                {
                    MessageBox.Show("Kích thước màn hình không được nhỏ hơn " + kichThuocManHinhToiThieu.ToString() + " Inch");
                    return;
                }

                chdt.HeDieuHanh = this.teHeDieuHanh.Text;
                chdt.Ram = this.teRam.Text == "" ? 1 : Convert.ToInt32(this.teRam.Text);

                chdt.MaMauSac = this.lueMaSac.EditValue == null ? "" : this.lueMaSac.EditValue.ToString();

                chdt.DungLuongPin = this.tePIN.Text == "" ? 1 : Convert.ToInt32(this.tePIN.Text);
                chdt.MaCPU = this.lueCPU.EditValue == null ? "" : this.lueCPU.EditValue.ToString();
                chdt.BoNho = this.teBoNho.Text == "" ? 1 : Convert.ToInt32(this.teBoNho.Text);
                chdt.SoSim = this.teSim.Text == "" ? 1 : Convert.ToInt32(this.teSim.Text);

            }
            else// Other SP
            {
                // do nothing
            }

            if (StaticVariables.gMatHang != null)//Update
            {
                mh.MaMatHang = StaticVariables.gMatHang.MaMatHang;
                if (this.matHangBUS.CapNhatMatHang(mh, chdt, maNhaCC, ghiChuNhaCC, dg, hinh))
                {
                    MessageBox.Show("Cập nhật sản phẩm thành công", "Thông báo", MessageBoxButtons.OK);
                }
                else
                {
                    MessageBox.Show("Cập nhật sản phẩm thất bại", "Thông báo", MessageBoxButtons.OK);
                }

            }
            else//Add
            {
                if (this.matHangBUS.ThemMatHang(mh, chdt, maNhaCC, ghiChuNhaCC, dg, hinh))
                {
                    MessageBox.Show("Thêm sản phẩm thành công", "Thông báo", MessageBoxButtons.OK);
                }
                else
                {
                    MessageBox.Show("Thêm sản phẩm thất bại", "Thông báo", MessageBoxButtons.OK);
                }
            }
        }
        private void LoadData()
        {
            //ConboBox LoaiMatHang
            DataTable table = (new LoaiMatHangBUS().LoadComBoBox());
            this.lueLoaiSanPham.Properties.DataSource = table;
            this.lueLoaiSanPham.Properties.DisplayMember = "TenLoaiMatHang";
            this.lueLoaiSanPham.Properties.ValueMember = "MaLoaiMatHang";
            this.lueLoaiSanPham.Properties.NullText = "Chọn Loại Sản Phẩm";
            this.lueLoaiSanPham.Properties.Columns.Add(
                new DevExpress.XtraEditors.Controls.LookUpColumnInfo() { FieldName = "TenLoaiMatHang" });

            //ComboBox NhaSanXuat
            DataTable table1 = (new NhaSanXuatBUS().LoadComBoBox());
            this.lueNhaSanXuat.Properties.DataSource = table1;
            this.lueNhaSanXuat.Properties.DisplayMember = "TenNSX";
            this.lueNhaSanXuat.Properties.ValueMember = "MaNSX";
            this.lueNhaSanXuat.Properties.NullText = "Chọn Nhà Sản Xuất";
            this.lueNhaSanXuat.Properties.Columns.Add(
                new DevExpress.XtraEditors.Controls.LookUpColumnInfo() { FieldName = "TenNSX" });

            //ComboBox NhaCC
            DataTable table5 = (new NhaCungCapBUS().LoadComBoBox());
            this.lueNhaCC.Properties.DataSource = table5;
            this.lueNhaCC.Properties.DisplayMember = "TenNhaCungCap";
            this.lueNhaCC.Properties.ValueMember = "MaNhaCungCap";
            this.lueNhaCC.Properties.NullText = "Chọn Nhà Cung Cấp";
            this.lueNhaCC.Properties.Columns.Add(
                new DevExpress.XtraEditors.Controls.LookUpColumnInfo() { FieldName = "TenNhaCungCap" });

            //ComboBox CPU
            DataTable table2 = (new CPUBUS().LoadComBoBox());
            this.lueCPU.Properties.DataSource = table2;
            this.lueCPU.Properties.DisplayMember = "TenCPU";
            this.lueCPU.Properties.ValueMember = "MaCPU";
            this.lueCPU.Properties.NullText = "Chọn CPU";
            this.lueCPU.Properties.Columns.Add(
                new DevExpress.XtraEditors.Controls.LookUpColumnInfo() { FieldName = "TenCPU" });

            //ComboBox CPU
            DataTable table3 = (new MauSacBUS().LoadComBoBox());
            this.lueMaSac.Properties.DataSource = table3;
            this.lueMaSac.Properties.DisplayMember = "TenMau";
            this.lueMaSac.Properties.ValueMember = "MaMau";
            this.lueMaSac.Properties.NullText = "Chọn Màu Sắc";
            this.lueMaSac.Properties.Columns.Add(
                new DevExpress.XtraEditors.Controls.LookUpColumnInfo() { FieldName = "TenMau" });

            //Load Data if Update

            if (StaticVariables.gMatHang != null)
            {
                matHang = StaticVariables.gMatHang;

                this.teTenSanPham.Text = matHang.TenMatHang;
                this.lueLoaiSanPham.EditValue = new LoaiMatHangBUS().LayMaLoaiMatHang(matHang.MaLoaiMatHang);
                this.lueNhaSanXuat.EditValue = new NhaSanXuatBUS().LayMaNhaSanXuat(matHang.MaNhaSanXuat);

                this.teThoiGianBaoHanh.Text = matHang.ThoiGianBaoHanh.ToString();
                this.memMoTa.Text = matHang.MoTa;
                this.memGhiChu.Text = matHang.GhiChu;

                CauHinhDienThoai cauHinhDT = new CauHinhDienThoai();
                cauHinhDT = new CauHinhDienThoaiBUS().LayCauHinhByMaMatHang(matHang.MaMatHang);

                this.teKichThuocManHinh.Text = cauHinhDT.KichThuocManHinh.ToString();
                this.teHeDieuHanh.Text = cauHinhDT.HeDieuHanh;
                this.teRam.Text = cauHinhDT.Ram.ToString();
                this.lueMaSac.EditValue = cauHinhDT.MaMauSac;
                this.tePIN.Text = cauHinhDT.DungLuongPin.ToString();
                this.lueCPU.EditValue = cauHinhDT.MaCPU;
                this.teBoNho.Text = cauHinhDT.BoNho.ToString();
                this.teSim.Text = cauHinhDT.SoSim.ToString();

                this.lueNhaCC.EditValue = new NhaCungCapBUS().LayMaCCBangMaSanPham(matHang.MaMatHang);
                this.memGhiChuNCC.Text = new NhaCungCapBUS().LayGhiChuBangMaSanPham(matHang.MaMatHang);

                DonGia donGia = new DonGia();
                donGia = new DonGiaBUS().LayDonGiaBangMaSanPham(matHang.MaMatHang);

                this.teGiaNhap.Text = donGia.GiaNhap.ToString();
                this.teGiaXuat.Text = donGia.GiaXuat.ToString();

                //Load hình
                HinhAnhBUS _HinhAnhBUS = new HinhAnhBUS();
                DataTable dt = _HinhAnhBUS.LayHinhMatHang(matHang.MaMatHang);
                if (dt != null && dt.Rows.Count > 0)
                {
                    this.peHinhAnh.Image = this.Base64ToImage(dt.Rows[0].ItemArray[0].ToString());
                    peHinhAnh.Invalidate();
                }
            }
        }
        public DataTable TimKiemDonGia(DonGia donGia)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[3];
                para[0] = new SqlParameter("@p_MaDonGia", donGia.MaDonGia);
                para[1] = new SqlParameter("@p_GiaNhap", donGia.GiaNhap);
                para[2] = new SqlParameter("@p_GiaXuat", donGia.GiaXuat);

                DataTable lstDonGia = LoadDataTable("DONGIA_Search", para);

                return lstDonGia;
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message= {1}", ex.Message);
            }
            return null;
        }
        //them don gia voi gia tri tra ve la ma don gia
        public string ThemDonGiaVaLayMaDonGia(DonGia donGia)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[2];
                para[0] = new SqlParameter("@p_GiaNhap", donGia.GiaNhap);
                para[1] = new SqlParameter("@p_GiaXuat", donGia.GiaXuat);

                DataTable dt = this.LoadDataTable("DONGIA_Ins", para);
                if (dt != null)
                {
                    return dt.Rows[0].ItemArray[1].ToString();
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message= {1}", ex.Message);
            }

            return null;
        }
        private void sbLuuDonGia_Click(object sender, EventArgs e)
        {
            DataTable DanhSachMatHang = gcDanhSachMatHang.DataSource as DataTable;
            DataTable DanhSachNhaCungCap = gcDanhSachNhaCungCap.DataSource as DataTable;
            if (DanhSachMatHang != null && DanhSachMatHang.Rows.Count > 0
                && DanhSachNhaCungCap != null && DanhSachNhaCungCap.Rows.Count > 0)
            {
                int luachonmathang = gvDanhSachMatHang.GetSelectedRows()[0];
                int luachonnhacungcap = gvDanhSachNhaCungCap.GetSelectedRows()[0];
                if (luachonmathang != -1 && luachonnhacungcap != -1)
                {
                    DonGia dg = new DonGia();
                    dg.MaMatHang = DanhSachMatHang.Rows[luachonmathang].ItemArray[0].ToString();
                    DataTable DanhSachMaDonGia = _DonGiaBUS.LayMaDonGiaBangMaSanPham(dg);

                    //xoa chi tiet nha cung cap trong bang chi tiet nha cung cap
                    _NhaCungCapBUS.XoaChiTietNhaCungCap(dg.MaMatHang);

                    foreach (DataRow dr in DanhSachMaDonGia.Rows)
                    {
                        _DonGiaBUS.XoaDonGia(dr.ItemArray[0].ToString());
                    }

                    DataTable DanhSachDonGia = gcChiTietDonGia.DataSource as DataTable;
                    if (DanhSachDonGia != null && DanhSachDonGia.Rows.Count > 0)
                    {
                        foreach (DataRow dr in DanhSachDonGia.Rows)
                        {
                            DonGia dg2 = new DonGia();
                            dg2.GiaNhap= Convert.ToDecimal(dr.ItemArray[4].ToString());
                            dg2.GiaXuat = Convert.ToDecimal(dr.ItemArray[5].ToString());
                            string madongia = _DonGiaBUS.ThemDonGiaVaLayMaDonGia(dg2);

                            ChiTietNhaCungCap ctncc = new ChiTietNhaCungCap();
                            ctncc.MaDonGia = madongia;
                            ctncc.GhiChu = "";
                            ctncc.MaMatHang = dr.ItemArray[0].ToString();
                            ctncc.MaNhaCungCap = dr.ItemArray[2].ToString();
                            _NhaCungCapBUS.ThemChiTietNhaCungCap(ctncc);
                        }
                        MessageBox.Show("Lưu Thành Công", "Thông Báo",MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                        MessageBox.Show("Đơn giá trống nhưng vẫn lưu thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }