Example #1
0
 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);
     }
 }