D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys
/
adm
/
vendor
/
api
/
Filename :
excluirAgendamento.php
back
Copy
<?php require_once 'conectaPdo.php'; header('Content-Type: application/json; charset=utf-8'); // 🔥 Recebe JSON do fetch $dataInput = json_decode(file_get_contents("php://input"), true); $contrato = (int) ($dataInput['num_contrato'] ?? 0); $data = $dataInput['data'] ?? null; $funcionario_id = (int) ($dataInput['funcionario_id'] ?? 0); $empr_id = (int) ($dataInput['empr_id'] ?? 0); $ambientes = $dataInput['ambientes'] ?? []; try { $pdo->beginTransaction(); // 🔥 validações if (!$contrato || !$data || !$funcionario_id) { throw new Exception("Dados inválidos!"); } if (empty($ambientes)) { throw new Exception("Nenhum ambiente selecionado!"); } // 🔥 conta ambientes (mantido como estava) $stmtCount = $pdo->prepare(" SELECT COUNT(a.ambiente_id) AS qtde_amb FROM gre_agenda a WHERE a.num_contrato = :contrato AND a.empr_id = :empr_id AND a.medidor_agendado IS NOT NULL "); $stmtCount->execute([ ':contrato' => $contrato, ':empr_id' => $empr_id ]); $qtde = (int) $stmtCount->fetch(PDO::FETCH_ASSOC)['qtde_amb']; // 🔥 define status $status_id = ($qtde > 1) ? 10 : 9; // 🔥 monta placeholders para IN (...) $placeholders = implode(',', array_fill(0, count($ambientes), '?')); // 🔥 UPDATE apenas dos ambientes selecionados $stmtUpdate = $pdo->prepare(" UPDATE gre_agenda SET sit_fase_id = 1, funcionario_id = 1, medidor_agendado = NULL WHERE num_contrato = ? AND funcionario_id = ? AND DATE(data_inicio) = ? and empr_id = $empr_id AND ambiente_id IN ($placeholders) "); // 🔥 parâmetros (ordem importa!) $params = array_merge( [$contrato, $funcionario_id, $data], $ambientes ); $stmtUpdate->execute($params); // 🔥 atualiza cabeçalho $stmtCab = $pdo->prepare(" UPDATE gre_cab_orcamento SET status_id = :status_id WHERE num_contrato = :contrato "); $stmtCab->execute([ ':contrato' => $contrato, ':status_id' => $status_id ]); $pdo->commit(); // 🔥 regra opcao $opcao = ($qtde > 0) ? 'M' : 'A'; echo json_encode([ 'success' => true, 'opcao' => $opcao ]); } catch (Exception $e) { if ($pdo->inTransaction()) { $pdo->rollBack(); } echo json_encode([ 'success' => false, 'erro' => $e->getMessage() ]); }