with=['wallet']; $select = ['*']; $search=['name']; $request->request->add(['customer_id'=>auth('customer')->id()]); $query = Fund::with($this->with)->where('customer_id',auth('customer')->id()); parent::__construct($model, $this->with, $select, null,$query,$search); } public function deposit(Request $request){ $data = $request->all(); $wallet_interface = new WalletInterface(auth('customer')->id(), auth('customer')->user()->type,null); $wallet = $wallet_interface->wallet; if($wallet->gold < $data['value']){ throw new UnprocessableEntityHttpException('موجودی کمتر از مقدار وارد شده است'); } $transaction = new TransactionInterface($wallet_interface, $_inp = [ "gold" => $data['value'], "fund_id"=>$data["fund_id"], 'expire_at'=>now(), 'active'=>true ], 6, false); $wallet_interface_fund = new WalletInterface(auth('customer')->id(), auth('customer')->user()->type,$data["fund_id"]); $transaction = new TransactionInterface($wallet_interface_fund, $_inp = [ "gold" => $data['value'], "fund_id"=>$data["fund_id"], 'expire_at'=>now(), 'active'=>true ], 5, true); return response()->json(true); } public function withdraw(Request $request){ $data = $request->all(); $wallet_interface_fund = new WalletInterface(auth('customer')->id(), auth('customer')->user()->type,$data["fund_id"]); $wallet = $wallet_interface_fund->wallet; if($wallet->gold < $data['value']){ throw new UnprocessableEntityHttpException('موجودی کمتر از مقدار وارد شده است'); } $transaction = new TransactionInterface($wallet_interface_fund, $_inp = [ "gold" => $data['value'], "fund_id"=>$data["fund_id"], 'expire_at'=>now(), 'active'=>true ], 6, false); $wallet_interface = new WalletInterface(auth('customer')->id(), auth('customer')->user()->type); $transaction = new TransactionInterface($wallet_interface, $_inp = [ "gold" => $data['value'], "fund_id"=>$data["fund_id"], 'expire_at'=>now(), 'active'=>true ], 5, true); return response()->json(true); } public function show($id){ $query = Fund::with($this->with)->findOrFail($id); return response()->json($query); } public function destroy($id){ $wallet_interface_fund = Wallet::where('owner',auth('customer')->id())->where('fund_id',$id)->first(); if (!is_null($wallet_interface_fund)){ if ($wallet_interface_fund->gold > 0){ throw new UnprocessableEntityHttpException('به علت داشتن موجودی امکان حذف صندوق وجود ندارد'); } } Fund::destroy($id); return response()->json(true); } public function transactionTable(Request $request){ $records = Transaction::where('wallet',$request->wallet_id); TableEngine::create($records, $request->all()) ->initSearch([]) ->select([ '*',Transaction::$SELECT_CAJ,Transaction::$SELECT_TYPE_STR ])->export($records); return response()->json($records); } }