D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys
/
adm
/
vendor
/
api
/
Filename :
gravaSolRevItem.php
back
Copy
<?php header('Content-Type: application/json; charset=utf-8'); ini_set('display_errors', 0); error_reporting(E_ALL); require_once "ConectaPdo.php"; /* =============================== PHPMailer ================================ */ require_once $_SERVER['DOCUMENT_ROOT'] . '/crsys/adm/vendor/phpmailer/phpmailer/src/Exception.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/crsys/adm/vendor/phpmailer/phpmailer/src/PHPMailer.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/crsys/adm/vendor/phpmailer/phpmailer/src/SMTP.php'; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; try { if (!isset($pdo)) { throw new Exception('Conexão com banco não encontrada'); } $pdo->beginTransaction(); /* =============================== RECEBE POST ================================ */ $empr_id = $_POST['empr_id'] ?? null; $orca_id = $_POST['orca_id'] ?? null; $num_revisao = $_POST['num_revisao'] ?? null; $usu_id = $_POST['usu_id'] ?? null; $usu_nome = $_POST['usu_nome'] ?? null; $url = $_POST['url'] ?? null; if ( $empr_id === null || $empr_id === '' || $orca_id === null || $orca_id === '' || $num_revisao === null || $num_revisao === '' ) { throw new Exception('Parâmetros obrigatórios não informados'); } /* =============================== BUSCA ORÇAMENTO ================================ */ $sqlCab = " SELECT * FROM gre_cab_orcamento WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao LIMIT 1 "; $stmtCab = $pdo->prepare($sqlCab); $stmtCab->execute([ ':empr_id' => $empr_id, ':orca_id' => $orca_id, ':num_revisao' => $num_revisao ]); $cab = $stmtCab->fetch(PDO::FETCH_ASSOC); if (!$cab) { throw new Exception('Orçamento não encontrado'); } $sqlCabTrab = "insert into gre_cab_trab ( SELECT * FROM gre_cab_orcamento WHERE empr_id = :empr_id_trab AND orca_id = :orca_id_trab AND num_revisao = :num_revisao_trab LIMIT 1)"; $stmtCabTrab = $pdo->prepare($sqlCabTrab); $stmtCabTrab->execute([ ':empr_id_trab' => $empr_id, ':orca_id_trab' => $orca_id, ':num_revisao_trab' => $num_revisao ]); $sqlItemTrab = "insert into gre_item_trab ( SELECT * FROM gre_item_orcamento WHERE empr_id = :empr_id_item AND orca_id = :orca_id_item AND num_revisao = :num_revisao_item)"; $stmtItemTrab = $pdo->prepare($sqlItemTrab); $stmtItemTrab->execute([ ':empr_id_item' => $empr_id, ':orca_id_item' => $orca_id, ':num_revisao_item' => $num_revisao ]); /* =============================== CONTEÚDO DO E-MAIL ================================ */ $conteudo = "Claudia,<br><br>"; $conteudo .= "Vendedor {$usu_nome} solicitou Liberação para Revisão de Item.<br><br>"; $conteudo .= "Orçamento: {$orca_id} / Revisão: {$num_revisao}<br>"; $conteudo .= "Obra: {$cab['obra']}<br>"; $conteudo .= "Cliente: {$cab['nome_cliente']}<br><br>"; /* =============================== CONFIGURAÇÃO E-MAIL ================================ */ $stmtEmail = $pdo->query(" SELECT * FROM adms_confs_emails WHERE id = 1 LIMIT 1 "); $dadosEmail = $stmtEmail->fetch(PDO::FETCH_ASSOC); if (!$dadosEmail) { throw new Exception('Configuração de e-mail não encontrada'); } /* =============================== ENVIO DO E-MAIL ================================ */ $mail = new PHPMailer(true); $mail->isSMTP(); $mail->Host = $dadosEmail['host']; $mail->SMTPAuth = true; $mail->Username = $dadosEmail['usuario']; $mail->Password = $dadosEmail['senha']; $mail->SMTPSecure = $dadosEmail['smtpsecure']; $mail->Port = $dadosEmail['porta']; $mail->CharSet = 'UTF-8'; $mail->setFrom( 'noreply@crsys.com.br', 'Departamento Comercial' ); $mail->addAddress( 'crmarques@uol.com.br', 'Carlos Marques' ); $mail->isHTML(true); $mail->Subject = "SOLICITAÇÃO DE REVISÃO DE ITEM ORÇA. Nº {$orca_id}/{$num_revisao}"; $mail->Body = $conteudo; $mail->send(); /* =============================== UPDATE STATUS DO ORÇAMENTO ================================ */ $sqlUpdate = " UPDATE gre_cab_orcamento SET status_real = status_id, status_id = 20 WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao "; $stmtUpdate = $pdo->prepare($sqlUpdate); $stmtUpdate->execute([ ':empr_id' => $empr_id, ':orca_id' => $orca_id, ':num_revisao' => $num_revisao ]); $pdo->commit(); echo json_encode([ 'status' => 'success', 'msg' => 'Solicitação enviada e orçamento atualizado' ]); exit; } catch (Throwable $e) { if (isset($pdo) && $pdo->inTransaction()) { $pdo->rollBack(); } echo json_encode([ 'status' => 'error', 'msg' => $e->getMessage() ]); exit; }