public function showDetailsProductCart($id, Request $request)
{
if (!$request->wantsJson()) {
return json_encode(['message' => trans('globals.error_not_available')]);
}
$cart = Order::ofType('cart')->select('id')->where('user_id', \Auth::user()->id)->first();
if (!$cart) {
return json_encode(['message' => trans('globals.error_not_available')]);
}
$product = Product::find($id);
if (!$product) {
return json_encode(['message' => trans('globals.error_not_available')]);
}
$order = OrderDetail::where('order_id', $cart->id)->where('product_id', $product->id)->first();
if (!$order) {
return json_encode(['message' => trans('globals.error_not_available')]);
}
$seller = User::select('nickname')->find($product->user_id);
$product->seller = $seller->nickname;
$return = ['product' => $product, 'order' => $order];
if ($product->type != 'item') {
$virtual = VirtualProduct::where('product_id', $product->id)->first();
$arrayV = ['type' => $product->type, 'title' => trans('product.globals.digital_item') . ' ' . trans('product.' . $product->type)];
switch ($product->type) {
case 'key':
$virtualOrder = VirtualProductOrder::where('virtual_product_id', $virtual->id)->where('order_id', $order->order_id)->where('status', 1)->get();
$email = [];
foreach ($virtualOrder as $row) {
if (isset($email[$row->email])) {
$email[$row->email]['num']++;
} else {
$email[$row->email]['num'] = 1;
$email[$row->email]['email'] = $row->email;
}
}
$arrayV['data'] = $email;
break;
}
$return['virtual'] = $arrayV;
}
return json_encode($return);
}