Ejemplo n.º 1
0
	public function anyListPopupRpo(Request $request)
	{
		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_rpo.arr_sort' => $arr_sort]);
		session(['sort_filter_product_rpo.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_rpo = ReturnPurchaseorder::find(session('current_returnpurchaseorder'));

		$list_product = MProduct::select('products.name',
		                                'products.sku',
		                                'm_products.id',
		                                'm_products.oum_id',
		                                'm_products.specification',
		                                'product_stocks.in_stock',
		                                'companies.name as company_name',
		                                'm_products.module_id'
		                                )
					->with('oum')
					->leftJoin('products','products.id','=','m_products.product_id')
					->leftJoin('purchaseorders',function($join){
						$join->on('purchaseorders.id','=','m_products.module_id')
						->where('purchaseorders.status','=',1);
					})
					->where(function ($query){
						$query->where('m_products.module_type','=','App\\Purchaseorder')
							->orWhere('m_products.module_type', '=', 'in_stock');
					})
					->where('product_stocks.in_stock','>',0)
					->leftJoin('companies','companies.id','=','m_products.company_id')
					->leftJoin('product_stocks','m_products.id','=','product_stocks.m_product_id')
					->where('m_products.company_id','=',$current_rpo->company_id);

		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);
		return view('popup.choose_product_rpo', [
								'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\ReturnPurchaseorder','Xóa sản phẩm '.$product->sku.' đơn hàng trả nhà cung cấp số '.session('current_returnpurchaseorder'));
				$arr_return['status'] = 'success';
			}else{
				$arr_return['message'] = 'Saving fail !';
			}
		}
		$returnpurchaseorder = ReturnPurchaseorder::find(session('current_returnpurchaseorder'));
		$returnpurchaseorder->updated_by = \Auth::user()->id;
		$returnpurchaseorder->save();
		self::getListProduct();
		return $arr_return;
	}