private void btn_Them_Click(object sender, EventArgs e)
 {
     HangGiaCongDTO hgc = new HangGiaCongDTO();
     if (txt_TenHangGiaCong.Text == "")
         MessageBox.Show("Chưa nhập Tên hàng gia công");
     else if (txt_DonGiaGiaCong.Text == "")
         MessageBox.Show("Chưa nhập đơn giá gia công");
     else
     {
         hgc.TenHangGiaCong = txt_TenHangGiaCong.Text;
         hgc.DonGiaGiaCong = uint.Parse(txt_DonGiaGiaCong.Text);
         if (HangGiaCongBUS.ThemHangGiaCong(hgc))
         {
             DanhSachHangGiaCong_Load(sender, e);
             int num = dgv_DanhSachHangGiaCong.Rows.Count;
             mahanggiacong = Convert.ToUInt32(dgv_DanhSachHangGiaCong.Rows[num - 2].Cells[0].Value);
             txt_MaHangGiaCong.Text = Convert.ToString(mahanggiacong);
             MessageBox.Show("Thêm thành công");
         }
         else
             MessageBox.Show("Thêm thất bại");
     }
 }
 private void btn_CapNhat_Click(object sender, EventArgs e)
 {
     HangGiaCongDTO hgc = new HangGiaCongDTO();
     hgc.MaHangGiaCong = mahanggiacong;
     if (hgc.MaHangGiaCong != 0)
         if (txt_TenHangGiaCong.Text == "")
             MessageBox.Show("Chưa nhập Tên hàng gia công");
         else if (txt_DonGiaGiaCong.Text == "")
             MessageBox.Show("Chưa nhập đơn giá hàng gia công");
         else
         {
             hgc.TenHangGiaCong = txt_TenHangGiaCong.Text;
             hgc.DonGiaGiaCong = uint.Parse(txt_DonGiaGiaCong.Text);
             if (HangGiaCongBUS.CapNhatHangGiaCong(hgc))
             {
                 DanhSachHangGiaCong_Load(sender, e);
                 MessageBox.Show("Cập nhật thành công");
             }
             else
                 MessageBox.Show("Cập nhật thất bại");
         }
     else
         MessageBox.Show("Bạn chưa chọn hàng gia công để cập nhật lại thông tin");
 }
 private void btn_Xoa_Click(object sender, EventArgs e)
 {
     HangGiaCongDTO hgc = new HangGiaCongDTO();
     hgc.MaHangGiaCong = mahanggiacong;
     if (hgc.MaHangGiaCong != 0)
     {
         if (HangGiaCongBUS.XoaHangGiaCong(hgc))
         {
             DanhSachHangGiaCong_Load(sender, e);
             TaoMoi();
             MessageBox.Show("Xóa thành công");
         }
         else
             MessageBox.Show("Xoá thất bại");
     }
     else
         MessageBox.Show("Bạn chưa chọn hàng gia công để xóa");
 }
        private void dgv_ChiTietPhieuHangGiaCong_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            stt = e.RowIndex;
            dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[0].Value = (stt + 1).ToString();
            if (dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[1].Value == null)
                dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[3].ReadOnly = true;
            else
            {
                dgv_ChiTietPhieuHangGiaCong.Rows[stt + 1].ReadOnly = true;
                uint mahanggiacong;
                try
                {
                    mahanggiacong = Convert.ToUInt32(dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[1].Value);
                }
                catch
                {
                    MessageBox.Show("Mã hàng gia công phải là số nguyên dương và không được để trống!!");
                    return;
                }
                if (dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[3].Value == null)
                    ktra_soluong = false;

                for (int i = 0; i < dgv_ChiTietPhieuHangGiaCong.Rows.Count - 1; i++)
                    if (Convert.ToUInt32(dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[1].Value) == Convert.ToUInt32(dgv_ChiTietPhieuHangGiaCong.Rows[i].Cells[1].Value) && i != stt)
                    {
                        ktra_trungmahanggiacong = false;
                        ktra_mahanggiacong = false;
                        MessageBox.Show("Hàng gia công trên đã tồn tại trong danh sách!!");
                        break;
                    }
                    else
                        ktra_trungmahanggiacong = true;

                if (ktra_trungmahanggiacong)
                {
                    HangGiaCongDTO hgc = new HangGiaCongDTO();
                    hgc.MaHangGiaCong = mahanggiacong;
                    DataTable dt = HangGiaCongDAO.SelectHangGiaCongByMaHangGiaCong(hgc);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[2].Value = Convert.ToString(dt.Rows[0]["TenHangGiaCong"]);
                        dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[4].Value = Convert.ToString(dt.Rows[0]["DonGiaGiaCong"]);
                        dongia = Convert.ToUInt32(dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[4].Value);
                        dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[3].ReadOnly = false;
                        ktra_mahanggiacong = true;
                    }
                    else
                    {
                        MessageBox.Show("Mã hàng gia công trên không có trong danh sách hàng gia công!!");
                        ktra_mahanggiacong = false;
                    }
                }

                if (dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[3].Value != null)
                {
                    try
                    {
                        soluong = Convert.ToUInt32(dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[3].Value);
                    }
                    catch
                    {
                        MessageBox.Show("Số lượng phải là số nguyên dương và không được để trống!!");
                        return;
                    }
                    if (soluong == 0)
                    {
                        MessageBox.Show("Số lượng phải là số nguyên dương và không được để trống!!");
                        ktra_soluong = false;
                    }
                    else
                        ktra_soluong = true;
                }

                if (ktra_mahanggiacong && ktra_soluong)
                {
                    ktra_chitietphieuhanggiacong = true;
                    long thanhtien = soluong * dongia;
                    dgv_ChiTietPhieuHangGiaCong.Rows[stt].Cells[5].Value = Convert.ToString(thanhtien);
                    dgv_ChiTietPhieuHangGiaCong.Rows[stt + 1].ReadOnly = false;
                    dgv_ChiTietPhieuHangGiaCong.Rows[dgv_ChiTietPhieuHangGiaCong.Rows.Count - 1].Cells[3].ReadOnly = true;
                }
                else
                    ktra_chitietphieuhanggiacong = false;
                if (ktra_chitietphieuhanggiacong && ktra_thogiacong)
                    btn_LapPhieu.Enabled = true;
                else
                    btn_LapPhieu.Enabled = false;
            }

            long tongcong = 0;
            for (int i = 0; i < dgv_ChiTietPhieuHangGiaCong.Rows.Count - 1; i++)
            {
                tongcong += Convert.ToInt64(dgv_ChiTietPhieuHangGiaCong.Rows[i].Cells[5].Value);
            }
            txt_TongCong.Text = tongcong.ToString();
        }
 public static bool ThemHangGiaCong(HangGiaCongDTO hgc)
 {
     HangGiaCongDAO.Insert(hgc);
     return true;
 }
 public static bool XoaHangGiaCong(HangGiaCongDTO hgc)
 {
     HangGiaCongDAO.Delete(hgc);
     return true;
 }
 public static bool CapNhatHangGiaCong(HangGiaCongDTO hgc)
 {
     HangGiaCongDAO.Update(hgc);
     return true;
 }
 public static void Update(HangGiaCongDTO hgc)
 {
     string sql = "Update HANGGIACONG set TenHangGiaCong =('" + hgc.TenHangGiaCong + "'), DonGiaGiaCong =('" + hgc.DonGiaGiaCong + "') where MaHangGiaCong =" + hgc.MaHangGiaCong + "";
     DataBase.ExcuNonQuery(sql);
 }
 public static DataTable SelectHangGiaCongByMaHangGiaCong(HangGiaCongDTO hgc)
 {
     string sql = "select * from HANGGIACONG where MaHangGiaCong = " + hgc.MaHangGiaCong;
     return DataBase.ExcuQuery(sql);
 }
 public static void Insert(HangGiaCongDTO hgc)
 {
     string sql = "insert into HANGGIACONG(TenHangGiaCong, DonGiaGiaCong) values ('" + hgc.TenHangGiaCong + "', " + hgc.DonGiaGiaCong + ")";
     DataBase.ExcuNonQuery(sql);
 }
 public static void Delete(HangGiaCongDTO hgc)
 {
     string sql = "delete from HANGGIACONG where MaHangGiaCong = " + hgc.MaHangGiaCong + "";
     DataBase.ExcuNonQuery(sql);
 }