Пример #1
0
 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';
     }
 }
Пример #2
0
 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';
     }
 }
Пример #3
0
 public function destroy($id)
 {
     try {
         $conductor = Giro::find($id)->conductor;
         $giro = Giro::find($id);
         if (is_null($giro)) {
             \App::abort(404);
         } else {
             $giro->delete();
             $mensaje = 'Se retiro un giro que se te habia sido asignado';
             $this->enviarNotificacion('', $mensaje, $conductor->id);
             return JsonResponse::create(array('message' => "Giro eliminado correctamente", "request" => json_encode($id)), 200);
         }
     } catch (Exception $ex) {
         return JsonResponse::create(array('message' => "No se pudo Eliminar el Giro", "exception" => $ex->getMessage(), "request" => json_encode($id)), 401);
     }
 }
 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']);
                 }
             }
         }
     }
 }
 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');
     }
 }