public function crearViaje($conductor_id, $ruta_id) { $viaje = new Viaje(); $viaje->conductor_id = $conductor_id; $viaje->ruta_id = $ruta_id; $viaje->fecha = date("Y-m-d"); $pasajeros = Pasajero::select('id')->where('conductor_id', $conductor_id)->where('estado', '=', 'En ruta')->get(); $giros = Giro::select('id')->where('conductor_id', $conductor_id)->where('estado', '=', 'En ruta')->get(); $paquetes = Paquete::select('id')->where('conductor_id', $conductor_id)->where('estado', '=', 'En ruta')->get(); if ($viaje->save()) { foreach ($pasajeros as $pasajero) { $viaje->pasajeros()->attach($pasajero['id']); } foreach ($giros as $giro) { $viaje->giros()->attach($giro['id']); } foreach ($paquetes as $paquete) { $viaje->paquetes()->attach($paquete['id']); } $this->crearPlanilla($viaje->id, $viaje->conductor_id); $planilla = $this->generarDatosPlanilla($viaje->id); return array('viaje' => $viaje, 'planilla' => $planilla); } else { return 'No se pudo crear el viaje'; } }
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'; } }
public function finalizarBusquedaPGP(Request $request) { if ($request['tipo'] == 'giro') { $giro = Giro::find($request['id']); if ($giro) { $giro->estado = 'En ruta'; if ($giro->save()) { return JsonResponse::create('Giro correcto'); } else { return JsonResponse::create('Giro falso'); } } else { return JsonResponse::create('No se encontro el id para este ' . $request['tipo']); } } else { if ($request['tipo'] == 'paquete') { $paquete = Paquete::find($request['id']); if ($paquete) { $paquete->estado = 'En ruta'; if ($paquete->save()) { return JsonResponse::create('Paquete correcto'); } else { return JsonResponse::create('Paquete falso'); } } else { return JsonResponse::create('No se encontro el id para este ' . $request['tipo']); } } else { if ($request['tipo'] == 'pasajero') { $pasajero = Pasajero::find($request['id']); if ($pasajero) { $pasajero->estado = 'En ruta'; if ($pasajero->save()) { return JsonResponse::create('Pasajero correcto'); } else { return JsonResponse::create('Pasajero falso'); } } else { return JsonResponse::create('No se encontro el id para este ' . $request['tipo']); } } } } }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { try { $pasajero = Pasajero::find($id); if (is_null($pasajero)) { \App::abort(404); } else { // $pasajero->conductor_id = ''; // $pasajero->estado = 'En espera'; $pasajero->delete(); return JsonResponse::create(array('message' => "Pasajero eliminado correctamente", 200)); } } catch (Exception $ex) { return JsonResponse::create(array('message' => "No se pudo Eliminar el Pasajero", "exception" => $ex->getMessage(), "request" => json_encode($id)), 401); } }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { try { $conductor = Pasajero::find($id)->conductor; $pasajero = Pasajero::find($id); if (is_null($pasajero)) { \App::abort(404); } else { $pasajero->delete(); $mensaje = 'Se retiro un pasajero que se te habia sido asignado'; $this->enviarNotificacion('', $mensaje, $conductor->id); return JsonResponse::create(array('message' => "Pasajero eliminado correctamente", "request" => json_encode($id)), 200); } } catch (Exception $ex) { return JsonResponse::create(array('message' => "No se pudo Eliminar el Pasajero", "exception" => $ex->getMessage(), "request" => json_encode($id)), 401); } }
public function moverPedidoSolicitud($solicitud_id) { $solicitud = Solicitud::find($solicitud_id); $noty = new NotificacionController(); if ($solicitud->tipo == 'vehiculo') { $cliente = $solicitud->load('cliente'); if ($cliente) { $solicitud->load('datos_pasajeros'); foreach ($solicitud->datos_pasajeros as $pasajero) { $p = new Pasajero(); $p->identificacion = $pasajero->identificacion; $p->nombres = $pasajero->nombre; $p->direccion = "{$solicitud->ciudad_direccion}" . " {$solicitud->direccion_recogida}"; $p->conductor_id = $solicitud->conductor_id; $p->central_id = $solicitud->central_id; $p->telefono = $solicitud->cliente->telefono; $p->estado = 'Asignado'; if ($p->save()) { json_decode($noty->enviarNotificacionConductores('Se te asigno un nuevo pasajero', $solicitud->conductor_id, 'Pasajeros')); } } } } if ($solicitud->tipo == 'paquete') { $p = new Paquete(); $solicitud->load('detalles', 'cliente'); foreach ($solicitud->detalles as $detalle) { $p->conductor_id = $solicitud->conductor_id; $p->central_id = $solicitud->central_id; $p->ide_remitente = $solicitud->cliente->identificacion; $p->nombres = $solicitud->cliente->nombres . $solicitud->cliente->apellidos; $p->telefono = $solicitud->cliente->telefono; $p->direccion = "{$solicitud->ciudad_direccion}" . " {$solicitud->direccion_recogida}"; $p->nombre_receptor = $detalle->destinatario; $p->telefono_receptor = $detalle->telefono; $p->direccionD = $detalle->direccion; $p->descripcion_paquete = $detalle->descripcion; if ($p->save()) { $noty->enviarNotificacionConductores('Se te asigno un nuevo paquete', $solicitud->conductor_id, 'Paquete'); } } } if ($solicitud->tipo == 'giro') { $g = new Giro(); $solicitud->load('detalles', 'cliente'); foreach ($solicitud->detalles as $detalle) { $g->conductor_id = $solicitud->conductor_id; $g->central_id = $solicitud->central_id; $g->ide_remitente = $solicitud->cliente->identificacion; $g->nombres = $solicitud->cliente->nombres . $solicitud->cliente->apellidos; $g->telefono = $solicitud->cliente->telefono; $g->direccion = "{$solicitud->ciudad_direccion}" . " {$solicitud->direccion_recogida}"; $g->nombre_receptor = $detalle->destinatario; $g->telefono_receptor = $detalle->telefono; $g->direccionD = $detalle->direccion; $g->monto = $detalle->descripcion; if ($g->save()) { json_decode($noty->enviarNotificacionConductores('Se te asigno un nuevo giro', $solicitud->conductor_id, 'Giro')); } } } if ($solicitud->tipo == 'pasajero') { if ($solicitud->load('datos_pasajeros')) { foreach ($solicitud->datos_pasajeros as $pasajero) { $p = new Pasajero(); $p->identificacion = $pasajero->identificacion; $p->nombres = $pasajero->nombre; $p->direccion = "{$solicitud->ciudad_direccion}" . " {$solicitud->direccion_recogida}"; $p->conductor_id = $solicitud->conductor_id; $p->central_id = $solicitud->central_id; $p->telefono = $pasajero->telefono; $p->estado = 'Asignado'; if ($p->save()) { json_decode($noty->enviarNotificacionConductores('Se te asigno un nuevo pasajero', $solicitud->conductor_id, 'Pasajeros')); } } } } }
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'); } }