/**
  * Update the specified resource in storage.
  *
  * @param  Request  $request
  * @param  int  $id
  * @return Response
  */
 public function update(Request $request, $id, Category $categoryModel, History $historyModel, Label $labelModel)
 {
     if (isset($_POST['rename_category'])) {
         if (!right('EditCategory')) {
             abort(404);
         }
         if (strlen($request->input('name')) > 0) {
             $categoryModel->renameCategory($id, $request->input('name'));
             $historyModel->saveHistory('rename_category', $request->input('name'));
             Session::flash('message', GetMessages("SUCCESS_RENAME_CATEGORY"));
             return redirect($_SERVER['HTTP_REFERER']);
         } else {
             Session::flash('message', GetMessages("ERROR_EMPTY_NAME_CATEGORY"));
             return redirect($_SERVER['HTTP_REFERER']);
         }
     }
     if (isset($_POST['move_category'])) {
         if (!right('EditCategory')) {
             abort(404);
         }
         $categoryModel->moveCategory($id, $request->input('new_parent_id'));
         $historyModel->saveHistory('move_category', $id);
         Session::flash('message', GetMessages("SUCCESS_MOVE_CATEGORY"));
         return redirect($_SERVER['HTTP_REFERER']);
     }
     if (isset($_POST['create_category'])) {
         if (!right('EditCategory')) {
             abort(404);
         }
         if (strlen($request->input('name')) > 0) {
             $categoryModel->createCategory($id, $request->input('name'));
             $historyModel->saveHistory('create_category', $request->input('name'));
             Session::flash('message', GetMessages("SUCCESS_CREATE_NEW_CATEGORY"));
             return redirect()->route('category.show', ['id' => $id]);
         } else {
             Session::flash('message', GetMessages("ERROR_EMPTY_NAME_CATEGORY"));
             return redirect($_SERVER['HTTP_REFERER']);
         }
     }
     if (isset($_POST['status_category'])) {
         if (!right('EditCategory')) {
             abort(404);
         }
         $categoryModel->changeStatus($id, $request->input('status'));
         $historyModel->saveHistory('status_category', $id, $request->input('status'));
         Session::flash('message', GetMessages("SUCCESS_CHANGE_STATUS_CATEGORY"));
         return redirect($_SERVER['HTTP_REFERER']);
     }
     if (isset($_POST['set_sort_provider'])) {
         if (!right('EditPurchase')) {
             abort(404);
         }
         $purchaseModel = new Purchase();
         $ids = $categoryModel->getChild($id);
         foreach ($_POST['sort_provider'] as $key => $provider_id) {
             if ($provider_id != 0) {
                 $purchaseModel->setSortByCategoryId($ids, $provider_id, $key);
             }
         }
         Session::flash('message', GetMessages("SUCCESS_UPDATE"));
         return redirect($_SERVER['HTTP_REFERER']);
     }
     if (isset($_POST['labels'])) {
         if (!right('EditCategory')) {
             abort(404);
         }
         $products = $categoryModel->getProducts($id);
         foreach ($products as $product) {
             //$labelModel->joinLabels($product, explode(',', $_POST['name']));
         }
         Session::flash('message', GetMessages("SUCCESS_DATA_PRODUCTS_UPDATE"));
         return redirect($_SERVER['HTTP_REFERER']);
     }
 }