| Server IP : 189.126.111.107 / Your IP : 216.73.217.69 Web Server : Apache System : Linux www.gadotticar.com.br 5.4.0-135-generic #152-Ubuntu SMP Wed Nov 23 20:19:22 UTC 2022 x86_64 User : gadotticar ( 1000) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gadotticar/site/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Mail\OrcamentoMail;
use App\Models\FormularioOrcamento;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Log;
use Symfony\Component\DomCrawler\Form;
class OrcamentoController extends Controller
{
public function create(Request $request)
{
$produto = $request->query('produto');
return view('orcamento.create', compact('produto'));
}
public function store(Request $request)
{
$request->validate([
'nome' => 'required|string|max:255',
'email' => 'required|email|max:255',
'telefone' => 'required|string|max:20',
'produto' => 'required|string|max:255',
'mensagem' => 'required|string|max:1000',
]);
$data = $request->all();
// Sanitize inputs to remove HTML/JavaScript tags
$sanitizedData = [
'nome' => strip_tags($data['nome']),
'email' => strip_tags($data['email']), // Email should already be safe due to validation
'telefone' => strip_tags($data['telefone']),
'produto' => strip_tags($data['produto']),
'mensagem' => strip_tags($data['mensagem']),
'cpf_cnpj' => strip_tags($data['cpf_cnpj']),
'cep' => strip_tags($data['cep']),
];
$adminIds = [4, 71];
// Check if adminIds is non-empty
if (empty($adminIds)) {
return response()->json(['message' => 'Erro: Nenhum administrador configurado'], 500);
}
// Get the last used admin index from cache, default to -1
$lastAdminIndex = \Cache::get('last_admin_index', -1);
// Calculate the next admin index
$nextAdminIndex = ($lastAdminIndex + 1) % count($adminIds);
$adminId = $adminIds[$nextAdminIndex];
// Save the new index to cache for 30 days
\Cache::put('last_admin_index', $nextAdminIndex, now()->addDays(30));
// Save to database
try {
$formulario_orcamento = new FormularioOrcamento();
$formulario_orcamento->nome = $sanitizedData['nome'];
$formulario_orcamento->email = $sanitizedData['email'];
$formulario_orcamento->telefone = $sanitizedData['telefone'];
$formulario_orcamento->produto = $sanitizedData['produto'];
$formulario_orcamento->mensagem = $sanitizedData['mensagem'];
$formulario_orcamento->cep = $sanitizedData['cep'];
$formulario_orcamento->cnpj = $sanitizedData['cpf_cnpj'];
$formulario_orcamento->user_id = $adminId;
$formulario_orcamento->save();
// Log::info('Orçamento salvo no banco de dados com sucesso.');
} catch (\Exception $e) {
// Log::error('Erro ao salvar orçamento no banco de dados:', ['exception' => $e->getMessage()]);
}
$recipients = ['contato@gadotticar.com.br', 'rfr.cwb@gmail.com', 'ronaldo@gadotticar.com.br', 'gestorcomercial@gadotticar.com.br' ];
// Enviar e-mail usando o Mailable OrcamentoMail
try {
Mail::to($recipients)->send(new OrcamentoMail($data));
// Log::info('Email enviado com sucesso para: ' . implode(', ', $recipients));
} catch (\Exception $e) {
// Log::error('Erro ao enviar e-mail de orçamento:', ['exception' => $e->getMessage()]);
}
\App\Models\GoogleCliqueConversoes::create([
'tipo_id' => 5,
'google_clique_id' => 1
]);
return redirect()->route('orcamento.confirmacao');
}
public function confirmacao()
{
return view('orcamento.confirmacao');
}
}