/** * Saves a address into the database * @return void */ public function store(Request $request) { $retoData = $request->all(); try { //if(empty($_POST['mensaje'])) array_push($error,"Ingrese un mensaje."); if (!checkdate($retoData['mes'], $retoData['dia'], $retoData['ano'])) { return ResponseMessage::dateNotValid(); } if ($retoData['ano'] . "-" . $retoData['mes'] . "-" . $retoData['dia'] == date("Y-m-d") && $retoData['hora'] <= date("H")) { return ResponseMessage::hourNotValid(); } if ($retoData['ano'] . "-" . $retoData['mes'] . "-" . $retoData['dia'] < date("Y-m-d")) { return ResponseMessage::dateNotValid(); } $equipo = $this->equiposRepository->find($retoData['id_equipo']); $retador = $this->equiposRepository->find($retoData['id_retador']); $tienePartidos = DB::table("partidos_equipos")->join("partidos", "partidos_equipos.id_partido", "=", "partidos.id_partido")->where("id_equipo", "=", $retoData['id_equipo'])->where("fecha", "=", $retoData['ano'] . "-" . $retoData['mes'] . "-" . $retoData['dia'])->where("horario", "=", $retoData['hora'] . ":" . $retoData['minutos'] . ":00")->count(); if ($tienePartidos > 0) { return ResponseMessage::teamNotAvailable($equipo["data"]["equipo"]); } $tengoPartidos = DB::table("partidos_equipos")->join("partidos", "partidos_equipos.id_partido", "=", "partidos.id_partido")->where("id_equipo", "=", $retoData['id_retador'])->where("fecha", "=", $retoData['ano'] . "-" . $retoData['mes'] . "-" . $retoData['dia'])->where("horario", "=", $retoData['hora'] . ":" . $retoData['minutos'] . ":00")->count(); if ($tengoPartidos > 0) { return ResponseMessage::notAvailable(); } \JWTAuth::parseToken(); $user = \JWTAuth::parseToken()->authenticate(); $equiposCapitan = $this->JugadoresEquiposRepository->findWhere(['id_jugador' => $user->id_jugador, 'capitan' => 't', 'id_equipo' => $retoData['id_retador']]); if (count($equiposCapitan) == 0) { return ResponseMessage::invalidPermission(); } //consultar capita n del equipo retado $capitanretado = DB::table('jugadores_equipos')->wherein("capitan", array("t", "s"))->where("id_equipo", "=", $retoData['id_equipo'])->join("jugadores", "jugadores.id_jugador", "=", "jugadores_equipos.id_jugador")->get(); $fechaReto = $retoData['ano'] . "-" . $retoData['mes'] . "-" . $retoData['dia']; $horaReto = $retoData['hora'] . ":" . $retoData['minutos'] . ":00"; $arrayReto = array('id_equipo' => $equipo["data"]["id"], 'id_retador' => $retador["data"]["id"], 'mensaje' => isset($retoData['mensaje']) ? $retoData['mensaje'] : '', 'tipo' => $retoData['tipo'], 'fecha' => $fechaReto, 'hora' => $horaReto, 'lugar' => $retoData['lugar']); $reto = $this->repository->create($arrayReto); foreach ($capitanretado as $destinatario) { /*$datos['destinatario']=$destinatario; $datos['equipo']=$equipo; $datos['retador']=$retador; $datos['reto']=$reto; $datos['cadena']=base64_encode("aceptarreto||".$equipo->id_equipo."||".$retador->id_equipo."||".$destinatario->id_jugador."||".$reto->id_reto); if($_POST['tipo']=='a') $datos['tipo']="Amistoso"; else $datos['tipo']="Competitivo"; $datos['mensaje']=$_POST['mensaje']; Mail::send('mails.reto', $datos, function($message) use ($destinatario) { $message->to($destinatario->email)->subject('Tu equipo ha sido retado'); });*/ $alertaArray = array('id_jugador' => $destinatario->id_jugador, 'estado' => 'a', 'id_tipo_alerta' => 2, 'id_referencia' => $reto["data"]["id"]); $alerta = $this->AlertasRepository->create($alertaArray); if (getenv('APP_ENV') == "production") { $url = 'http://pruebas.quepartido.com/front/public/'; } else { $url = 'http://quepartido.com/'; } $alerta_text = '<div onclick="window.open(' . $url . 'equipos/perfil?id_equipo=' . $retador["data"]["id"] . '\')" class="orange">' . strtoupper($retador["data"]["equipo"]) . '</div><span class="message" > quiere enfrentar a tu equipo ' . strtoupper($equipo["data"]["equipo"]) . ' el día ' . $reto["data"]["fecha"] . ' a las ' . date("H:i", strtotime($reto["data"]["fecha"] . " " . $reto["data"]["fecha"])) . '</span><br><input name="button" type="button" class="send4" onclick="responderAlerta(' . $alerta["data"]["id"] . ',' . $reto["data"]["id"] . ',\'t\')" style="height: 30" id="button" value=" ACEPTAR "><input name="button" type="button" class="send3" style="height: 30" id="button" onclick="responderAlerta(' . $alerta["data"]["id"] . ',' . $reto["data"]["id"] . ',\'f\')" value=" RECHAZAR ">'; $alerta_app = strtoupper($retador["data"]["equipo"]) . ' quiere enfrentar a tu equipo ' . strtoupper($equipo["data"]["equipo"]) . ' el día ' . $reto["data"]["fecha"] . ' a las ' . date("H:i", strtotime($reto["data"]["fecha"] . " " . $reto["data"]["hora"])); $updateArray = array('alerta' => $alerta_text, 'alerta_app' => $alerta_app); $alerta = $this->AlertasRepository->update($updateArray, $alerta["data"]["id"]); } //Realizar reserva si viene if (isset($retoData['id_campo'])) { $campo = Campo::where("id_campo", "=", $retoData['id_campo'])->join("canchas", "campos.id_cancha", "=", "canchas.id_cancha")->first(); $fechado = explode("-", $reto->fecha); $traddia['1'] = "Lunes"; $traddia['2'] = "Martes"; $traddia['3'] = "Miercoles"; $traddia['4'] = "Jueves"; $traddia['5'] = "Viernes"; $traddia['6'] = "Sabado"; $traddia['7'] = "Domingo"; $tradMes['01'] = "Enero"; $tradMes['02'] = "Febrero"; $tradMes['03'] = "Marzo"; $tradMes['04'] = "Abril"; $tradMes['05'] = "Mayo"; $tradMes['06'] = "Junio"; $tradMes['07'] = "Julio"; $tradMes['08'] = "Agosto"; $tradMes['09'] = "Septiembre"; $tradMes['10'] = "Octubre"; $tradMes['11'] = "Noviembre"; $tradMes['12'] = "Diciembre"; $fechaformat = strtr(date("N", strtotime($reto->fecha)), $traddia) . ", " . $fechado[2] . " de " . strtr($fechado[1], $tradMes) . " de " . $fechado[0]; $reserva = new Reserva(); $reserva->id_cancha = $campo->id_cancha; $reserva->fecha = $reto->fecha; $reserva->hora = $retoData['horareserva'] . ":00:00"; $reserva->id_jugador = $usuario->id_jugador; $reserva->id_campo = $campo->id_campo; $reserva->total_horas = $retoData['horas']; $reserva->save(); } return response()->json($reto); } catch (\Exception $e) { if ($e instanceof ValidatorException) { return response()->json($e->toArray(), 400); } else { return response()->json($e->getMessage(), 500); } } }