Initial commit
This commit is contained in:
@@ -0,0 +1,543 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Livewire;
|
||||
|
||||
use App\Models\Cuentas;
|
||||
use App\Models\Historiale;
|
||||
use App\Models\Historial_cuenta;
|
||||
use App\Models\Role;
|
||||
use App\Models\Servicio;
|
||||
use App\Models\Tarifas;
|
||||
use App\Models\user;
|
||||
use Carbon\Carbon;
|
||||
use Livewire\Component;
|
||||
use Jantinnerezo\LivewireAlert\LivewireAlert;
|
||||
use Livewire\WithFileUploads;
|
||||
use Livewire\WithPagination;
|
||||
|
||||
|
||||
class ShowPlanes extends Component
|
||||
{
|
||||
use LivewireAlert;
|
||||
use WithFileUploads;
|
||||
use WithPagination;
|
||||
|
||||
public $delete_cuenta;
|
||||
public $informacionTarifaRol;
|
||||
|
||||
public $newCuenta = false;
|
||||
public $renovar = false;
|
||||
public $serviciosModal = false;
|
||||
public $modTarifas = false;
|
||||
|
||||
public $roles_modTarifas;
|
||||
public $pantallas_modTarifas;
|
||||
public $precio_modTarifas = 0;
|
||||
|
||||
public $estadoTarifa = true;
|
||||
public $diasTarifa = '30';
|
||||
public $servicio_modTarifas;
|
||||
|
||||
|
||||
public $buscar;
|
||||
public $servicios_id;
|
||||
public $fechaActual;
|
||||
public $id_cuentaVer;
|
||||
public $consulta_verUsuarios;
|
||||
public $nombre_servicios = '';
|
||||
|
||||
|
||||
public $nombre_servicio;
|
||||
public $descripcion_servicio;
|
||||
public $estado_servicio;
|
||||
public $color_servicio;
|
||||
|
||||
|
||||
public $servicio_newCuenta;
|
||||
public $usuario_newCuenta;
|
||||
public $password_newCuenta;
|
||||
public $fecha_inicial;
|
||||
public $fecha_final;
|
||||
|
||||
|
||||
public $observacionesm = false;
|
||||
public $observaciones;
|
||||
public $id_observacion;
|
||||
|
||||
public $observacionesm1 = false;
|
||||
public $observaciones1;
|
||||
public $id_observacion1;
|
||||
|
||||
|
||||
public $usuario_renovar;
|
||||
public $password_renovar;
|
||||
public $fecha_inicial_renovar;
|
||||
public $fecha_final_renovar;
|
||||
|
||||
public $servicio;
|
||||
|
||||
public $photo;
|
||||
public $photo_inicio;
|
||||
|
||||
public $estado='activo';
|
||||
public $completa;
|
||||
public $pantallas;
|
||||
public $venceHoy;
|
||||
public $activoHoy;
|
||||
public $libres = null;
|
||||
|
||||
public $delete_1=['1'];
|
||||
public $tarifas;
|
||||
public $addUser;
|
||||
public $usuarios;
|
||||
|
||||
public $selectedOption;
|
||||
public $searchTerm = '';
|
||||
public $tarifa;
|
||||
public $perfil;
|
||||
public $repetidas;
|
||||
|
||||
public $editarTarifaRol = false;
|
||||
|
||||
|
||||
public function render()
|
||||
{
|
||||
$this->fechaActual = date('Y-m-d');
|
||||
|
||||
$consulta_tarifas = Tarifas::take(1);
|
||||
|
||||
if(empty($this->fecha_inicial)){
|
||||
$this->fecha_inicial=Carbon::now()->format('Y-m-d');
|
||||
$this->fecha_final=Carbon::now()->addDay(30)->format('Y-m-d');
|
||||
}
|
||||
if ($this->servicio_modTarifas) {
|
||||
$this->tarifas = Tarifas::with('rol')
|
||||
->where('servicio_id', $this->servicio_modTarifas)
|
||||
->where('estado', 'activo')
|
||||
->get();
|
||||
|
||||
}
|
||||
|
||||
// Empezamos definiendo la consulta básica
|
||||
$consulta_cuentas = Cuentas::where('correo', 'LIKE', '%'.$this->buscar.'%')
|
||||
->withCount('historiales')
|
||||
->with('historiales')
|
||||
->orderBy('id','DESC');
|
||||
|
||||
$consulta_cuentas = $consulta_cuentas->when(!empty($this->servicios_id), function ($query) {
|
||||
return $query->where('servicio_id', $this->servicios_id);
|
||||
})
|
||||
->when(!empty($this->completa), function ($query) {
|
||||
return $query->where('estado', 'pendiente');
|
||||
})
|
||||
->when(!empty($this->pantallas), function ($query) {
|
||||
return $query->where('estado', 'activo');
|
||||
})
|
||||
->when(!empty($this->activoHoy), function ($query) {
|
||||
$fechaHoy = Carbon::now()->subDay(1);
|
||||
return $query->whereDate('vencimiento', '>', $fechaHoy);
|
||||
})
|
||||
->when($this->venceHoy, function ($query) {
|
||||
$fechaHoy = Carbon::now()->addDay(1);
|
||||
return $query->whereDate('vencimiento', '<', $fechaHoy);
|
||||
})
|
||||
->when($this->libres, function ($query) {
|
||||
return $query->whereDoesntHave('historiales');
|
||||
});
|
||||
|
||||
if (!empty($this->repetidas)) {
|
||||
$consulta_cuentas = $consulta_cuentas->whereIn('correo', function ($subquery) {
|
||||
$subquery->select('correo')
|
||||
->from('cuentas')
|
||||
->groupBy('correo')
|
||||
->havingRaw('COUNT(*) > 1');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$consulta_cuentas = $consulta_cuentas->paginate(30);
|
||||
|
||||
if ( $this->searchTerm) {
|
||||
$this->usuarios = User::where('email', 'LIKE', '%' . $this->searchTerm . '%')->get();
|
||||
if ($this->selectedOption) {
|
||||
$this->searchTerm = $this->selectedOption;
|
||||
}
|
||||
}else{
|
||||
$this->selectedOption = null;
|
||||
}
|
||||
|
||||
|
||||
return view('livewire.show-planes', [
|
||||
|
||||
'cuentas' => $consulta_cuentas,
|
||||
'servicios' => Servicio::where('estado','activo')->get(),
|
||||
'roles' => Role::get()
|
||||
]);
|
||||
}
|
||||
|
||||
//modal Ver
|
||||
public function ver($id, $nom)
|
||||
{
|
||||
$this->id_cuentaVer = $id;
|
||||
$this->consulta_verUsuarios = Cuentas::with('historiales','servicio')->where('id', $id)->first();
|
||||
//dd($this->consulta_verUsuarios);
|
||||
$this->nombre_servicios = $nom;
|
||||
}
|
||||
public function openRenovar()
|
||||
{
|
||||
$this->renovar = true;
|
||||
|
||||
$id = $this->id_cuentaVer;
|
||||
|
||||
$renovarCuenta = Cuentas::findOrFail($id);
|
||||
$this->usuario_renovar = $renovarCuenta->correo;
|
||||
$this->password_renovar = $renovarCuenta->password;
|
||||
$this->fecha_inicial_renovar = $renovarCuenta->inicio;
|
||||
$this->fecha_final_renovar = $renovarCuenta->vencimiento;
|
||||
$this->estado = $renovarCuenta->estado;
|
||||
}
|
||||
public function saveRenovar()
|
||||
{
|
||||
$id = $this->id_cuentaVer;
|
||||
|
||||
|
||||
Cuentas::where('id', $id)->update([
|
||||
'correo' => $this->usuario_renovar,
|
||||
'password' => $this->password_renovar,
|
||||
'inicio' => date('Y-m-d', strtotime(strval($this->fecha_inicial_renovar))),
|
||||
'vencimiento' => date('Y-m-d', strtotime(strval($this->fecha_final_renovar))),
|
||||
'estado' => $this->estado,
|
||||
]);
|
||||
|
||||
$this->alert('success', 'Cuenta renovada correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
|
||||
$this->renovar = false;
|
||||
}
|
||||
|
||||
/* ------------- CREAR ------------- */
|
||||
public function createNewCuenta()
|
||||
{
|
||||
$this->validate([
|
||||
'servicio_newCuenta' => 'required',
|
||||
'usuario_newCuenta' => 'required',
|
||||
'password_newCuenta' => 'required',
|
||||
'fecha_inicial' => 'required',
|
||||
'fecha_final' => 'required',
|
||||
'estado' => 'required',
|
||||
]);
|
||||
|
||||
|
||||
if($consulta_cuenta = Cuentas::where('correo',$this->usuario_newCuenta)->exists()){
|
||||
$this->alert('warning', 'La cuenta ya existe', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
}else{
|
||||
$cuenta = new Cuentas;
|
||||
$cuenta->servicio_id = $this->servicio_newCuenta;
|
||||
$cuenta->correo = $this->usuario_newCuenta;
|
||||
$cuenta->password = $this->password_newCuenta;
|
||||
$cuenta->inicio = date('Y-m-d', strtotime(strval($this->fecha_inicial)));
|
||||
$cuenta->vencimiento = date('Y-m-d', strtotime(strval($this->fecha_final)));
|
||||
$cuenta->estado = $this->estado;
|
||||
$cuenta->save();
|
||||
|
||||
$this->alert('success', 'Cuenta creada correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
|
||||
$this->limpiarInputNewCuenta();
|
||||
|
||||
$this->newCuenta = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
public function createServicio()
|
||||
{
|
||||
$url_foto = $this->photo->store('photos');
|
||||
$url_foto_inicio = $this->photo_inicio->store('photos');
|
||||
|
||||
$servicio = new Servicio;
|
||||
$servicio->nombre = $this->nombre_servicio;
|
||||
$servicio->descripcion = $this->descripcion_servicio;
|
||||
$servicio->estado = $this->estado_servicio;
|
||||
$servicio->color_fondo = $this->color_servicio;
|
||||
$servicio->pantallas = '6';
|
||||
$servicio->img = $url_foto;
|
||||
$servicio->img_inicio = $url_foto_inicio;
|
||||
$servicio->save();
|
||||
|
||||
$this->alert('success', 'Servicio creado correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
|
||||
$this->serviciosModal = false;
|
||||
}
|
||||
public function verObservacion($id)
|
||||
{
|
||||
$verObservacion = Historiale::findOrFail($id);
|
||||
|
||||
$this->id_observacion = $id;
|
||||
$this->observaciones = $verObservacion->observaciones;
|
||||
}
|
||||
public function update()
|
||||
{
|
||||
Historiale::where('id', $this->id_observacion)->update(['observaciones' => $this->observaciones,]);
|
||||
|
||||
$this->alert('success', 'Observacion añadida correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
|
||||
$this->observacionesm = false;
|
||||
}
|
||||
|
||||
public function verObservacion1($id)
|
||||
{
|
||||
$verObservacion = Cuentas::findOrFail($id);
|
||||
|
||||
$this->id_observacion1 = $id;
|
||||
|
||||
$this->observaciones1 = $verObservacion->observaciones;
|
||||
}
|
||||
public function update_observaciones1()
|
||||
{
|
||||
Cuentas::where('id', $this->id_observacion1)->update(['observaciones' => $this->observaciones1,]);
|
||||
|
||||
$this->alert('success', 'Observacion añadida correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
|
||||
$this->observacionesm1 = false;
|
||||
}
|
||||
|
||||
public function delete_cuenta($id)
|
||||
{
|
||||
$this->delete_cuenta = $id;
|
||||
$this->alert('warning', '¿Eliminar cuenta?', [
|
||||
'position' => 'center',
|
||||
'timer' => '10000',
|
||||
'toast' => false,
|
||||
'text' => 'Esta seguro',
|
||||
'showConfirmButton' => true,
|
||||
'onConfirmed' => 'confirmed',
|
||||
'showDenyButton' => false,
|
||||
'onDenied' => '',
|
||||
'showCancelButton' => true,
|
||||
'onDismissed' => '',
|
||||
'cancelButtonText' => 'Salir',
|
||||
'confirmButtonText' => 'Si',
|
||||
]);
|
||||
}
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
return [
|
||||
'confirmed'
|
||||
];
|
||||
}
|
||||
|
||||
public function confirmed()
|
||||
{
|
||||
Cuentas::where('id', $this->delete_cuenta)->delete();
|
||||
|
||||
$this->alert('success', 'Cuenta eliminada correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
}
|
||||
|
||||
/* ------------- ACTUALIZAR ------------- */
|
||||
public function updateTarifas()
|
||||
{
|
||||
$consulta_existe = Tarifas::where('pantallas', $this->pantallas_modTarifas)
|
||||
->where('servicio_id', $this->servicio_modTarifas)
|
||||
->where('rol_id', $this->roles_modTarifas)
|
||||
->where('dias', $this->diasTarifa)
|
||||
->exists();
|
||||
|
||||
if ($consulta_existe) {
|
||||
$this->alert('warning', '¡Esta tarifa ya existe!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
} elseif (empty($this->servicio_modTarifas)) {
|
||||
$this->alert('warning', '¡Seleccione un servicio!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
} elseif (empty($this->precio_modTarifas)) {
|
||||
$this->alert('warning', '¡Coloque un precio!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
} else {
|
||||
$tarifa = new Tarifas;
|
||||
$tarifa->pantallas = $this->pantallas_modTarifas;
|
||||
$tarifa->dias = $this->diasTarifa;
|
||||
$tarifa->valor = $this->precio_modTarifas;
|
||||
$tarifa->estado = $this->estadoTarifa ? 'activo' : 'inactivo';
|
||||
$tarifa->servicio_id = $this->servicio_modTarifas;
|
||||
$tarifa->rol_id = $this->roles_modTarifas;
|
||||
$tarifa->save();
|
||||
|
||||
$this->alert('success', '¡Tarifas actualizadas correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* ------------- ELIMINAR ------------- */
|
||||
|
||||
public function eliminarModTarifa($id)
|
||||
{
|
||||
Tarifas::where('id',$id)->delete();
|
||||
|
||||
$this->alert('success', 'Tarifas eliminada correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
}
|
||||
|
||||
/* ------------- LIMPIAR CAMPOS ------------- */
|
||||
public function limpiarInputObservaciones()
|
||||
{
|
||||
$this->observaciones = '';
|
||||
}
|
||||
public function limpiarInputObservaciones1()
|
||||
{
|
||||
$this->observaciones1 = '';
|
||||
$this->observacionesm1 = false;
|
||||
}
|
||||
public function limpiarInputNewCuenta()
|
||||
{
|
||||
$this->servicio_newCuenta = null;
|
||||
$this->usuario_newCuenta = '';
|
||||
$this->password_newCuenta = '';
|
||||
$this->fecha_inicial = null;
|
||||
$this->fecha_final = null;
|
||||
|
||||
$this->newCuenta = false;
|
||||
}
|
||||
public function limpiarInputServiciosModal()
|
||||
{
|
||||
$this->nombre_servicio = '';
|
||||
$this->descripcion_servicio = '';
|
||||
$this->estado_servicio = null;
|
||||
$this->color_servicio = null;
|
||||
}
|
||||
|
||||
public function eliminarCuentas(){
|
||||
|
||||
$consulta_cuentas = Cuentas::whereIn('id',$this->delete_1)->delete();
|
||||
|
||||
}
|
||||
|
||||
public function openAdd(){
|
||||
|
||||
$this->addUser = true;
|
||||
|
||||
|
||||
}
|
||||
public function saveUser(){
|
||||
|
||||
$this->validate([
|
||||
'tarifa' => 'required',
|
||||
|
||||
]);
|
||||
|
||||
|
||||
$tarifa = json_decode($this->tarifa, true);
|
||||
//dd($this->tarifa['dias']);
|
||||
$usuario_existe = User::firstWhere('email', $this->searchTerm)->id ?? null;
|
||||
$usuario_id = $usuario_existe;
|
||||
|
||||
if (is_null($usuario_existe)) {
|
||||
$rol_id=Role::where('nombre','cliente')->value('id');
|
||||
$usuario = new User;
|
||||
$usuario->name = 'AssignedUser';
|
||||
$usuario->email = $this->searchTerm;
|
||||
$usuario->password = '123456';
|
||||
$usuario->celular = '+57';
|
||||
$usuario->rol_id = $rol_id;
|
||||
$usuario->save();
|
||||
|
||||
$usuario_id = $usuario->id;
|
||||
}
|
||||
|
||||
|
||||
$historial = new Historiale;
|
||||
$historial->fecha_inicio = Carbon::now();
|
||||
$historial->fecha_final = Carbon::now()->addDay($tarifa['dias']);
|
||||
$historial->valor = '0';
|
||||
$historial->tipo_pago = 'manual';
|
||||
$historial->estado = 'activo';
|
||||
$historial->vendedor_id = Auth()->user()->id;
|
||||
$historial->tarifa_id = $tarifa['id'];
|
||||
$historial->cliente_id = $usuario_id;
|
||||
$historial->cantidad = $tarifa['pantallas'];
|
||||
$historial->save();
|
||||
|
||||
$consultaHC = Historial_cuenta::where('cuenta_id',$this->consulta_verUsuarios->id)->where('perfil',$this->perfil)->exists();
|
||||
|
||||
if (!$consultaHC) {
|
||||
$historial_cuenta = new Historial_cuenta;
|
||||
$historial_cuenta->cuenta_id = $this->consulta_verUsuarios->id;
|
||||
$historial_cuenta->historial_id = $historial->id;
|
||||
$historial_cuenta->perfil = $this->perfil;
|
||||
$historial_cuenta->save();
|
||||
|
||||
$this->alert('success', 'Usuario añadido correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
|
||||
$this->addUser = false;
|
||||
$this->consulta_verUsuarios = Cuentas::with('historiales','servicio')->where('id', $this->id_cuentaVer)->first();
|
||||
|
||||
}else{
|
||||
$historial->delete();
|
||||
$this->alert('warning', 'El perfil ya se encuentra en uso!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function editar($tarifa){
|
||||
//dd($tarifa);
|
||||
$this->editarTarifaRol=true;
|
||||
$this->informacionTarifaRol = $tarifa;
|
||||
|
||||
$this->roles_modTarifas = $tarifa['rol_id'];
|
||||
$this->pantallas_modTarifas = $tarifa['pantallas'];
|
||||
$this->precio_modTarifas = $tarifa['valor'];
|
||||
$this->diasTarifa = $tarifa['dias'];
|
||||
$this->estadoTarifa = $tarifa['estado'];
|
||||
$this->servicio_modTarifas = $tarifa['servicio_id'];
|
||||
}
|
||||
|
||||
public function actualizarTarifaRol($id){
|
||||
//dd($id);
|
||||
$validateData = $this->validate([
|
||||
'roles_modTarifas'=> 'required',
|
||||
'pantallas_modTarifas' => 'required',
|
||||
'precio_modTarifas'=> 'required',
|
||||
'diasTarifa' => 'required',
|
||||
'estadoTarifa'=> 'required'
|
||||
]);
|
||||
$consulta = Tarifas::find($id)->update([
|
||||
'pantallas' => $this->pantallas_modTarifas,
|
||||
'dias' => $this->diasTarifa,
|
||||
'valor'=> $this->precio_modTarifas,
|
||||
'estado'=> $this->estadoTarifa,
|
||||
'rol_id' => $this->roles_modTarifas,
|
||||
'servicio_id' => $this->servicio_modTarifas
|
||||
|
||||
]);
|
||||
$this->alert('success', 'Tarifa actualizada correctamente!', [
|
||||
'position' => 'top'
|
||||
]);
|
||||
|
||||
$this->editarTarifaRol = false;
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user