/**
  * API or removing materials being called from js
  */
 public function removeSubProduct(Request $request)
 {
     $prodId = $request->input('product_id');
     $subProdId = $request->input('sub_product_id');
     //delete sub product
     MainSubProduct::where('product_id', $prodId)->where('sub_product_id', $subProdId)->delete();
     //get all subproducts associated
     $curSubProducts = array();
     $curSubProductIds = array();
     $subProducts = Product::find($prodId)->sub_products()->get();
     foreach ($subProducts as $pm) {
         //gets the current set materials
         $subprodExtObject = SubProduct::where('is_active', true)->where('id', $pm->sub_product_id)->first();
         array_push($curSubProducts, $subprodExtObject);
         array_push($curSubProductIds, $pm->sub_product_id);
         $subprodExtObject = null;
     }
     //get all the subproducts not in current main product
     $allSubProducts = SubProduct::whereNotIn('id', $curSubProductIds)->orderBy('sub_product_name', 'asc')->get();
     //return current and all materials
     return json_encode(array('curSubProducts' => $curSubProducts, 'allSubProducts' => $allSubProducts));
 }