D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys_ant
/
adm
/
vendor_Ant
/
api
/
Filename :
gravaItem_1.php
back
Copy
<?php header('Content-Type: application/json'); // Conexão com o banco de dados include_once "ConectaPdo.php"; // 🔍 DEBUG 1: salva os dados brutos recebidos via POST //file_put_contents('debug_post_raw.txt', print_r($_POST, true)); function limparMascara($valor) { $valor = preg_replace('/R\$\s*/u', '', $valor); $valor = preg_replace('/\s+/u', '', $valor); $valor = str_replace('.', '', $valor); $valor = str_replace(',', '.', $valor); return $valor; } // Captura controle de gravação $regravar = isset($_POST['regravar']) ? filter_var($_POST['regravar'], FILTER_VALIDATE_BOOLEAN) : false; unset($_POST['regravar']); $item_id = isset($_POST['item_id']) ? $_POST['item_id'] : null; unset($_POST['item_id']); // Lista de campos que devem ter máscara removida $camposComMascara = [ 'alt_fron_esq', 'alt_fron_dir', 'alt_fron_fun', 'alt_fron_fren', 'larg_fron_esq', 'larg_fron_dir', 'larg_fron_fun', 'larg_fron_fren', 'alt_saia_esq', 'alt_saia_dir', 'alt_saia_fun', 'alt_saia_fren', 'larg_saia_esq', 'larg_saia_dir', 'larg_saia_fun', 'larg_saia_fren', 'larg', 'prof', 'larg_aa', 'vlr_total_mo', 'vlr_total_mat', 'vlr_total', 'vlr_unit_acab', 'vlr_unit_mat', 'vlr_unit_serv', 'vlr_unit_prod' ]; // Captura e trata os dados do POST $dados = []; foreach ($_POST as $key => $value) { $value = trim($value); if (in_array($key, $camposComMascara)) { $value = limparMascara($value); } $dados[$key] = $value === '' ? null : $value; } if ($dados['servico'] == '') { $dados['qtde_serv'] = 0;} // 🔍 DEBUG 2: salva os dados tratados após limparMascara //file_put_contents('debug_post_gravaItem.txt', print_r($dados, true)); // Campos adicionais fixos date_default_timezone_set("America/Sao_Paulo"); $dados['created'] = date("Y-m-d H:i:s"); $dados['data_ult_rev'] = date("Y-m-d H:i:s"); $data_orc = date("d/m/Y"); $data_rev_orc = date("d/m/Y"); $orcamento_id = $dados['orca_id']; $num_revisao = $dados['num_revisao']; try { if (!$regravar) { // INSERT $colunas = array_keys($dados); $placeholders = array_map(function($c) { return ":$c"; }, $colunas); $sql = "INSERT INTO gre_item_orcamento (" . implode(',', $colunas) . ") VALUES (" . implode(',', $placeholders) . ")"; $stmt = $pdo->prepare($sql); $stmt->execute($dados); $id_item = $pdo->lastInsertId(); $mensagem = 'Item gravado com sucesso.'; } else { // UPDATE if (!$item_id) { throw new Exception("ID do item não fornecido para regravação."); } $colunas = array_keys($dados); $setClause = implode(', ', array_map(function($c) { return "$c = :$c"; }, $colunas)); $sql = "UPDATE gre_item_orcamento SET $setClause WHERE id = :item_id"; $stmt = $pdo->prepare($sql); $dados['item_id'] = $item_id; $stmt->execute($dados); $id_item = $item_id; $mensagem = 'Item atualizado com sucesso.'; } echo json_encode([ 'status' => 'success', 'mensagem' => $mensagem, 'id_item' => $id_item, 'data' => $data_orc, 'data_ult_rev' => $data_rev_orc, 'orcamento_id' => $orcamento_id, 'num_revisao' => $num_revisao ]); } catch (PDOException $e) { echo json_encode([ 'status' => 'error', 'mensagem' => 'Erro ao gravar: ' . $e->getMessage() ]); } catch (Exception $e) { echo json_encode([ 'status' => 'error', 'mensagem' => $e->getMessage() ]); }