diff --git a/app/Http/Livewire/ShowServicios.php b/app/Http/Livewire/ShowServicios.php index 813b7d9..bf43cb3 100755 --- a/app/Http/Livewire/ShowServicios.php +++ b/app/Http/Livewire/ShowServicios.php @@ -90,7 +90,7 @@ class ShowServicios extends Component //dd($this->tarifa_id); $this->cargartarjetaPlan($this->tarifa_id); } - + $this->msj = Configuracione::orderby('id', 'desc')->select('msj_compra', 'msj_wp', 'clave_1', 'clave_2', 'clave_3', 'clave_4', 'clave_5', 'clave_6', 'iptv')->first(); @@ -123,7 +123,7 @@ class ShowServicios extends Component //Traer el servicio relacionado con esa tarifa $servicio_tarifa = $tarifa_seleccionada->servicio; - + //INFORMACIÓN DEL SERVICIO $this->servicio_id = $servicio_tarifa->id; //Id $this->servicio_tarjetaPlan = $servicio_tarifa->nombre; //Nombre @@ -146,7 +146,7 @@ class ShowServicios extends Component ->where('tarifa_id', $id) ->first(); - + //Si tiene tarifa personalizada toma el precio, si no tiene da el valor de la tarifa. $this->valor_tarjetaPlan = ($usuario_tarifa) ? $usuario_tarifa->precio : $tarifa_seleccionada->valor; //Si tiene tarifa personalizada toma la utilidad, si no tiene toma la utilidad de la tarifa. @@ -163,7 +163,12 @@ class ShowServicios extends Component ->whereDate('vencimiento', '<=', $this->fecha_final_2) ->where('servicio_id', $servicio_tarifa->id) ->where('estado', 'pendiente') - ->doesntHave('perfil') + ->where(function ($query) { + $query->doesntHave('perfil') + ->orWhereHas('perfil', function ($query) { + $query->whereNull('historial_id'); + }); + }) ->count(); } else { @@ -186,12 +191,12 @@ class ShowServicios extends Component ->where('estado', 'activo') ->having('historiales_count', '<=', $cantidad_restante) ->get(); - //dd($cuentas_pantallas); // con count da un numero entero - + //dd($cuentas_pantallas); // con count da un numero entero + $cuentas_pantallas_tomadas = Historial_cuenta::whereIn('cuenta_id', $cuentas_pantallas ->pluck('id'))->whereNotNull('historial_id') ->count(); - //dd($cuentas_pantallas_tomadas); + //dd($cuentas_pantallas_tomadas); //Validar si el numero pantallas del servicio es igual o mayor que lo solicitado if ($servicio_tarifa->pantallas >= $cantidad_solicitada) { //dd($servicio_tarifa->pantallas * $cuentas_pantallas->count()); @@ -203,15 +208,16 @@ class ShowServicios extends Component } } - + //dd($this->tarjetaPlan); $this->tarjetaPlan = true; } - public function cerrartarjetaPlan(){ + public function cerrartarjetaPlan() + { $this->cantidad_tarjetaPlan = 1; $this->tarjetaPlan = false; - $this->tarifa_id = ''; + $this->tarifa_id = ''; } @@ -313,25 +319,25 @@ class ShowServicios extends Component // ->havingRaw("COUNT(*) >= $suma"); //}) ->get(); - if ($cuenta->isEmpty()) { - $suma3 = $pantalla_servicio - $pantallas; - $cantidad_necesaria = $this->cantidad_tarjetaPlan; - $cuenta = Cuentas::where('servicio_id', $this->servicio_id) - ->whereDate('inicio', '>=', $this->fecha) - ->whereDate('vencimiento', '>=', $this->fecha_final_1) - ->whereDate('vencimiento', '<=', $this->fecha_final_2) - ->Orderby('inicio', 'ASC') - ->withCount('historiales') - ->where('estado', 'activo') - ->having('historiales_count', '<=', $suma3) - //->with('perfil') - //->whereDoesntHave('perfil', function ($query) use ($suma2) { - //$query->select('cuenta_id') - // ->groupBy('cuenta_id') - // ->havingRaw("COUNT(*) >= $suma2"); - //}) - ->get(); - } + if ($cuenta->isEmpty()) { + $suma3 = $pantalla_servicio - $pantallas; + $cantidad_necesaria = $this->cantidad_tarjetaPlan; + $cuenta = Cuentas::where('servicio_id', $this->servicio_id) + ->whereDate('inicio', '>=', $this->fecha) + ->whereDate('vencimiento', '>=', $this->fecha_final_1) + ->whereDate('vencimiento', '<=', $this->fecha_final_2) + ->Orderby('inicio', 'ASC') + ->withCount('historiales') + ->where('estado', 'activo') + ->having('historiales_count', '<=', $suma3) + //->with('perfil') + //->whereDoesntHave('perfil', function ($query) use ($suma2) { + //$query->select('cuenta_id') + // ->groupBy('cuenta_id') + // ->havingRaw("COUNT(*) >= $suma2"); + //}) + ->get(); + } // dd($cuenta); } elseif ((int) $pantalla_servicio_completa == (int) $this->pantallas_tarjetaPlan) { //Cuentas completas @@ -358,9 +364,9 @@ class ShowServicios extends Component ->having('historiales_count', '<=', $suma2) //->with('perfil') //->whereDoesntHave('perfil', function ($query) use ($suma2) { - //$query->select('cuenta_id') - // ->groupBy('cuenta_id') - // ->havingRaw("COUNT(*) >= $suma2"); + //$query->select('cuenta_id') + // ->groupBy('cuenta_id') + // ->havingRaw("COUNT(*) >= $suma2"); //}) ->get(); } else { @@ -393,7 +399,7 @@ class ShowServicios extends Component $eliminar = Historial_cuenta::where('historial_id', $historial->id)->delete(); $logsGeneral = new Log_general(); $logsGeneral->user_id = Auth::user()->id; - $logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email . ' Tuvo error de "No hay cuentas disponibles" Comprando el servicio ' . $servicioNombre . ' - ' . $cuentasMostar . ' cantidad de ' . $this->cantidad_tarjetaPlan . ' por un valor de $' . $total_valor.' Se desligaron todas las cuentas.'; + $logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email . ' Tuvo error de "No hay cuentas disponibles" Comprando el servicio ' . $servicioNombre . ' - ' . $cuentasMostar . ' cantidad de ' . $this->cantidad_tarjetaPlan . ' por un valor de $' . $total_valor . ' Se desligaron todas las cuentas.'; $logsGeneral->save(); $this->alert('warning', 'No hay cuentas disponibles!', [ 'position' => 'top' @@ -413,9 +419,9 @@ class ShowServicios extends Component $logsGeneral = new Log_general(); $logsGeneral->user_id = Auth::user()->id; - $logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email . ' ha comprado el servicio ' . $servicioNombre . ' - ' . $cuentasMostar . ' cantidad de ' . $this->cantidad_tarjetaPlan . ' por un valor de $' . $total_valor .', Saldo anterior: $'.$saldo_anterior.', Nuevo saldo disponible: $'.$nuevo_saldo; + $logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email . ' ha comprado el servicio ' . $servicioNombre . ' - ' . $cuentasMostar . ' cantidad de ' . $this->cantidad_tarjetaPlan . ' por un valor de $' . $total_valor . ', Saldo anterior: $' . $saldo_anterior . ', Nuevo saldo disponible: $' . $nuevo_saldo; $logsGeneral->save(); - + $this->credenciales($historial); @@ -436,7 +442,7 @@ class ShowServicios extends Component $eliminar = Historial_cuenta::where('historial_id', $historial->id)->delete(); $logsGeneral = new Log_general(); $logsGeneral->user_id = Auth::user()->id; - $logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email . ' Tuvo error de "No hay cuentas disponibles" Comprando el servicio ' . $servicioNombre . ' - ' . $cuentasMostar . ' cantidad de ' . $this->cantidad_tarjetaPlan . ' por un valor de $' . $total_valor.' No se desconto el saldo, ni se asignaron cuentas.'; + $logsGeneral->detalle = 'El usuario ' . Auth::user()->name . ' - ' . Auth::user()->email . ' Tuvo error de "No hay cuentas disponibles" Comprando el servicio ' . $servicioNombre . ' - ' . $cuentasMostar . ' cantidad de ' . $this->cantidad_tarjetaPlan . ' por un valor de $' . $total_valor . ' No se desconto el saldo, ni se asignaron cuentas.'; $logsGeneral->save(); $this->alert('warning', 'No hay cuentas disponibles!', [ 'position' => 'top'