D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys
/
adm
/
vendor
/
api
/
Filename :
gravaAgenda_1.php
back
Copy
<?php require_once 'conectaPdo.php'; header('Content-Type: application/json; charset=utf-8'); $empr_id = (int) $_POST['empr_id']; $usu_id = (int) $_POST['usu_id']; $contrato = (int) $_POST['contrato']; $data = $_POST['data'] ?? null; $hora = $_POST['hora'] ?? null; $observacao = $_POST['observacao'] ?? null; $tipo = (int) ($_POST['tipo'] ?? 0); // 0 = novo, 1 = editar, 2 = excluir $data_agenda = ($data && $hora) ? $data . ' ' . $hora . ':00' : null; $data_inicio = $data; //$logFile = __DIR__ . '/debug_agenda_log.txt'; //file_put_contents($logFile, "==========================\n".date('Y-m-d H:i:s')."\n", FILE_APPEND); // Busca ambientes $stmtBuscaAmb = $pdo->prepare(" SELECT i.ambiente_id amb_id FROM gre_item_orcamento i INNER JOIN gre_cab_orcamento c ON i.orca_id = c.orca_id AND i.num_revisao = c.num_revisao AND i.empr_id = c.empr_id INNER JOIN gre_ambientes a ON i.ambiente_id = a.id WHERE c.num_contrato = :contrato AND c.empr_id = :empr_id GROUP BY i.ambiente_id, a.nome ORDER BY a.id "); $stmtBuscaAmb->execute([ ':contrato' => $contrato, ':empr_id' => $empr_id ]); $ambientes = $stmtBuscaAmb->fetchAll(PDO::FETCH_ASSOC); try { // $pdo->beginTransaction(); if ($tipo === 2) { // DELETE AGENDA $stmtDelete = $pdo->prepare(" DELETE FROM gre_agenda WHERE num_contrato = :contrato AND empr_id = :empr_id "); $stmtDelete->execute([ ':contrato' => $contrato, ':empr_id' => $empr_id ]); // Limpa data_agenda_medicao no gre_cab_orcamento $stmtClear = $pdo->prepare(" UPDATE gre_cab_orcamento SET data_agenda_medicao = NULL, usu_modified = :usu_modified, status_id = 8 WHERE num_contrato = :contrato AND empr_id = :empr_id "); $stmtClear->execute([ ':usu_modified'=> $usu_id, ':contrato' => $contrato, ':empr_id' => $empr_id ]); // $pdo->commit(); // echo json_encode(['resultado' => 'sucesso']); // exit; } // UPDATE CAB $stmtUpdateCab = $pdo->prepare(" UPDATE gre_cab_orcamento SET data_agenda_medicao = :data_agenda, status_id = :status_id, usu_modified = :usu_modified WHERE num_contrato = :contrato AND empr_id = :empr_id "); $stmtUpdateCab->execute([ ':data_agenda' => $data_agenda, ':status_id' => 8, ':usu_modified'=> $usu_id, ':contrato' => $contrato, ':empr_id' => $empr_id ]); // Busca dados para agenda $stmtBuscaCab = $pdo->prepare(" SELECT orca_id, num_revisao, medidor_id FROM gre_cab_orcamento WHERE num_contrato = :contrato AND empr_id = :empr_id "); $stmtBuscaCab->execute([ ':contrato' => $contrato, ':empr_id' => $empr_id ]); $dados = $stmtBuscaCab->fetch(PDO::FETCH_ASSOC); // Insere agendas para ambientes foreach ($ambientes as $amb) { $stmtInsert = $pdo->prepare(" INSERT INTO gre_agenda ( empr_id, orca_id, num_revisao, num_contrato, tarefa, observacao, responsavel_id, medidor_agendado, setor_id, funcionario_id, sit_fase_id, data_inicio, data_fim, created, ambiente_id ) VALUES ( :empr_id, :orca_id, :num_revisao, :num_contrato, :tarefa, :observacao, :responsavel_id, :medidor_agendado, :setor_id, :funcionario_id, :sit_fase_id, :data_inicio, :data_fim, NOW(), :ambiente_id ) "); $stmtInsert->execute([ ':empr_id' => $empr_id, ':orca_id' => $dados['orca_id'], ':num_revisao' => $dados['num_revisao'], ':num_contrato' => $contrato, ':tarefa' => 8, ':observacao' => $observacao, ':responsavel_id' => $usu_id, ':setor_id' => null, ':funcionario_id' => $dados['medidor_id'], ':medidor_agendado' => 'S', ':sit_fase_id' => 1, ':data_inicio' => $data, ':data_fim' => $data, ':ambiente_id' => $amb['amb_id'] ]); } // Verifica se já existe agenda $stmtCheck = $pdo->prepare(" SELECT id FROM gre_agenda WHERE num_contrato = :contrato AND empr_id = :empr_id "); $stmtCheck->execute([ ':contrato' => $contrato, ':empr_id' => $empr_id ]); $agendaExiste = $stmtCheck->fetch(PDO::FETCH_ASSOC); if ($agendaExiste) { // UPDATE agenda dinâmico $updates = []; $params = []; if (!empty($data) && !empty($hora)) { $updates[] = "data_inicio = :data_inicio"; $updates[] = "data_fim = :data_fim"; $params[':data_inicio'] = $data; $params[':data_fim'] = $data; } if (!empty($observacao)) { $updates[] = "observacao = :observacao"; $params[':observacao'] = $observacao; } if (!empty($updates)) { $sql = "UPDATE gre_agenda SET " . implode(", ", $updates) . " WHERE num_contrato = :contrato AND empr_id = :empr_id"; $params[':contrato'] = $contrato; $params[':empr_id'] = $empr_id; $stmtUpdateAgenda = $pdo->prepare($sql); $stmtUpdateAgenda->execute($params); } } else { // INSERT agenda $stmtInsert = $pdo->prepare(" INSERT INTO gre_agenda ( empr_id, orca_id, num_revisao, num_contrato, tarefa, observacao, responsavel_id, setor_id, funcionario_id, sit_fase_id, data_inicio, data_fim, created ) VALUES ( :empr_id, :orca_id, :num_revisao, :num_contrato, :tarefa, :observacao, :responsavel_id, :setor_id, :funcionario_id, :sit_fase_id, :data_inicio, :data_fim , NOW() ) "); $stmtInsert->execute([ ':empr_id' => $empr_id, ':orca_id' => $dados['orca_id'], ':num_revisao' => $dados['num_revisao'], ':num_contrato' => $contrato, ':tarefa' => 8, ':observacao' => $observacao, ':responsavel_id' => $usu_id, ':setor_id' => null, ':funcionario_id' => $usu_id, ':sit_fase_id' => 1, ':data_inicio' => $data, ':data_fim' => $data ]); } // $pdo->commit(); echo json_encode(['resultado' => 'sucesso']); } catch (Exception $e) { echo json_encode(['resultado' => 'erro','mensagem' => $e->getMessage()]); exit; }