Files
sirpremiumv2/app/Http/Livewire/ShowClientes.php
T
2023-07-26 08:28:13 -05:00

279 lines
8.8 KiB
PHP

<?php
namespace App\Http\Livewire;
use App\Models\Historial_cuenta;
use App\Models\Historiale;
use App\Models\User;
use App\Notifications\Vencimiento;
use Carbon\Carbon;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
use Exception;
use Illuminate\Support\Facades\Crypt;
use App\Models\Configuracione;
use Livewire\WithPagination;
use Twilio\Rest\Client;
use Jantinnerezo\LivewireAlert\LivewireAlert;
class ShowClientes extends Component
{
use LivewireAlert;
use WithPagination;
public $date;
public $buscar;
public $fechaActual;
public $verCliente = false;
public $ver_nombre;
public $ver_email;
public $ver_fecha_inicio;
public $ver_fecha_vencimiento;
public $ver_paquete;
public $precio_paquete;
public $dias_paquete;
public $consulta_historial;
public $venceHoy;
public $vencidosHoy =false;
public $visto = false;
public $vencidHoy;
public $configuracion;
public $msj;
public function render()
{ $fechaHoy = Carbon::now();
$this->fechaActual = date('d/m/Y');
$fechaVencimiento = Carbon::now()->subDay(30);
$consulta_clientes = Historiale::where('vendedor_id', Auth()->user()->id)->whereDate('fecha_final','>', $fechaVencimiento);
$this->configuracion = User::where('id',Auth::user()->id)->whereDate('updated_at','!=', $fechaHoy)->first();
if($this->configuracion){
$this->vencidosHoy = true;
$this->vencidHoy= $consulta_clientes->whereDate('fecha_final', $fechaHoy)->get();
$this->configuracion = User::where('id',Auth::user()->id)->update(['visto' => true]);
}
$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();
if (!empty($this->buscar)) {
$consulta_clientes = $consulta_clientes->where(function ($query) {
$query->whereHas('cuentas', function ($subQuery) {
$subQuery->where('correo', 'LIKE', '%' . $this->buscar . '%');
})->orWhereHas('cliente', function ($subQuery) {
$subQuery->where('email', 'LIKE', '%' . $this->buscar . '%');
});
});
}
if ($this->venceHoy) {
$fecha5 = Carbon::parse($fechaHoy)->subDay(5);
$consulta_clientes = $consulta_clientes->whereDate('fecha_final', '<=', $fechaHoy)
->whereDate('fecha_final', '>=', $fecha5);
}
$consulta_clientes = $consulta_clientes->with('tarifa', 'promocion', 'cliente')
->orderBy('id', 'DESC')
->paginate(15);
// dd($consulta_clientes);
return view('livewire.show-clientes', [
'clientes' => $consulta_clientes
]);
}
public function verCliente($id)
{
$this->consulta_historial = Historiale::with('promocion', 'tarifa', 'cliente','cuentas')->where('id', $id)->first();
// dd($this->consulta_historial );
$this->verCliente = true;
}
public function enviarNotificacion($id)
{
$consulta_historial = Historiale::where('id', $id)->with('tarifa', 'cliente')->first();
$user = User::find($consulta_historial->cliente);
$notificacion = [
//'valor' => $value['precio'],
'fecha_final' => $consulta_historial->fecha_final,
'cliente' => $consulta_historial->cliente->name,
'servicio' => $consulta_historial->tarifa->servicio->nombre . '-' . $consulta_historial->tarifa->pantallas . 'pantallas',
'tipo' => 'vencimiento',
'vendedor' => auth()->user()->username,
];
Notification::send($user, new Vencimiento($notificacion));
$this->alert('success', 'Notificación enviada', [
'position' => 'top'
]);
}
public function enviarNotificacionPromo($id)
{
$consulta_historial = Historiale::where('id', $id)->with('promocion', 'cliente')->first();
$user = User::find($consulta_historial->cliente);
$nombre = $consulta_historial->promocion->nombre;
$descripcion = $consulta_historial->promocion->descripcion;
$notificacion = [
//'valor' => $value['precio'],
'fecha_final' => $consulta_historial->fecha_final,
'cliente' => $consulta_historial->cliente->name,
'servicio' => 'PROMO ' . $nombre . '-' . $descripcion,
'tipo' => 'vencimiento',
'vendedor' => auth()->user()->username,
];
Notification::send($user, new Vencimiento($notificacion));
$this->alert('success', 'Notificación enviada', [
'position' => 'top'
]);
}
public function notSMSpromo($id){
$consulta_historial = Historiale::where('id', $id)->with('promocion', 'cliente')->first();
$user = User::find($consulta_historial->cliente);
$nombre = $consulta_historial->promocion->nombre;
$fecha=Carbon::parse($consulta_historial->fecha_final)->format('Y/m/d');
$fecha_humana= Carbon::parse($consulta_historial->fecha_final)->diffForHumans();
//dd($fecha_humana);
//$descripcion = $consulta_historial->promocion->descripcion;
$message = 'Su '.$nombre.', Vence '.$fecha_humana.', '.$fecha.'. Renueva ahora!!' ;
$recipients= '+57'.$consulta_historial->cliente->celular;
$this->sendMessage($message, $recipients);
}
public function notSMS($id){
$consulta_historial = Historiale::where('id', $id)->with('tarifa', 'cliente')->first();
$user = User::find($consulta_historial->cliente);
$nombre = $consulta_historial->tarifa->servicio->nombre . '-' . $consulta_historial->tarifa->pantallas . 'P';
$fecha=Carbon::parse($consulta_historial->fecha_final)->format('Y/m/d');
$fecha_humana= Carbon::parse($consulta_historial->fecha_final)->diffForHumans();
$message = 'Su '.$nombre.', Vence '.$fecha_humana.', '.$fecha.'. Renueva ahora!!' ;
$recipients= '+57'.$consulta_historial->cliente->celular;
$this->sendMessage($message, $recipients);
}
public function sendMessage($message, $recipients)
{
// try {
// $account_sid = getenv("TWILIO_SID");
// $auth_token = getenv("TWILIO_TOKEN");
// $twilio_number = getenv("TWILIO_FROM");
// $client = new Client($account_sid, $auth_token);
// $client->messages->create($recipients,
// ['from' => $twilio_number, 'body' => $message] );
// $this->alert('success', 'Notificación enviada por SMS! ', [
// 'position' => 'top'
// ]);
// }catch(Exception $e){
// $this->alert('warning', 'Error enviando SMS!'.$e->getMessage(), [
// 'position' => 'top'
// ]);
// }
$auth_basic = base64_encode('admin@jaguarws.ga:9u3xxXhHt8maeiOexg07pFKI0rpYazI0');
//dd(getenv('USER_LABSMOBILE'));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.labsmobile.com/json/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"message":"'.$message.'","nofilter":"1, "tpoa":"Sender","recipient":[{"msisdn":"'.$recipients.'"}]}',
CURLOPT_HTTPHEADER => array(
"Authorization: Basic ".$auth_basic,
"Cache-Control: no-cache",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
$this->alert('warning', 'Error enviando SMS!'.$err, [
'position' => 'top'
]);
} else {
//dd($response);
if (!empty(json_decode($response)->subid)) {
$this->alert('success', 'Notificación enviada por SMS! '.json_decode($response)->subid, [
'position' => 'top'
]);
}else{
$this->alert('warning', 'Servicio de SMS en mantenimiento!'.json_decode($response)->code, [
'position' => 'top'
]);
}
}
}
public function cerrar(){
$this->configuracion = User::where('id',Auth::user()->id)->update(['visto' => true]);
//dd($this->configuracion);
$this->visto=true;
$this->vencidosHoy = false;
}
public function renovar(){
}
}