// getById
        public IList<DocCheckProductDetail> getDocCheckProductDetailByDCodeAndPName(object _dCode,string _pName)
        {
            IList<DocCheckProductDetail> docCheckProductDetails = new List<DocCheckProductDetail>();
            DocCheckProductDetail docCheckProductDetail = null;

            try
            {
                Conn = OpenConn();
                sb = new StringBuilder();
                sb.Append(" select d.ID,d.DCode,d.PCode,d.NumProduct,d.CreateDate ");
                sb.Append(" from DocCheckProductDetails d,Products p");
                sb.Append(" where d.PCode  = p.BarCode");
                sb.Append(" and  d.DCode='" + _dCode + "'");
                sb.Append(" and  p.Name like '%" + _pName + "%'");

                string sql = "";
                sql = sb.ToString();

                com = new SqlCeCommand();
                com.Connection = Conn;
                com.CommandText = sql;
                dr = com.ExecuteReader();
                {

                    DataTable dt = new DataTable();
                    dt.Load(dr);

                    foreach (DataRow ds in dt.Rows)
                    {
                        docCheckProductDetail = new DocCheckProductDetail();
                        docCheckProductDetail.ID = Convert.ToInt32(ds[0].ToString());
                        DocCheckProduct docCheckProduct = getDocCheckProductByCode(Convert.ToString(ds[1].ToString()));
                        docCheckProductDetail.DocCheckProduct = docCheckProduct;
                        Product product = getByBarCode(Convert.ToString(ds[2].ToString()));
                        docCheckProductDetail.Product = product;
                        docCheckProductDetail.NumProduct = Convert.ToInt32(ds[3].ToString());
                        docCheckProductDetail.CreateDate = Convert.ToDateTime(ds[4].ToString());
                        docCheckProductDetails.Add(docCheckProductDetail);

                    }

                }
                dr.Close();

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Conn.Close();
            }
            finally
            {
                Conn.Close();
            }

            return docCheckProductDetails;
        }
        public bool saveDocCheckProductDetail(DocCheckProductDetail docCheckProductDetail)
        {
            bool result = false;
            try
            {

                Conn = OpenConn();

                sb = new StringBuilder();
                sb.Append("INSERT INTO DocCheckProductDetails(DCode,PCode,PName,PUnit,NumProduct,CreateDate)");
                sb.Append(" VALUES (@DCode,@PCode,@PName,@PUnit,@NumProduct,@CreateDate)");

                string sqlAdd;
                sqlAdd = sb.ToString();

                tr = Conn.BeginTransaction();
                com = new SqlCeCommand();
                com.CommandText = sqlAdd;
                com.CommandType = CommandType.Text;
                com.Connection = Conn;
                com.Transaction = tr;
                com.Parameters.Clear();
                com.Parameters.Add("@DCode", SqlDbType.NVarChar).Value = docCheckProductDetail.DocCheckProduct.Code;
                com.Parameters.Add("@PCode", SqlDbType.NVarChar).Value = docCheckProductDetail.Product.BarCode;
                com.Parameters.Add("@PName", SqlDbType.NVarChar).Value = docCheckProductDetail.Product.Name;
                com.Parameters.Add("@PUnit", SqlDbType.NVarChar).Value = docCheckProductDetail.Product.Unit;
                com.Parameters.Add("@NumProduct", SqlDbType.NVarChar).Value = docCheckProductDetail.NumProduct;
                com.Parameters.Add("@CreateDate", SqlDbType.DateTime).Value = DateTime.Now;
                com.ExecuteNonQuery();

                tr.Commit();
                result = true;

            }
            catch (Exception ex)
            {

                tr.Rollback();
                Conn.Close();
                result = false;
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Conn.Close();
            }

            return result;
        }
        private void cmdSave_Click(object sender, EventArgs e)
        {
            ProductService  service = new ProductService();
            Product product  = null;
            DocCheckProductDetail docCheckProductDetail = new DocCheckProductDetail();

            if (this.docCheckProduct != null)
            {
                docCheckProductDetail.DocCheckProduct = this.docCheckProduct;
                mc4.DocCheckProduct _docCheckProduct = new mc4.DocCheckProduct();
                _docCheckProduct = new DocCheckProduct();
                _docCheckProduct = service.getDocCheckProductByCode(this.docCheckProduct.Code);
                if (_docCheckProduct == null)
                {
                    bool saveDocCheck = service.saveDocCheckProduct(this.docCheckProduct);
                    if (saveDocCheck)
                    {
                        Console.WriteLine("Save Compate :");
                    }
                }

            }
            else {
                MessageBox.Show("��س����͡�Ţ����͡��� !!! ", "����͹");
                return;
            }

            if (!(this.txtBarCode.Text.Trim().Equals("")))
            {
                  product = service.getByBarCode(this.txtBarCode.Text.Trim());
                  if (product != null)
                  {
                      docCheckProductDetail.Product = product;
                  }

            }
            else
            {
                MessageBox.Show("��س����͡������ !!! ", "����͹");
                txtBarCode.Focus();
                return;
            }

            if (!(this.txtNumber.Text.Trim().Equals("")))
            {

                docCheckProductDetail.DocCheckProduct = this.docCheckProduct;
                docCheckProductDetail.Product = product;
                docCheckProductDetail.NumProduct = Convert.ToInt32(this.txtNumber.Text.Trim());
                bool save = service.saveDocCheckProductDetail(docCheckProductDetail);
                if (save)
                {
                    //MessageBox.Show("�ѹ�֡���º����  !!! ", "����͹");
                    lblmsg.Visible = true;
                    lblmsg.Text = "�ѹ�֡���º��������";
                    clearData();
                    Console.WriteLine("Save Compate :");
                }

            }
            else
            {
                MessageBox.Show("��س����͡��͡�ӹǹ�Ѻ  !!! ", "����͹");
                txtNumber.Focus();
                return;
            }
        }