public function anyListPopupRso(Request $request) { DB::enableQueryLog(); if($request->has('input-sort')){ $arr_sort = $request->input('input-sort'); $arr_sort = (array)json_decode($arr_sort); }else{ $arr_sort = array(); } if($request->has('input-filter')){ $arr_filter = $request->input('input-filter'); }else{ $arr_filter =[ 'sku' => '', 'name' => '', 'company_id' => '', 'oum_id' => '', ]; } session(['sort_filter_product_rso.arr_sort' => $arr_sort]); session(['sort_filter_product_rso.arr_filter'=> $arr_filter]); $distributes = array(); $oums = array(); $list_sku = array(); $distributes = Company::getDistributeList()->get()->toArray(); $oums = Oum::orderBy('name')->get()->toArray(); $list_all_product = Product::select('sku','name')->get()->toArray(); $current_rso = ReturnSaleorder::find(session('current_returnsaleorder')); $list_product = MProduct::select('products.name', 'products.sku', 'm_products.id', 'm_products.oum_id', 'm_products.specification', 'm_products.quantity', 'companies.name as company_name', 'm_products.module_id' ) ->with('oum') ->leftJoin('products','products.id','=','m_products.product_id') ->leftJoin('saleorders',function($join){ $join->on('saleorders.id','=','m_products.module_id') ->where('saleorders.status','=',1); }) ->where('m_products.module_type','=','App\\Saleorder') ->where('saleorders.status','=',1) ->leftJoin('companies','companies.id','=','m_products.company_id') ->where('m_products.company_id','=',$current_rso->company_id); $list_product_id_so = MProduct::select('m_products.id') ->leftJoin('saleorders',function($join){ $join->on('saleorders.id','=','m_products.module_id') ->where('saleorders.status','=',1); }) ->where('m_products.module_type','=','App\\Saleorder') ->where('saleorders.status','=',1) ->where('m_products.company_id','=',$current_rso->company_id) ->lists('m_products.id'); $list_product_rso = MProduct::select('m_products.id', 'm_products.m_product_id_so', 'm_products.specification', 'm_products.quantity' ) ->leftJoin('return_saleorders',function($join){ $join->on('return_saleorders.id','=','m_products.module_id') ->where('return_saleorders.status','=',1); }) ->where('m_products.module_type','=','App\\ReturnSaleorder') ->where('return_saleorders.status','=',1) ->whereIn('m_product_id_so',$list_product_id_so) ->where('m_products.company_id','=',$current_rso->company_id)->get(); if(count($arr_sort)==0){ $list_product = $list_product->orderBy('products.id','asc'); } foreach ($arr_filter as $key => $value) { if($value!=''){ if($arr_filter['sku']!=''){ $list_product->where('products.sku',$arr_filter['sku']); }elseif($arr_filter['name']!=''){ $list_product->where('products.name',$arr_filter['name']); }elseif($key == 'company_id'){ $list_product->where('m_products.company_id',$arr_filter['company_id']); }elseif($key == 'oum_id'){ $list_product->where('products.oum_id',$arr_filter['oum_id']); }else{ $list_product->where($key,$value); } } } $list_product = $list_product->paginate(20); foreach ($list_product as $key => $value) { $list_product[$key]->so_le = 0; foreach ($list_product_rso as $key1 => $value1) { if($value1->m_product_id_so==$value->id){ $so_luong_con = ($list_product[$key]->quantity * $list_product[$key]->specification) + $list_product[$key]->so_le - ($value1->quantity * $value1->specification); $list_product[$key]->quantity = floor($so_luong_con/$list_product[$key]->specification); $list_product[$key]->so_le = $so_luong_con%$list_product[$key]->specification; } } } // pr($list_product->toArray()); // die; // echo $current_rso->company_id; // print_r(DB::getQueryLog()); // pr($list_product->toArray());die; return view('popup.choose_product_rso', [ 'distributes' => $distributes, 'oums' => $oums, 'list_product' => $list_product, 'list_all_product' => $list_all_product, 'arr_sort' => $arr_sort, 'arr_filter' => $arr_filter ]); }
public function postDeleteProduct(Request $request){ $arr_return= array('status'=>'error'); $id = $request->has('id')?$request->input('id'):0; if($id){ $mproduct = MProduct::find($id); $id_product = $mproduct->m_product_id; $quantity = $mproduct->quantity; $specification = $mproduct->specification; $check = MProduct::where('id','=',$id)->delete(); if($check){ // $product = ProductStock::find($id_product); // $product->in_stock = $product->in_stock - $quantity*$specification; // $product->save(); $product = Product::find($mproduct->product_id); Log::create_log(\Auth::user()->id,'App\ReturnSaleorder','Xóa sản phẩm '.$product->sku.' đơn hàng đại lý trả số '.session('current_returnsaleorder')); $arr_return['status'] = 'success'; }else{ $arr_return['message'] = 'Saving fail !'; } } $returnsaleorder = ReturnSaleorder::find(session('current_returnsaleorder')); $returnsaleorder->updated_by = \Auth::user()->id; $returnsaleorder->save(); self::getListProduct(); return $arr_return; }