| Server IP : 54.94.228.101 / Your IP : 172.28.1.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/app/Http/Controllers/Website/ |
Upload File : |
<?php
namespace App\Http\Controllers\Website;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Controllers\BaseController;
use App\Modules\Contato\Models\Contato;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Produto\Models\Produto;
use App\Modules\ProdutoVariacaoAtributo\Models\ProdutoVariacaoAtributo;
use DB;
use App\Services\GeralService;
use Notification;
use App\Notifications\NotificacaoContato;
use App\User;
class ContatoController extends BaseController
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$data['titulo_pagina'] = 'Fale';
$data['subtitulo_pagina'] = 'Conosco';
$data['clienteLogado'] = GeralService::buscarClienteLogado();
if($request->input('oferta') && !empty($request->input('oferta'))){
$oferta = Oferta::where('id', $request->input('oferta'))->first();
if($request->input('produto')){
$produto = Produto::where('id', $request->input('produto'))->first();
$assunto = "Avise-me quando tiver disponível {$produto->nome}";
$mensagem = "Tenho interesse em adquirir ".$request->input('quantidade')." unidade(s) da oferta {$produto->nome}, avise-me quando tiver disponível!";
}elseif($request->input('tamanho')){
$tamanho = ProdutoVariacaoAtributo::where('id', $request->input('tamanho'))->first();
$modelo = ProdutoVariacaoAtributo::where('id', $request->input('modelo'))->first();
$assunto = "Avise-me quando tiver disponível {$oferta->titulo} {$oferta->sub_titulo}";
if($tamanho){
$assunto .= " - Tam. {$tamanho->nome}";
}
if($modelo){
$assunto .= " - Mod. {$modelo->nome}";
}
$ofertaNome = "{$oferta->titulo} {$oferta->sub_titulo} - Tam. {$tamanho->nome} - Mod. {$modelo->nome}";
$mensagem = "Tenho interesse em adquirir ".$request->input('quantidade')." unidade(s) da oferta {$ofertaNome}, avise-me quando tiver disponível!";
}else{
$assunto = "Verificar disponibilidade {$oferta->titulo} {$oferta->sub_titulo}";
$mensagem = "Tenho interesse em adquirir (quantidade garrafas), favor verificar a disponibilidade";
}
}
$data['assunto'] = isset($assunto) ? $assunto : '';
$data['mensagem'] = isset($mensagem) ? $mensagem : '';
return view('site/contato', $data);
}
public function enviarMensagem(Request $request){
$post = $request->input();
$id_cliente = hexdec( substr(sha1($post['email']), 0, 15) );
$errorMessage = 'Não foi possível enviar a mensagem. Favor enviar um e-mail para contato@vinumday.com.br';
foreach ($post as $key => $value) {
if(empty($value)){
$json = array(
'status' => false,
'message' => "Campo '{$key}' deve ser preenchido."
);
return response()->json($json);
break;
}else{
$value = trim($value);
$value = str_replace(['?','"','$'], '', $value);
$post[$key] = $value;
}
}
try {
$pessoa = [
'id' => $id_cliente,
"isActive" => 'true',
"personType" => 1,
"profileType" => 2,
"businessName" => $post['nome'],
"emails" => [
0 => [
'emailType' => 'Pessoal',
'email' =>$post['email'],
'isDefault' => true,
]
],
"phone" => $post['telefone'],
"accessProfile" => "Clientes",
];
$result = json_decode(GeralService::callMovideskAPI('persons', $pessoa, 'POST'));
$data = [
'type' => 2,
'subject' => $post['assunto'],
'status' => 'Novo',
'createdBy' => [
'id' => $id_cliente,
"personType" => 1,
"profileType" => 2,
"businessName" => $post['nome'],
"email" => $post['email'],
"phone" => $post['telefone']
],
'clients' => [
0 => [
'id' => $id_cliente,
"personType" => 1,
"profileType" => 2,
"businessName" => $post['nome'],
"email" => $post['email'],
"phone" => $post['telefone']
]
],
'actions' => [
0 => [
'type' => 2,
'origin' => 8,
'description' => $post['mensagem']
]
]
];
$resultTicket = json_decode(GeralService::callMovideskAPI('tickets', $data, 'POST'));
if(is_object($resultTicket) && isset($resultTicket->id)){
$json = array(
'status' => true,
'message' => 'E-mail enviado com sucesso! Em breve entraremos em contato.'
);
}else{
$json = array(
'status' => false,
'message' => $errorMessage
);
}
$cliente = GeralService::buscarClienteLogado();
$contato = new Contato();
$contato->fill($post);
if ($cliente) {
$contato->id_cliente = $cliente->id;
}
$contato->save();
/*
\Mail::send('emails.contato', $post, function ($m) use ($post){
$m->from($post['email'], $post['nome']);//env('MAIL_USERNAME')
$m->to('contato@vinumday.com.br')->subject('Contato do Site');
$m->cc('murilo@bf2tecnologia.com.br')->subject('Contato do Site');
});
*/
} catch (\Exception $e) {
//print_r($e->getMessage());die();
$json = array(
'status' => false,
'message' => $errorMessage
);
}
//envia email alertando em caso de falhas
if($json['status'] == false){
$user = User::where('email', 'contato@vinumday.com.br')->first();
Notification::send(
$user,
new NotificacaoContato(
$post,
'Falha ao salvar contato pelo site',
url('contato')
)
);
}
return response()->json($json);
}
}