where([ ['vuelos.id_sitio_web', 6], ['vuelos.visibilidad_pagina_web', 1] ]) ->rightJoin('unidades', 'vuelos.id_unidad', '=', 'unidades.id_unidad') ->orderBy('vuelos.id_vuelo', 'desc') ->get(); return $vuelos; } public static function getDatosVuelo($vuelo) { $sql = DB::select(" SELECT sitios_web.*, vuelos.id_vuelo AS aux_id_vuelo, ( SELECT COUNT(1) FROM recibos_conceptos rc WHERE rc.id = vuelos.id_vuelo AND rc.tipo = 'vuelo' ) AS numero_de_veces_vendido_vuelos, unidades.id_unidad, unidades.nombre_unidad, unidades.nombre_corto, unidades.nombre_unidad_enUS, unidades.nombre_corto_enUS, unidades.numero_personas_piezas, categorias_vuelos.nombre_categoria, IFNULL(galeria.id_galeria, 0) AS id_galeria, galeria.json_rutas_imagenes AS imagenes_galeria, IFNULL(galeria.nombre_galeria, 0) AS nombre_galeria, vuelos.*, ubicaciones.id_ubicacion, CONCAT( 'ID: ', ubicaciones.id_ubicacion, ' - ', ubicaciones.nombre_ubicacion, ', ', ubicaciones.estado, ', ', paises.langES ) AS nombre_ubicacion, IFNULL(vuelos_usd.titulo_vuelo, vuelos.nombre_vuelo) AS titulo_vuelo_usd, vuelos.nombre_vuelo AS titulo_vuelo, IFNULL(vuelos_usd.json_incluye, vuelos.json_incluye) AS json_incluye_usd, IFNULL(vuelos_usd.precio_usd, 0) AS precio_usd FROM vuelos LEFT JOIN vuelos_usd ON vuelos_usd.id_vuelo = vuelos.id_vuelo LEFT JOIN galeria ON galeria.id_galeria = vuelos.id_galeria INNER JOIN ubicaciones ON vuelos.id_ubicacion = ubicaciones.id_ubicacion INNER JOIN paises ON ubicaciones.id_pais = paises.code INNER JOIN categorias_vuelos ON vuelos.id_categoria = categorias_vuelos.id_categoria INNER JOIN unidades ON unidades.id_unidad = vuelos.id_unidad LEFT JOIN sitios_web ON sitios_web.id_sitio_web = vuelos.id_sitio_web WHERE vuelos.id_estatus = 1 AND vuelos.id_sitio_web = ? AND vuelos.enlace_permanente = ? AND vuelos.visibilidad_pagina_web = 1 AND vuelos.no_se_vera_en_home_vuelos = 0 ORDER BY numero_de_veces_vendido_vuelos DESC ", [6, $vuelo]); return $sql; } public static function getInfoVuelo($vuelo) { return DB::select(" SELECT sitios_web.*, vuelos.id_vuelo as aux_id_vuelo, (SELECT COUNT(1) FROM recibos_conceptos WHERE recibos_conceptos.id = vuelos.id_vuelo AND recibos_conceptos.tipo = 'vuelo') as numero_de_veces_vendido_vuelos, unidades.id_unidad, unidades.nombre_unidad, unidades.nombre_corto, unidades.nombre_unidad_enUS, unidades.nombre_corto_enUS, unidades.numero_personas_piezas, categorias_vuelos.nombre_categoria, IFNULL(galeria.id_galeria, 0) AS id_galeria, galeria.json_rutas_imagenes AS imagenes_galeria, IFNULL(galeria.nombre_galeria, 0) AS nombre_galeria, vuelos.*, ubicaciones.id_ubicacion, CONCAT('ID: ', ubicaciones.id_ubicacion, ' - ', ubicaciones.nombre_ubicacion, ', ', ubicaciones.estado, ', ', paises.langES) AS nombre_ubicacion, IFNULL(vuelos_usd.titulo_vuelo, vuelos.nombre_vuelo) AS titulo_vuelo_usd, vuelos.nombre_vuelo AS titulo_vuelo, IFNULL(vuelos_usd.json_incluye, vuelos.json_incluye) AS json_incluye_usd, IFNULL(vuelos_usd.precio_usd, 0) AS precio_usd FROM vuelos LEFT JOIN vuelos_usd ON vuelos_usd.id_vuelo = vuelos.id_vuelo LEFT JOIN galeria ON galeria.id_galeria = vuelos.id_galeria INNER JOIN ubicaciones ON vuelos.id_ubicacion = ubicaciones.id_ubicacion INNER JOIN paises ON ubicaciones.id_pais = paises.code INNER JOIN categorias_vuelos ON vuelos.id_categoria = categorias_vuelos.id_categoria INNER JOIN unidades ON unidades.id_unidad = vuelos.id_unidad LEFT JOIN sitios_web ON sitios_web.id_sitio_web = vuelos.id_sitio_web WHERE vuelos.id_estatus = 1 AND vuelos.enlace_permanente = ? AND vuelos.visibilidad_pagina_web = 1 AND vuelos.no_se_vera_en_home_vuelos = 0 ORDER BY numero_de_veces_vendido_vuelos DESC ", [$vuelo]); } public static function obtenerCotizacion() { $id_cotizacion = (Cotizaciones::max('id_cotizacion') ?? 0) + 1; return [ "folio" => "COT" . str_pad($id_cotizacion, 7, "0", STR_PAD_LEFT), "id_cotizacion" => $id_cotizacion ]; } public function registrarCotizacion(Request $request) { try { $pasajeros = $request->input('num_pasajeros'); $folio_cotizaciones = EsConsultasController::obtenerCotizacion(); $vuelo = new Vuelos; $vuelo_cotizacion = new VuelosCotizaciones(); $cotizaciones = new Cotizaciones(); $datos_vuelo = $vuelo::where(['nombre_vuelo' => $request->input('vuelo_elegido'), 'id_sitio_web' => 6])->get(); $datos_vuelo = json_decode($datos_vuelo, true); $total = $pasajeros * (int)$datos_vuelo[0]["precio_publico"]; $cotizaciones->id_sitio_web = 6; $cotizaciones->folio = $folio_cotizaciones['folio']; $cotizaciones->nombre = ($request->has('nombre') ? $request->input('nombre') : $request->input('email')); $cotizaciones->apellidos = ($request->has('apellido') ? $request->input('apellido') : 'N/A'); $cotizaciones->id_medio_contacto = 13; $cotizaciones->id_genero = 1; $cotizaciones->telefono = $request->input('phone'); $cotizaciones->celular = $request->input('phone'); $cotizaciones->cp = 0; $cotizaciones->mail = $request->input('email'); $cotizaciones->fecha_vuelo = ($request->input('fecha_vuelo_cot') == null ? null : $request->input('fecha_vuelo_cot')); $cotizaciones->cotizacion_abierta = ($request->input('fecha_vuelo_cot') == null ? 1 : 0); $cotizaciones->vuelos = $request->input('vuelo_elegido'); $cotizaciones->servicios_adicionales = ""; $cotizaciones->tipo_descuento = 0; $cotizaciones->descuento = 0; $cotizaciones->subtotal = $total; $cotizaciones->total = $total; $cotizaciones->total_con_iva = $total; $cotizaciones->requiere_factura = 0; $cotizaciones->observaciones = "Cotizacion desde www.globopuertoteotihuacan.com"; $cotizaciones->tipo_moneda = "MXN"; $cotizaciones->pais_persona = 484; $cotizaciones->estado_persona = 1; $cotizaciones->id_estatus = 1; $cotizaciones->fecha_alta = Carbon::now(); $cotizaciones->id_user_alta = 98; $cotizaciones->save(); $vuelo_cotizacion->id_vuelo = $datos_vuelo[0]["id_vuelo"]; $vuelo_cotizacion->id_unidad = $datos_vuelo[0]["id_unidad"]; $vuelo_cotizacion->cantidades = $pasajeros; $vuelo_cotizacion->precio_vendido_p_pax_vuelo = $total; $vuelo_cotizacion->precio_especial = 0; $vuelo_cotizacion->id_cotizacion = $folio_cotizaciones["id_cotizacion"]; $vuelo_cotizacion->pasajero_adicional = 0; $vuelo_cotizacion->id_estatus = 1; $vuelo_cotizacion->id_user_alta = 98; $vuelo_cotizacion->fecha_alta = Carbon::now(); $vuelo_cotizacion->save(); return response()->json([ "exito" => 1 ]); } catch (Exception $e) { return response()->json([ "exito" => 0, "error" => $e->getMessage() ]); } } public static function obtenerServiciosAdicionales() { try { $response = Http::timeout(10)->get( 'https://erp.skyballoons.mx/servicios-adicionales-webservice', [ 'comercio' => 'skyballoons', 'key' => 'f093328776ae4cd210dc7b4ee4093e45' ] ); if ($response->successful()) { return $response->json(); } return []; } catch (\Exception $e) { return []; } } }