I have a difficulty that I can not resolve, before registering an information in my BD
I make a check to see if what the user is trying to do is allowed, in my case a certain contract must follow some mandatory phases and when the user tries to record a phase that is not the required mandatory to display a message to it, it does not prevent script
from following the recording flow.
I can even display the message saying that the phase it is trying to write does not match the required phase, but then I'm having a problem, so I made the script giving a REGISTRO INSERIDO COM SUCESSO
message without displaying the alert message.
What I did was this:
if ($_POST["Operacao"] == 'Inserir') {
// FORMATANDO CAMPOS DATA PARA INSERÇÃO
$Data = parseDate($_POST["dData"], "Y-m-d");
// REGISTRO DO LOG
$dataAgora = date('d/m/Y');
$hora = date("H:i:s");
$partes = explode("/", $dataAgora);
$dia = $partes[0];
$mes = $partes[1];
$ano = $partes[2];
// COMPONDO O LOG
$Log = $_SESSION['u_login']."_".$dia.$mes.$ano."_".$hora;
$IdContrato = $_POST["IdContrato"];
// COMPARANDO A FASE DO BD COM O DO FORMULÁRIO
$BuscaRegistro = "SELECT IdTipoFase FROM 'gerFaseObrigatoria' WHERE IdContrato = '$IdContrato' AND Ordem = 1 ORDER BY IdTipoFase DESC LIMIT 1 ";
$Resultado = mysqli_query($conn, $BuscaRegistro) or trigger_error("A seleção falhou - Erro: " . mysqli_error($conn), E_USER_ERROR);
$LinhasTipoFase = mysqli_num_rows($Resultado);
if ($LinhasTipoFase > 0) {
while ($row = mysqli_fetch_assoc($Resultado)) {
// FASE OBRIGATÓRIA CADASTRADA
$row['IdTipoFase'];
// BUSCANDO NOME DA FASE OBRIGATÓRIA
$BuscaFase = "SELECT Nome FROM 'gerTipoFase' WHERE IdTipoFase = '".$row['IdTipoFase']."'";
$rowTipoFase = mysqli_query($conn, $BuscaFase) or trigger_error("A seleção falhou - Erro: " . mysqli_error($conn), E_USER_ERROR);
while($rowFase = mysqli_fetch_assoc($rowTipoFase)) {
// NOME DA FASE OBRIGATÓRIA
$NomeFase = $rowFase['Nome'];
}
// VERIFICANDO SE AS FASES INFORMADAS SÃO DIFERENTES PARA EXIBIR A MENSAGEM
if ($row['IdTipoFase'] != $_POST["IdTipoFase"]) {
$aretorno["msg"] = "Atenção, esse contrato possui Fase(s) Obrigatória: " . $NomeFase;
$aretorno["status"] = "ERRO";
// } else {
// GRAVANDO AS INFORMAÇÕES NO BANCO DE DADOS
$sql = "INSERT INTO gerFaseContrato ( IdContrato, Descricao, IdTipoFase, Data, Hora, Log ) VALUES ( ?, ?, ?, ?, ?, ? )";
if($stmt = $conn->prepare($sql) ){
$stmt->bind_param(
"ssssss",
// RESGATE DAS VARIÁVEIS
$_POST["IdContrato"],
$_POST["sDescricao"],
$_POST["IdTipoFase"],
$Data,
$_POST["dHora"],
$Log
);
// DESLIGA O AUTO COMMIT
// $conn->autocommit(false);
// INSERINDO REGISTRO NO BD
if ($stmt->execute()) {
$aretorno["msg"] = "Registro inserido com sucesso.";
$aretorno["par"] = $_POST["IdContrato"];
} else {
$aretorno["msg"] = "Ocorreu um erro na inclusão dos dados:". $stmt->error ." Verifique";
$aretorno["status"] = "ERRO";
}
} else {
$aretorno["msg"] = "Ocorreu um erro na preparação dos dados: " . $stmt->error . ". Verifique.";
$aretorno["status"] = "ERRO";
}
}
}
}
}