function enviarNotificacion($collapseKey, $mensaje, $conductor_id) { //llamar al usuario $data = Conductor::find($conductor_id)->usuario; if ($data != false) { $apiKey = 'AIzaSyAZB5qS20uH0-W_btPvbLRx_D2qFHnNCt8'; $userIdentificador = $data["reg_id"]; $headers = array('Authorization:key=' . $apiKey); $data = array('registration_ids' => $userIdentificador, 'collapse_key' => $collapseKey, 'data.message' => $mensaje, 'data.fecha' => date('Y-m-d')); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send"); if ($headers) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if (curl_errno($ch)) { return 'fail'; } if ($httpCode != 200) { return 'status code 200'; } curl_close($ch); return $response; } else { return 'No existe el usuario'; } }
public function storePago(Request $request, $conductor_id) { $data = $request->json()->all(); $conductor = Conductor::find($conductor_id); $pago = new PagoPrestacion(['prestacion_id' => $data['prestacion_id'], 'fecha' => $data['fecha'] ? $data['fecha'] : date("Y-m-d"), 'valor' => $data['valor']]); if (!$conductor->pagosPrestaciones()->save($pago)) { return response()->json(['message' => 'no se pudo almacenar el registro'], 400); } return $pago; }
public function index($conductor_id) { try { $pasajeros = Conductor::find($conductor_id)->pasajeros; if (!$pasajeros) { return response()->json(array('message' => 'El conductor no tiene pasajeros asignados'), 400); } else { return $pasajeros; } } catch (\Exception $e) { return response()->json(array('message' => 'No se encontro ningun dato de consulta'), 400); } }
public function store(Request $request, $central_id) { $noty = new NotificacionController(); try { $data = $request->json()->all(); $paquete = new Paquete($data); Conductor::find($data['conductor_id'])->paquetes()->save($paquete); $mensaje = 'Se te asigno un nuevo paquete'; if (!Central::find($central_id)->paquetes()->save($paquete)) { return response()->json(['mensajeError' => 'No se ha posido registrar al paquete'], 400); } return JsonResponse::create(array('message' => "Paquete asignado correctamente", json_decode($noty->enviarNotificacionConductores($mensaje, $data['conductor_id'], 'Paquetes'))), 200); } catch (\Exception $exc) { return response()->json(array("exception" => $exc->getMessage()), 400); } }
function enviarNotificacionConductores($mensaje, $conductor_id, $tipo, $datos = null) { $devices = null; $device_token = null; $key = env('KEY_CONDUCTORES'); $reg_id = ''; //llamar al usuario if (is_array($conductor_id)) { $devices = $conductor_id; $reg_id = true; } else { $reg_id = Conductor::find($conductor_id)->usuario; $device_token = $reg_id->reg_id; } if ($reg_id != false) { if ($devices) { $regId = $devices; $regArray = $regId; } else { $regId = $device_token; $regArray[] = $regId; } $msg = $mensaje; $message = array("title" => 'Viaja seguro', "message" => $msg, "sound" => 1, "tipo" => $tipo, "subtitle" => $tipo, "datos" => $datos); $url = 'https://android.googleapis.com/gcm/send'; $fields = array('registration_ids' => $regArray, 'data' => $message); $headers = array('Authorization: key=' . $key, 'Content-Type: application/json'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); curl_close($ch); return $result; } else { return 'No existe el conductor'; } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { $data = $request->all(); $vehiculo_conductor = Conductor::find($data['conductor_id'])->first(); if (!$vehiculo_conductor->load('vehiculo')) { $busqueda = Vehiculo::select("placa")->where("placa", $data["placa"])->first(); if ($busqueda == null) { if (!$vehiculo_conductor->vehiculo()->save(new Vehiculo($data))) { return response()->json(['message' => 'no se ha podido almacenar el vehiculo del conductor'], 400); } else { return response()->json(['message' => 'Guardado'], 400); } } else { return response()->json(array('message' => "La placa del vehiculo ya se encuentra registrada."), 200); } } else { $vehiculo = Vehiculo::select("*")->where("placa", $data["placa"])->first(); $vehiculo->modelo = $data['modelo']; $vehiculo->cupos = $data['cupos']; $vehiculo->color = $data['color']; $vehiculo->save($data); return JsonResponse::create(array('message' => "Vehiculo actualizado correctametne."), 200); } }
public function bpasajeros($central_id) { return JsonResponse::create(Conductor::where(['estado' => 'En ruta', 'central_id' => $central_id, 'activo' => 1])->count()); }
public function verificarConductor($identificacion) { return Conductor::where('identificacion', $identificacion)->first(); }
public function generarNumeroPlanilla($conductor_id) { $central = Conductor::find($conductor_id)->first(); $planilla = \DB::table('planilla')->where('numero_planilla', DB::raw("(select max(`numero_planilla`) from planilla)"))->where('central_id', $central->central_id)->get(); if (!$planilla) { return 'A001'; } else { foreach ($planilla as $c) { return ++$c->numero_planilla; } } }
private function despachoEmpresaNormal($data) { $noty = new NotificacionController(); $viaje = new Viaje(); $viaje->conductor_id = $data['conductor']['id']; $viaje->ruta_id = $data['ruta']['id']; $viaje->fecha = date("Y-m-d"); $viaje->save(); if ($viaje) { $noty->enviarNotificacionConductores('La central a autorizado tu salida, acercate a secretaria para recivir la planilla.', $viaje->conductor_id, 'Despacho'); $pasajeros = Pasajero::select('*')->where('conductor_id', $viaje->conductor_id)->where('estado', '=', 'Asignado')->get(); $giros = Giro::select('*')->where('conductor_id', $viaje->conductor_id)->where('estado', '=', 'Asignado')->get(); $paquetes = Paquete::select('*')->where('conductor_id', $viaje->conductor_id)->where('estado', '=', 'Asignado')->get(); foreach ($pasajeros as $pasajero) { $viaje->pasajeros()->attach($pasajero['id']); $noty->enviarNotificacionClientes('El conductor a salido a recogerlo, pronto pasara por usted, sea paciente', $pasajero['identificacion'], 'Busqueda'); $viaje['datos'] = \DB::table('datos_solicitudes_pasajeros')->where('identificacion', $pasajero->identificacion)->join('solicitudes_cliente', 'datos_solicitudes_pasajeros.solicitud_id', '=', 'solicitudes_cliente.id')->select('solicitudes_cliente.estado', 'solicitudes_cliente.id', 'solicitudes_cliente.cliente_id')->where('solicitudes_cliente.estado', '<>', 'f')->get(); foreach ($viaje['datos'] as $dato) { \DB::table('solicitudes_cliente')->where('id', $dato->id)->update(['estado' => 'v']); $noty->enviarNotificacionClientes('El vehiculo a salido de la central, por favor se paciente', $dato->cliente_id, 'Vehiculo en camino'); } } foreach ($giros as $giro) { $viaje->giros()->attach($giro['id']); $viaje['datos'] = \DB::table('datos_solicitudes_girospaquetes')->join('solicitudes_cliente', 'datos_solicitudes_girospaquetes.solicitud_id', '=', 'solicitudes_cliente.id')->join('clientes', 'solicitudes_cliente.cliente_id', '=', 'clientes.id')->join('giros', 'datos_solicitudes_girospaquetes.destinatario', '=', 'giros.nombre_receptor')->select('solicitudes_cliente.id', 'solicitudes_cliente.estado', 'solicitudes_cliente.cliente_id', 'clientes.identificacion')->where('clientes.identificacion', $giro->ide_remitente)->where('solicitudes_cliente.tipo', 'giro')->where('solicitudes_cliente.estado', '<>', 'f')->get(); foreach ($viaje['datos'] as $dato) { \DB::table('solicitudes_cliente')->where('id', $dato->id)->update(['estado' => 'v']); $noty->enviarNotificacionClientes('El vehiculo a salido de la central, por favor se paciente', $dato->cliente_id, 'Vehiculo en camino'); } } foreach ($paquetes as $paquete) { $viaje->paquetes()->attach($paquete['id']); $viaje['datos'] = \DB::table('datos_solicitudes_girospaquetes')->join('solicitudes_cliente', 'datos_solicitudes_girospaquetes.solicitud_id', '=', 'solicitudes_cliente.id')->join('clientes', 'solicitudes_cliente.cliente_id', '=', 'clientes.id')->join('paquetes', 'datos_solicitudes_girospaquetes.destinatario', '=', 'paquetes.nombre_receptor')->select('solicitudes_cliente.id', 'solicitudes_cliente.estado', 'solicitudes_cliente.cliente_id', 'clientes.identificacion')->where('clientes.identificacion', $paquete->ide_remitente)->where('solicitudes_cliente.tipo', 'paquete')->where('solicitudes_cliente.estado', '<>', 'f')->get(); foreach ($viaje['datos'] as $dato) { \DB::table('solicitudes_cliente')->where('id', $dato->id)->update(['estado' => 'v']); $noty->enviarNotificacionClientes('El vehiculo a salido de la central, por favor se paciente', $dato->cliente_id, 'Vehiculo en camino'); } } $totalD = 0; foreach ($data['deducciones'] as $deduccion) { $viaje->deducciones()->attach($deduccion['id']); if ($deduccion['nombre'] == 'PASAJE') { // $valorP = $deduccion['valor']; $valorP = 17000; } if ($deduccion['nombre'] != 'PASAJE') { // $totalD += $deduccion['valor']; // $totalD += $deduccion['valor']; } } $total = $totalD + count($pasajeros) * $valorP; $cPlanilla = $this->crearPlanillaNormal($viaje->id, $data['central_id'], $total); if ($cPlanilla) { $estado = Conductor::find($viaje->conductor_id); $estado->estado = 'En ruta'; $estado->save(); if ($estado) { return $cPlanilla; } else { return JsonResponse::create('No se pudo actualizar el estado del conductor'); } } else { return JsonResponse::create('Error al crear la planilla'); } } else { $viaje->pasajeros()->detach(); $viaje->paquetes()->detach(); $viaje->giros()->detach(); $viaje->delete(); return JsonResponse::create('Ocurrio un error en la generacion del viaje'); } }
public function postVehiculo(Request $request, $conductor_id) { $data = $request->all(); $busqueda = Vehiculo::select("placa")->where("placa", $data["placa"])->first(); if ($busqueda == null) { $conductor = Conductor::find($conductor_id); if (!$conductor->vehiculo()->save(new Vehiculo($data))) { return response()->json(['mensajeError' => 'no se ha podido almacenar el registro'], 400); $usuario->delete(); } return JsonResponse::create(array('message' => "Se asigno el vehiculo correctametne."), 200); } else { return JsonResponse::create(array('message' => "La placa del vehiculo ya se encuentra registrada."), 200); } }