private void gvMaterial_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex > 0)
            {

                string strCode = gvMaterial.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                string materialID = gvMaterial.Rows[e.RowIndex].Cells[0].Value.ToString();

                ELMaterial objELMaterial = new ELMaterial();
                DLMaterial objDLMaterial = new DLMaterial();

                objELMaterial = objDLMaterial.FetchMaterialsByID(Convert.ToInt32(materialID));

                if (objELMaterial != null)
                {
                    lblMaterialID.Text = objELMaterial.ID.ToString();
                    txtCode.Text = objELMaterial.Code;
                    txtName.Text = objELMaterial.Name;
                    chkIsActive.Checked = Convert.ToBoolean( objELMaterial.IsActive);
                }
            }
            gvMaterial.Visible = false;
        }
        public ELMaterial FetchMaterialsByID(int ID)
        {
            SqlCommand cmd;
            string qry = "";
            ELMaterial ObjELMaterial = new ELMaterial();
            SqlDataReader dr;
            try
            {
                conn.CreatConnection();

                qry = "SELECT * FROM Material WHERE ID =@ID";

                cmd = new SqlCommand(qry, conn.con);

                SqlParameter param;

                param = new SqlParameter("@id", SqlDbType.Int);
                param.Direction = ParameterDirection.Input;
                param.Value = ID;
                cmd.Parameters.Add(param);

                foreach (SqlParameter Parameter in cmd.Parameters)
                {
                    if (Parameter.Value == null)
                    {
                        Parameter.Value = DBNull.Value;
                    }
                }

                dr = cmd.ExecuteReader();

                if (dr.HasRows)
                {
                    dr.Read();

                    ObjELMaterial.ID = Convert.ToInt32(dr["id"]);
                    ObjELMaterial.Code = dr["Code"].ToString();
                    ObjELMaterial.Name = dr["Name"].ToString();
                    ObjELMaterial.IsActive = Convert.ToBoolean(dr["IsActive"]);
                    ObjELMaterial.Creator = Convert.ToInt32(dr["Creator"]);
                    ObjELMaterial.Created = Convert.ToDateTime(dr["Created"]);

                }
                dr.Close();

                return ObjELMaterial;
            }
            catch (Exception ex)
            {
                UtilityLayer.Common.ErrorLog(DateTime.Now.ToString() + ex.Message + " " + ex.StackTrace + " " + "DLMaterial - FetchMaterialsByID");
                return null;
            }
            finally
            {
                conn.CloseConnection();
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            ELMaterial objELMaterail = new ELMaterial();
            DLMaterial objDLMaterial = new DLMaterial();
            int newID = 0;

            if (lblMaterialID.Text.Length > 0)
            {
                objELMaterail.ID = Convert.ToInt32(lblMaterialID.Text);
            }
            else
            {
                newID = Common.GetNewID(tableName);
                objELMaterail.ID = newID;
            }

            objELMaterail.Code = txtCode.Text;
            objELMaterail.Name = txtName.Text;
            objELMaterail.Creator = 0;
            objELMaterail.Created = DateTime.Now;
            objELMaterail.IsActive = false;
            if (chkIsActive.Checked) objELMaterail.IsActive = true;

            if (Validations())
            {
                if (objDLMaterial.Add(objELMaterail) > 0)
                {
                    MessageBox.Show("Record Inserted");
                   // ClearControls();
                }
                else
                {
                    MessageBox.Show("Record not Inserted");
                }
            }
        }
        public int Add(ELMaterial objELMaterial)
        {
            int retValue = 0;
            SqlCommand cmd;
            string qry = "";
            object value;
            try
            {
                conn.CreatConnection();

                qry = "";

                qry = "SELECT COUNT(ID) FROM Material WHERE ID = @ID ";

                cmd = new SqlCommand(qry, conn.con);

                SqlParameter param;

                param = new SqlParameter("@ID", SqlDbType.Int);
                param.Direction = ParameterDirection.Input;
                param.Value = objELMaterial.ID;
                cmd.Parameters.Add(param);

                foreach (SqlParameter Parameter in cmd.Parameters)
                {
                    if (Parameter.Value == null)
                    {
                        Parameter.Value = DBNull.Value;
                    }
                }

                value = cmd.ExecuteScalar();

                if (value != null && value.ToString() != "0")
                {
                    qry = "";
                    qry = "UPDATE Material SET Code=@Code, Name =@Name,IsActive=@IsActive WHERE ID=@ID";

                    cmd = new SqlCommand(qry, conn.con);

                    param = new SqlParameter("@ID", SqlDbType.Int);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.ID;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@Code", SqlDbType.NVarChar);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.Code;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@Name", SqlDbType.NVarChar);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.Name;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@isActive", SqlDbType.Bit);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.IsActive;
                    cmd.Parameters.Add(param);

                    foreach (SqlParameter Parameter in cmd.Parameters)
                    {
                        if (Parameter.Value == null)
                        {
                            Parameter.Value = DBNull.Value;
                        }
                    }

                    retValue = cmd.ExecuteNonQuery();
                }
                else
                {
                    qry = "";

                    qry = "INSERT INTO Material (ID, CODE, NAME, CREATOR , CREATED, ISACTIVE) " +
                        " VALUES(@ID, @Code, @Name, @Creator, @Created, @IsActive) ";

                    cmd = new SqlCommand(qry, conn.con);

                    param = new SqlParameter("@ID", SqlDbType.Int);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.ID;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@Code", SqlDbType.NVarChar);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.Code;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@Name", SqlDbType.NVarChar);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.Name;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@Creator", SqlDbType.Int);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.Creator;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@Created", SqlDbType.DateTime);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.Created;
                    cmd.Parameters.Add(param);

                    param = new SqlParameter("@isActive", SqlDbType.Bit);
                    param.Direction = ParameterDirection.Input;
                    param.Value = objELMaterial.IsActive;
                    cmd.Parameters.Add(param);

                    foreach (SqlParameter Parameter in cmd.Parameters)
                    {
                        if (Parameter.Value == null)
                        {
                            Parameter.Value = DBNull.Value;
                        }
                    }

                    retValue = cmd.ExecuteNonQuery();

                }
            }
            catch (Exception ex)
            {
                UtilityLayer.Common.ErrorLog(DateTime.Now.ToString() + ex.Message + " " + ex.StackTrace + " " + "DLMaterial - Add");
                return 0;
            }
            finally
            {
                conn.CloseConnection();
            }
            return retValue;
        }