public function detail($id) { if (Gate::denies('report.pertanggal.penjualan.detail')) { return view(config('app.template') . '.error.403'); } $order = Order::find($id); if ($order->state == 'Closed') { $order->load('tax', 'bayarBank', 'bayar', 'place.place.kategori'); $orderDetail = OrderDetail::join('produks', 'order_details.produk_id', '=', 'produks.id')->leftJoin('order_detail_returns', 'order_details.id', '=', 'order_detail_returns.order_detail_id')->join('orders', 'order_details.order_id', '=', 'orders.id')->where('orders.id', $id)->select(['produks.nama', 'order_details.harga_jual', DB::raw("(order_details.qty - ifnull(order_detail_returns.qty, 0)) as qty"), DB::raw("(order_details.harga_jual * (order_details.qty - ifnull(order_detail_returns.qty, 0))) as subtotal")])->groupBy('produks.id')->get(); $orderPlaces = $order->place; } else { $order->load('merge.orderRef'); } $data = ['order' => $order, 'orderDetail' => isset($orderDetail) ? $orderDetail : [], 'orderPlaces' => isset($orderPlaces) ? $orderPlaces : []]; return view(config('app.template') . '.report.pertanggal-detail', $data); }
public function pertanggalReturnDetail(Request $request) { $orderDetail = OrderDetail::join('produks', 'order_details.produk_id', '=', 'produks.id')->leftJoin('order_detail_returns', 'order_details.id', '=', 'order_detail_returns.order_detail_id')->where('order_id', $request->get('id'))->whereNotNull('order_detail_returns.id')->select(['produks.nama', DB::raw('order_detail_returns.qty as qty_return')])->get(); $data = ['orderDetail' => $orderDetail, 'order' => Order::find($request->get('id'))]; return view(config('app.template') . '.order.return-pertanggal-detail', $data); }
protected static function _penjualan($tanggal1, $tanggal2) { return \App\OrderDetail::join(DB::raw("(SELECT produks.`id`, produks.`nama`\n FROM produks LEFT JOIN produk_details ON produks.`id` = produk_details.`produk_id`\n WHERE produk_details.`id` IS NULL GROUP BY produks.`id`)temp_produk"), 'order_details.produk_id', '=', 'temp_produk.id')->leftJoin('order_detail_returns', 'order_details.id', '=', 'order_detail_returns.order_detail_id')->join('orders', 'order_details.order_id', '=', 'orders.id')->whereBetween('orders.tanggal', [$tanggal1, $tanggal2])->groupBy('temp_produk.id')->select(['temp_produk.id', 'temp_produk.nama', DB::raw('SUM(order_details.qty - ifnull(order_detail_returns.qty, 0))qty')])->get()->toArray(); }