/** * delete key registered (Only this seller) * @param $id int|string id the virtual product * @param $res Request object to validate the type of request, action * @return json */ public function deleteKey($id, Request $res) { if (!$res->wantsJson()) { return redirect()->back(); } $VirtualProduct = VirtualProduct::find($id); if (!count($VirtualProduct->toArray())) { return json_encode(['message' => trans('globals.error_not_available')]); } $product = Product::find($VirtualProduct->product_id); if (!count($product->toArray())) { return json_encode(['message' => trans('globals.error_not_available')]); } if ($product->user_id != \Auth::id()) { return json_encode(['message' => trans('globals.not_access')]); } $VirtualProductOrder = VirtualProductOrder::where('virtual_product_id', $VirtualProduct->id)->get(); if (count($VirtualProductOrder->toArray()) > 0) { return json_encode(['message' => trans('product.virtualProductsController_controller.key_been_sold')]); } $VirtualProduct->status = 'cancelled'; $VirtualProduct->save(); $stock = count(VirtualProduct::where('product_id', $product->id)->where('status', 'open')->get()->toArray()); $product->stock = $stock; if ($stock == 0) { $product->status = 0; } $product->save(); return json_encode(['success' => trans('product.controller.saved_successfully')]); }
public function showKeyVirtualProductPurchased($idProduct, $idOrder, Request $request) { if (!$request->wantsJson()) { return ['message' => trans('globals.error_not_available')]; } $product = Product::find($idProduct); $order = Order::find($idOrder); $virtual = VirtualProduct::select('id')->where('product_id', $idProduct)->get()->toArray(); if (!$product || !$order || !count($virtual)) { return ['message' => trans('globals.error_not_available'), 'id' => false]; } if ($order->user_id != \Auth::id()) { return ['message' => trans('globals.error_not_available'), 'my' => false]; } $virtualOrder = VirtualProductOrder::where('order_id', $order->id)->whereIn('virtual_product_id', $virtual)->get(); if (!count($virtualOrder)) { return ['message' => trans('globals.error_not_available'), 'order' => false]; } $user = User::find(\Auth::id()); $return = ['info' => ['name' => $product->name, 'des' => $product->description, 'num' => count($virtualOrder)]]; foreach ($virtualOrder as $row) { if (isset($return['users'][$row['email']])) { $key = VirtualProduct::find($row['virtual_product_id']); $return['users'][$row['email']]['keys'][] = $key['key']; } else { $key = VirtualProduct::find($row['virtual_product_id']); $return['users'][$row['email']]['keys'][0] = $key['key']; $return['users'][$row['email']]['title'] = $row['email'] == $user['email'] ? 'Your Keys' : 'Keys sent to ' . $row['email']; } } return $return; }