public function updateConductoresEnTurno(Request $request, $ruta_id) { $noty = new NotificacionController(); $data = $request->json()->all(); $turnos_actuales = []; $ruta = Ruta::find($ruta_id); foreach ($data['turnos'] as $turno) { $turnos_actuales[$turno['conductor_id']] = ['turno' => $turno['turno']]; } if ($ruta->toUpdateTurnos()->sync($turnos_actuales)) { $ruta = $ruta->destino->ciudad; foreach ($data['turnos'] as $turno) { if ($request['accion'] == 'agregar') { $mensaje = "Has sido agregado a la ruta hacia {$ruta->nombre} en el turno " . $turno['turno']; $noty->enviarNotificacionConductores($mensaje, $turno['conductor_id'], 'Actualizacion turno', $ruta_id); } if ($request['accion'] == 'quitar') { $mensaje = "Has sido removido de los turnos de la ruta hacia {$ruta->nombre}"; $noty->enviarNotificacionConductores($mensaje, $turno['conductor_id'], 'Actualizacion turno', $ruta_id); } if ($request['accion'] == 'default') { $mensaje = "Estas en el turno " . $turno['turno'] . " en la ruta hacia {$ruta->nombre}"; $noty->enviarNotificacionConductores($mensaje, $turno['conductor_id'], 'Actualizacion turno', $ruta_id); } } return response()->json(['mensaje' => 'turnos modifcados'], 201); } else { return response()->json(['mensajError' => 'error al actualizar lso turnos'], 400); } }
public function crearViaje($conductor_id, $ruta_id, $deducciones) { $viaje = new Viaje(); $totalD = 0; $noty = new NotificacionController(); $viaje->conductor_id = $conductor_id; $viaje->ruta_id = $ruta_id; $viaje->fecha = date("Y-m-d"); $pasajeros = Pasajero::select('*')->where('conductor_id', $conductor_id)->where('estado', '=', 'Asignado')->get(); $giros = Giro::select('*')->where('conductor_id', $conductor_id)->where('estado', '=', 'Asignado')->get(); $paquetes = Paquete::select('*')->where('conductor_id', $conductor_id)->where('estado', '=', 'Asignado')->get(); if ($viaje->save()) { $noty->enviarNotificacionConductores('La central a autorizado tu salida, acercate a secretaria para recivir la planilla.', $conductor_id, 'Despacho'); 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'); } } foreach ($deducciones as $deduccion) { $viaje->deducciones()->attach($deduccion['id']); if ($deduccion['nombre'] == 'PASAJE') { $valorP = $deduccion['valor']; } if ($deduccion['nombre'] != 'PASAJE') { $totalD += $deduccion['valor']; } } $total = $totalD + count($pasajeros) * $valorP; $this->crearPlanilla($viaje->id, $viaje->conductor_id, $total); $planilla = $this->generarDatosPlanilla($viaje->id); $estado = Conductor::find($viaje->conductor_id); $estado->estado = 'En ruta'; $estado->save(); return array('viaje' => $viaje, 'planilla' => $planilla); } else { return 'No se pudo crear el viaje'; } }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request, $empresa_id) { $noty = new NotificacionController(); $conductores = \DB::table('usuarios')->select('reg_id')->where('rol_id', 4)->get(); $i = 0; $reg_ids = []; foreach ($conductores as $reg_id) { $reg_ids[$i] = $reg_id->reg_id; $i++; } $mensaje = 'La empresa ha agendado una nueva actividad'; // try{ $data = $request->json()->all(); $noty->enviarNotificacionConductores($mensaje, $reg_ids, 'Acividad'); $actividad = new Actividad($data); if (!Empresa::find($empresa_id)->agendaActividades()->save($actividad)) { return response()->json(['mensajeError' => 'no se ha podido almacenar el registro'], 400); } return response()->json(['mensaje' => 'se guardo correctamente el registro'], 201); // } catch (\Exception $exc) { // return response()->json(array("exception"=>$exc->getMessage()), 400); // } }
public function finalizarViaje(Request $request) { $noty = new NotificacionController(); $conductor = DB::table('viajes')->where('conductor_id', $request['id'])->where('estado', 'En ruta')->first(); if ($conductor) { $viaje = Viaje::find($conductor->id); if ($viaje) { if ($viaje->update(['estado' => 'Finalizado'])) { foreach ($viaje->pasajeros as $pasajero) { $pasajero->estado = 'Finalizado'; if ($pasajero->save()) { $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' => 'f']); $noty->enviarNotificacionClientes('Finalizo su solicitud, gracias por haber echo uso de nuestro servicio', $dato->cliente_id, 'Finalizado'); } } } foreach ($viaje->giros as $giro) { $giro->estado = 'Finalizado'; if ($giro->save()) { $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' => 'f']); $noty->enviarNotificacionClientes('Finalizo su solicitud, gracias por haber echo uso de nuestro servicio', $dato->cliente_id, 'Finalizado'); } } } foreach ($viaje->paquetes as $paquete) { $paquete->estado = 'Finalizado'; if ($paquete->save()) { $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' => 'f']); $noty->enviarNotificacionClientes('Finalizo su solicitud, gracias por haber echo uso de nuestro servicio', $dato->cliente_id, 'Finalizado'); } } } } } else { return JsonResponse::create('No existe un viaje para esta id'); } } else { return JsonResponse::create('No se encontro el viaje asociado al conductor'); } return JsonResponse::create($viaje); }
public function moverPasajero(Request $request, $pasajero_id) { $noty = new NotificacionController(); $pasajero = $this->show($pasajero_id); if ($pasajero->conductor_id) { json_decode($noty->enviarNotificacionConductores('Se te fue retirado un pasajero que se te habia asignado', $pasajero->conductor_id, 'Pasajero')); } $pasajero->conductor_id = $request->conductor_id; $pasajero->estado = 'Asignado'; if ($pasajero->save()) { return JsonResponse::create(array('message' => 'Se movio el pasajero conrrectamente de conductor.', json_decode($noty->enviarNotificacionConductores('Se te asigno un nuevo pasajero', $request->conductor_id, 'Pasajero')))); } }
public function rechazarSolicitud(Request $request, $solicitud_id) { $noty = new NotificacionController(); $solicitud = Solicitud::find($solicitud_id); $solicitud->estado = 'r'; $message = $request->causa_rechazo; $solicitud->causa_rechazo = $message; if ($solicitud->save()) { $noty->enviarNotificacionClientes($message, $solicitud->cliente_id, 'Rechazo'); return JsonResponse::create(array('message' => 'Se rechazo la solicitud correctamente')); } else { return JsonResponse::create(array('message' => 'Ocurrio un error al rechazar la solicitud ')); } }
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'); } }