D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys_ant
/
adm
/
vendor_Ant
/
api
/
Filename :
lerOrcamento_1.php
back
Copy
<?php include_once "ConectaPdo.php"; $tipo_usu = $_GET['tipo_usu'] ?? ''; $id_usu = $_GET['id_usu'] ?? ''; $orca_id = $_GET['orca_id'] ?? ''; $num_rev = $_GET['num_rev'] ?? ''; $tipo = $_GET['tipo'] ?? ''; $empr_id = $_GET['empr_id'] ?? ''; $material = $_GET['material'] ?? ''; if (!$orca_id) { echo json_encode(["erro" => "Parâmetro 'id_orcamento' não fornecido."]); exit; } // Consulta principal: dados do orçamento $queryBase = " SELECT c.*, (select max(num_revisao) from gre_cab_orcamento w where w.orca_id = :orca_id and empr_id = :empr_id) max_rev, mask(lpad(a.celular,11,0), '(##) #####-####') AS telefone_obra, mask(lpad(c.tel_vend,11,0), '(##) #####-####') AS cel, mask(lpad(c.tel_vend,11,0), '(##) #####-####') AS tel_vend, mask(lpad(c.cep_obra,8,0), '#####-###') AS cep, DATE_FORMAT(c.data, '%d/%m/%Y') data, DATE_FORMAT(c.data_ult_rev, '%d/%m/%Y') data_ult_rev, c.endereco_obra AS rua, c.numero_obra, c.municipio_obra AS municipio, c.uf_obra AS uf, ( SELECT SUM(i.vlr_total_mo + i.vlr_total_mat) FROM gre_item_orcamento i WHERE i.orca_id = :orca_id_sub AND i.num_revisao = :num_rev_sub and i.empr_id = :empr_id_sub ) AS vlr_semdesc, stat.nome nome_stat, cr.cor cor_cr FROM gre_cab_orcamento c INNER JOIN gre_status stat ON stat.id=c.status_id INNER JOIN adms_cors cr ON cr.id= stat.cor_id LEFT JOIN gre_arquitetos a ON a.id = c.arquiteto_id WHERE c.orca_id = :orca_id AND c.num_revisao = :num_rev and c.empr_id = :empr_id "; // Aplica filtro de usuário apenas se tipo_usu estiver definido $params = [ ':orca_id' => $orca_id, ':empr_id' => $empr_id, ':num_rev' => $num_rev, ':orca_id_sub' => $orca_id, ':num_rev_sub' => $num_rev, ':empr_id_sub' => $empr_id ]; if ($tipo_usu === 'V') { $queryBase .= " AND c.vend = :id_usu"; $params[':id_usu'] = $id_usu; } elseif ($tipo_usu === 'O') { $queryBase .= " AND c.orcamentista_id = :id_usu"; $params[':id_usu'] = $id_usu; } echo($queryBase); $stmt = $pdo->prepare($queryBase); $stmt->execute($params); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $dados[] = $row; } // ✅ VALIDAÇÃO TEM QUE SER AQUI if (empty($dados)) { echo json_encode(["erro" => "Nenhum orçamento encontrado"]); exit; } // Consulta secundária: revisões do item de orçamento if($tipo == 'U') { $stmt2 = $pdo->prepare(" SELECT i.*, (i.vlr_total_mo + i.vlr_total_mat) AS valorTotal, a.nome AS nome_ambiente FROM gre_item_orcamento i LEFT JOIN gre_ambientes a ON a.id = i.ambiente_id WHERE i.orca_id = :orca_id AND i.num_revisao = :num_rev and i.empr_id = :empr_id and i.material = :material ORDER BY i.id limit 1 "); $stmt2->execute([ ':orca_id' => $orca_id, ':empr_id' => $empr_id, ':num_rev' => $num_rev, ':material' => $material ]); }else{ $stmt2 = $pdo->prepare(" SELECT i.*, (i.vlr_total_mo + i.vlr_total_mat) AS valorTotal, a.nome AS nome_ambiente FROM gre_item_orcamento i LEFT JOIN gre_ambientes a ON a.id = i.ambiente_id WHERE i.orca_id = :orca_id AND i.num_revisao = :num_rev and i.empr_id = :empr_id ORDER BY i.id "); $stmt2->execute([ ':orca_id' => $orca_id, ':empr_id' => $empr_id, ':num_rev' => $num_rev ]); } $revisoes = []; while ($row = $stmt2->fetch(PDO::FETCH_ASSOC)) { $revisoes[] = $row; } $vend_id = $dados[0]['vend']; $stmt2 = $pdo->prepare("select id codigo, nome from gre_obras where vend_id = :vend_id and empr_id = :empr_id"); $stmt2->execute([ ':vend_id' => $vend_id, ':empr_id' => $empr_id ]); $obras= []; while ($row = $stmt2->fetch(PDO::FETCH_ASSOC)) { $obras[] = $row; } //var_dump($obras); // Verifica se algum dos resultados está vazio if (empty($dados) || empty($revisoes)) { echo json_encode(["erro" => "ERRO"]); exit; } // Retorna tudo em um único JSON echo json_encode([ "dados" => $dados, "revisoes" => $revisoes, "obras" => $obras ]);