Exemple #1
0
 /**
  * заполнение таблицы кошельков
  */
 private function cardsTable()
 {
     Card::truncate();
     $data = [['user_id' => 1, 'title' => 'Visa', 'balance' => ''], ['user_id' => 2, 'title' => 'Master Card', 'balance' => ''], ['user_id' => 3, 'title' => 'Qiwi', 'balance' => '']];
     foreach ($data as $v) {
         Card::create($v);
     }
     // заполнение значений главной карты
     $users = User::all();
     foreach ($users as $u) {
         $u->main_card = Card::where('user_id', $u->id)->first()->id;
         $u->save();
     }
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $quantities = Request::get('quantity');
     $products = Request::get('id_product');
     $hash_card = Request::get('hash_card');
     $user = Auth::user();
     $user_type = $user->user_type;
     if ($user_type == 'COMPANY') {
         // o bar fez o pedido
         $user_card = Card::where('hash_card', '=', $hash_card)->get();
         foreach ($user_card as $row) {
             $id_user = $row['id_user'];
         }
         $id_company = $user->id_company;
     } else {
         // o usuário fez o pedido
         $id_user = $user->id_user;
         $id_company = Session::get('id_company');
     }
     $total_products = count($products);
     for ($i = 0; $i < $total_products; $i++) {
         // faz um loop em todos os produtos e cria uma matriz com produto e quantidade
         if ($quantities[$i] > 0) {
             // se o produto tem quantidade maior do que zero, insere na matriz
             $id_product = $products[$i];
             $quantity = $quantities[$i];
             $product = Product::find($id_product);
             // localiza o produto inserido
             $product_price = $product->price;
             // localiza o preço do produto em questão
             $order_data[] = ['id_user' => $id_user, 'id_company' => $id_company, 'id_product' => $id_product, 'quantity' => $quantity, 'product_price' => $product_price, 'hash_card' => $hash_card];
         }
     }
     Order::insert($order_data);
     // cria a ordem
     return redirect('pedidos?add&card=' . $hash_card);
 }
 /**
  * Get all of the cards for a given user
  *
  * @param User $user
  * @return Collection
  */
 public function forUser(User $user)
 {
     return Card::where('user_id', $user->id)->orderBy('created_at', 'asc')->get();
 }
 public function ajax_card(Request $request)
 {
     if (Request::ajax()) {
         $card_id = $request->all();
         $data = Card::where('id', $card_id)->first();
         dd($data);
     }
 }
 /**
  * Display the specified resource.
  *
  * @param int     $number
  * @param Request $request
  *
  * @return Response
  */
 public function show($number, Request $request)
 {
     $card = Card::where('number', $number)->firstOrFail();
     return $this->respond(fractal()->item($card, new CardTransformer())->parseIncludes($request->input('include', []))->toArray());
 }
