async Task <long> save_new_plastic_cover_quantities(long sp_id, SH_PLASTIC_COVER_DATA mydata)
        {
            try
            {
                myconnection.openConnection();
                SqlCommand cmd = new SqlCommand("SH_SAVE_NEW_PLASTIC_COVER_QUANTITIES", DatabaseConnection.mConnection);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@SH_SPECIFICATION_OF_PLASTIC_COVER_ID", sp_id);
                cmd.Parameters.AddWithValue("@SH_SUPPLIER_ID", mydata.supplier.SH_ID);
                cmd.Parameters.AddWithValue("@SH_SUPPLIER_BRANCH_ID", mydata.supplier_branch.SH_ID);
                cmd.Parameters.AddWithValue("@SH_ADDITION_DATE", mydata.addition_date);
                cmd.Parameters.AddWithValue("@SH_ADDITION_PERMISSION_NUMBER", mydata.addition_permission_number);
                cmd.Parameters.AddWithValue("@SH_CONTAINER_NAME", mydata.container_name);
                cmd.Parameters.AddWithValue("@SH_NO_OF_ITEMS_PER_CONTAINER", mydata.no_items_per_container);
                cmd.Parameters.AddWithValue("@SH_NO_OF_CONTAINERS", mydata.no_of_containers);
                cmd.Parameters.AddWithValue("@SH_TOTAL_NO_ITEMS", mydata.total_no_items());

                SqlDataReader reader = cmd.ExecuteReader();
                long          myid   = 0;
                if (reader.Read())
                {
                    myid = long.Parse(reader["myidentity"].ToString());
                }
                reader.Close();

                myconnection.closeConnection();
                return(myid);
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR WHILE ADDING NEW PLASTIC COVER QIANTITIES " + ex.ToString());
            }
            return(0);
        }
 async Task <long> save_new_specification(SH_PLASTIC_COVER_DATA mydata)
 {
     try
     {
         myconnection.openConnection();
         SqlCommand cmd = new SqlCommand("SH_INSERT_NEW_PLASTIC_COVER_SPECIFICATION", DatabaseConnection.mConnection);
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.Parameters.AddWithValue("@SH_CLIENT_ID", mydata.client.SH_ID);
         cmd.Parameters.AddWithValue("@SH_SIZE_ID", mydata.size.SH_ID);
         cmd.Parameters.AddWithValue("@SH_LOGO_OR_NOT", mydata.logo_or_not);
         cmd.Parameters.AddWithValue("@SH_NO_OF_CONTAINERS", mydata.no_of_containers);
         cmd.Parameters.AddWithValue("@SH_CONTAINER_NAME", mydata.container_name);
         cmd.Parameters.AddWithValue("@SH_TOTAL_NO_ITEMS", mydata.total_no_items());
         cmd.Parameters.AddWithValue("@SH_PILLOW_COLOR_ID", mydata.pillow_color.SH_ID);
         SqlDataReader reader = cmd.ExecuteReader();
         long          myid   = 0;
         if (reader.Read())
         {
             myid = long.Parse(reader["myidentity"].ToString());
         }
         reader.Close();
         myconnection.closeConnection();
         return(myid);
     }
     catch (Exception ex)
     {
         MessageBox.Show("ERROR WHILE ADDING NEW SPECIFICATION " + ex.ToString());
     }
     return(0);
 }
 async Task upsate_specifications(long sp_id, SH_PLASTIC_COVER_DATA mydata)
 {
     try
     {
         myconnection.openConnection();
         SqlCommand cmd = new SqlCommand("SH_UPDATE_PLASTIC_COVER_SPECIFICATION_QUANTITIES", DatabaseConnection.mConnection);
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.Parameters.AddWithValue("@SH_NO_OF_CONTAINERS", mydata.no_of_containers);
         cmd.Parameters.AddWithValue("@SH_TOTAL_NO_ITEMS", mydata.total_no_items());
         cmd.Parameters.AddWithValue("@SH_SP_ID", sp_id);
         cmd.ExecuteNonQuery();
         myconnection.closeConnection();
     }
     catch (Exception ex)
     {
         MessageBox.Show("ERROR WHILE UPDATING SPECIFICATIONS " + ex.ToString());
     }
 }