D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys
/
adm
/
vendor
/
api
/
Filename :
duplExcluiAmbiente.php
back
Copy
<?php ini_set('display_errors', 0); ini_set('log_errors', 1); error_reporting(E_ALL); include_once "ConectaPdo.php"; /* =============================== PARÂMETROS ================================ */ $orca_id = isset($_POST['orca_id']) ? (int) $_POST['orca_id'] : null; $num_revisao = isset($_POST['num_revisao']) ? (int) $_POST['num_revisao'] : null; $ambiente_id = isset($_POST['ambiente_id']) ? (int) $_POST['ambiente_id'] : null; $empr_id = isset($_POST['empr_id']) ? (int) $_POST['empr_id'] : null; $tipo = isset($_POST['tipo']) ? $_POST['tipo'] : null; /* =============================== VALIDAÇÃO ================================ */ if (!$orca_id || !$ambiente_id || !$empr_id) { echo json_encode([ 'status' => 'error', 'mensagem' => 'Parâmetros obrigatórios ausentes.' ]); exit; } $pdo->beginTransaction(); try { /* =============================== DUPLICAR AMBIENTE ================================ */ if ($tipo == 'false') { $sqlInsert = " INSERT INTO gre_item_orcamento ( empr_id, orca_id, num_revisao, larg, prof, alt_fron_esq, larg_fron_esq, alt_fron_dir, larg_fron_dir, alt_fron_fun, larg_fron_fun, alt_fron_fren, larg_fron_fren, alt_saia_esq, larg_saia_esq, alt_saia_dir, larg_saia_dir, alt_saia_fun, larg_saia_fun, alt_saia_fren, larg_saia_fren, tpo_duplo, em_curva, polir_duplo, acabDir, acabEsq, acabFren, acabFun, fronDir, fronEsq, fronFren, fronFun, saiaDir, saiaEsq, saiaFren, saiaFun, acab_topo_frontao, esqua, acabamento, servico, qtde_serv, material_id, material, benef_id, vlr_unit_acab, vlr_unit_mat, vlr_unit_prod, vlr_unit_serv, ambiente_id, descricao, id_tabela, descricao_tabela, qtde_pecas, unid_prod, base_mo, base_mat, vlr_total_mo, vlr_total_mat, vlr_total_col, vlr_total_acab_fron, vlr_total_serv, vlr_total_acab, vlr_total, base_total, m2, ml, produto, obra_id, obra, ajuste, fornecedor_id, data_pedido, data_medicao, data_desenho, data_aprovacao, data_os, data_entrega, data_inicio, data_fim, colocadorId, num_os, observacao, created, usu_created, modified, usu_modified, num_pedido, percentual, larg_aa, prof_aa, data_ult_rev ) SELECT empr_id, orca_id, num_revisao, larg, prof, alt_fron_esq, larg_fron_esq, alt_fron_dir, larg_fron_dir, alt_fron_fun, larg_fron_fun, alt_fron_fren, larg_fron_fren, alt_saia_esq, larg_saia_esq, alt_saia_dir, larg_saia_dir, alt_saia_fun, larg_saia_fun, alt_saia_fren, larg_saia_fren, tpo_duplo, em_curva, polir_duplo, acabDir, acabEsq, acabFren, acabFun, fronDir, fronEsq, fronFren, fronFun, saiaDir, saiaEsq, saiaFren, saiaFun, acab_topo_frontao, esqua, acabamento, servico, qtde_serv, material_id, material, benef_id, vlr_unit_acab, vlr_unit_mat, vlr_unit_prod, vlr_unit_serv, ambiente_id, descricao, id_tabela, descricao_tabela, qtde_pecas, unid_prod, base_mo, base_mat, vlr_total_mo, vlr_total_mat, vlr_total_col, vlr_total_acab_fron, vlr_total_serv, vlr_total_acab, vlr_total, base_total, m2, ml, produto, obra_id, obra, ajuste, fornecedor_id, data_pedido, data_medicao, data_desenho, data_aprovacao, data_os, data_entrega, data_inicio, data_fim, colocadorId, num_os, observacao, NOW(), usu_created, NOW(), usu_modified, num_pedido, percentual, larg_aa, prof_aa, NOW() FROM gre_item_orcamento WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao AND ambiente_id = :ambiente_id "; $pdo->prepare($sqlInsert)->execute([ ':empr_id' => $empr_id, ':orca_id' => $orca_id, ':num_revisao' => $num_revisao, ':ambiente_id' => $ambiente_id ]); }else{ // DELETE dos itens do ambiente $sqlDelete = " DELETE FROM gre_item_orcamento WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao AND ambiente_id = :ambiente_id "; $stmtDelete = $pdo->prepare($sqlDelete); $stmtDelete->execute([ ':empr_id' => $empr_id, ':orca_id' => $orca_id, ':num_revisao' => $num_revisao, ':ambiente_id' => $ambiente_id ]); echo json_encode([ 'status' => 'success', 'mensagem' => 'Todos os itens do ambiente foram excluídos com sucesso' ]); } /* =============================== RECALCULA CABEÇALHO ================================ */ $stmt = $pdo->prepare(" SELECT SUM(i.base_total) AS base_total, SUM(i.vlr_total) AS vlr_total, cab.vlr_frete, cab.vlr_desc FROM gre_item_orcamento i inner join gre_cab_orcamento cab on cab.empr_id = i.empr_id and cab.orca_id = i.orca_id and cab.num_revisao = i.num_revisao WHERE i.empr_id = :empr_id AND i.orca_id = :orca_id AND i.num_revisao = :num_revisao "); $stmt->execute([ ':empr_id' => $empr_id, ':orca_id' => $orca_id, ':num_revisao' => $num_revisao ]); $totais = $stmt->fetch(PDO::FETCH_ASSOC); $pdo->prepare(" UPDATE gre_cab_orcamento SET vlr_base_total = :base, vlr_total = :total + :frete - :desc, vlr_semdesc = :semdesc, modified = NOW() WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao ")->execute([ ':base' => (float)$totais['base_total'], ':total' => (float)$totais['vlr_total'], ':semdesc' => (float)$totais['vlr_total'], ':frete' => (float)$totais['vlr_frete'], ':desc' => (float)$totais['vlr_desc'], ':empr_id' => $empr_id, ':orca_id' => $orca_id, ':num_revisao'=> $num_revisao ]); $pdo->commit(); echo json_encode([ 'status' => 'success', 'mensagem' => 'Processo concluído com sucesso' ]); } catch (Exception $e) { $pdo->rollBack(); echo json_encode([ 'status' => 'error', 'mensagem' => $e->getMessage() ]); }