Exemple #6
0
 /**
  * Update the specified resource in storage.
  * перевод с одной карты на другую
  *
  * PUT /{id}
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id     id получателя
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $input = $request->only('money', 'card_id', 'from_card_id', 'comment');
     $input['from_user_id'] = $from_user_id = $this->user->id;
     $input['user_id'] = $id;
     $c = User::find($id);
     $input['card_id'] = $c ? $c->main_card : ($c = Card::where('user_id', $id)->first() ? $c->id : 0);
     $names = ['from_user_id' => '"отправитель"', 'from_card_id' => '"карта отправителя"', 'user_id' => '"получатель"', 'card_id' => '"карта получателя"', 'money' => '"сумма"', 'comment' => '"комментарий"'];
     // проверка того что карта пренадлежит отправителю
     \Validator::extend('card_owner', function ($attribute, $value, $parameters) use($from_user_id) {
         return Card::where('user_id', $from_user_id)->where('id', $value)->count() > 0;
     });
     // проверка того что у отправителя достаточно средств на карте
     \Validator::extend('card_max', function ($attribute, $value, $parameters) use($from_user_id) {
         $cnt = Card::where('user_id', $from_user_id)->where('id', $value)->max('balance');
         return !empty($cnt) && $cnt > $parameters[0];
     });
     $validator = \Validator::make($input, ['user_id' => 'required|exists:users,id', 'card_id' => 'required|exists:cards,id', 'money' => 'required|numeric|min:1', 'from_card_id' => 'required|different:card_id|exists:cards,id|card_owner|card_max:' . $input['money']])->setAttributeNames($names);
     if ($validator->fails()) {
         return ['success' => false, 'content' => implode("\n", $validator->messages()->all())];
     }
     // проверка пройдена
     // баланс для получателя в случае успеха
     $to_balance = Card::where('id', $input['card_id'])->first()->balance + $input['money'];
     // баланс отправителя в случае успеха
     $from_balance = Card::where('id', $input['from_card_id'])->first()->balance - $input['money'];
     try {
         // проводим транзакцию
         \DB::transaction(function () use($input, $to_balance, $from_balance) {
             \DB::table('cards')->where('id', $input['card_id'])->update(['balance' => $to_balance]);
             \DB::table('cards')->where('id', $input['from_card_id'])->update(['balance' => $from_balance]);
             $toUser = \DB::table('users')->where('id', $input['user_id'])->first();
             // инфа для отправителя
             \DB::table('transactions')->insert(['user_id' => $input['from_user_id'], 'card_id' => $input['from_card_id'], 'to_id' => $input['user_id'], 'money' => $from_balance, 'created_at' => date("Y-m-d H:i:s"), 'updated_at' => date("Y-m-d H:i:s"), 'comment' => 'Переведено ' . $input['money'] . 'р. пользователю ' . $toUser->name . ' [' . $toUser->id . ']']);
             // инфа для получателя
             \DB::table('transactions')->insert(['user_id' => $input['user_id'], 'card_id' => $input['card_id'], 'from_id' => $input['from_user_id'], 'money' => $to_balance, 'created_at' => date("Y-m-d H:i:s"), 'updated_at' => date("Y-m-d H:i:s"), 'comment' => 'Переведено ' . $input['money'] . 'р. от пользователя ' . $this->user->name . ' [' . $this->user->id . ']']);
         });
         return ['success' => true, 'content' => 'Операция выполнена успешно'];
     } catch (Exception $e) {
         return ['success' => false, 'content' => 'Не удалось провести транзакцию ' . $e->getMessage()];
     }
 }
Exemple #7
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     if ($this->card_authorizer($id)) {
         Card::where('card_num', $id)->delete();
     } else {
         return response($content = json_encode(array('Error' => 'You have no right to do this')), $status = 401);
     }
 }
 public function getCardById($value)
 {
     return Card::where('Id_tarjeta', $value)->get();
 }
Exemple #9
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $card = Card::where('card_id', $id);
     $objEvoTargetCard = null;
     $objMaterial1Card = null;
     $objMaterial2Card = null;
     $objMaterial3Card = null;
     $objMaterial4Card = null;
     if ($card->evo_id != 0) {
         $objEvoTargetCard = Card::find($card->evo_id);
         if ($card->material_id1 > 0) {
             $objMaterial1Card = Card::find($card->material_id1);
         }
         if ($card->material_id2 > 0) {
             $objMaterial2Card = Card::find($card->material_id2);
         }
         if ($card->material_id3 > 0) {
             $objMaterial3Card = Card::find($card->material_id3);
         }
         if ($card->material_id4 > 0) {
             $objMaterial4Card = Card::find($card->material_id4);
         }
     }
     return view('admin.card.show')->withCard($card)->withSkill(Skill::where('skill_id', $card->skill_id))->withLskill(Lskill::where('lskill_id', $card->lskill_id))->withAttr(Attr::where('attr', $card->attr1))->withType1(Type1::where('type1', $card->type1))->withType2(Type2::where('type2', $card->type2))->withAbility1(Ability::where('ability_id', $card->ability1))->withAbility2(Ability::where('ability_id', $card->ability2))->withAbility3(Ability::where('ability_id', $card->ability3))->withEvoTargetCard($objEvoTargetCard)->withMaterial1Card($objMaterial1Card)->withMaterial2Card($objMaterial2Card)->withMaterial3Card($objMaterial3Card)->withMaterial4Card($objMaterial4Card)->withCards(Card::where('skill_id', $card->skill_id));
 }
Exemple #10
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     //
     $card = Card::find($id);
     if (!$card) {
         // 无对应卡片数据
     }
     $skill = null;
     if ($card->skill_id != 0) {
         $skill = Skill::where("skill_id", $card->skill_id)->first();
     }
     $lskill = null;
     if ($card->lskill_id != 0) {
         $lskill = Lskill::where("lskill_id", $card->lskill_id)->first();
     }
     $objEvoTargetCard = null;
     $objMaterial1Card = null;
     $objMaterial2Card = null;
     $objMaterial3Card = null;
     $objMaterial4Card = null;
     if ($card->evo_id != 0) {
         $objEvoTargetCard = Card::where("card_id", $card->evo_id)->first();
         if ($card->material_id1 > 0) {
             $objMaterial1Card = Card::where("card_id", $card->material_id1)->first();
         }
         if ($card->material_id2 > 0) {
             $objMaterial2Card = Card::where("card_id", $card->material_id2)->first();
         }
         if ($card->material_id3 > 0) {
             $objMaterial3Card = Card::where("card_id", $card->material_id3)->first();
         }
         if ($card->material_id4 > 0) {
             $objMaterial4Card = Card::where("card_id", $card->material_id4)->first();
         }
     }
     return view('card.show')->withCard($card)->withSkill($skill)->withLskill($lskill)->withTitle($card->name_jp)->withAbilities(Ability::all())->withType1s(Type1::all())->withType2s(Type2::all())->withEvoTargetCard($objEvoTargetCard)->withMaterial1Card($objMaterial1Card)->withMaterial2Card($objMaterial2Card)->withMaterial3Card($objMaterial3Card)->withMaterial4Card($objMaterial4Card)->withAttrs(Attr::all());
 }