How to show informative message to user and follow stream for recording in BD

0

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";
            }
        }   
    }
} 

}

    
asked by anonymous 23.02.2016 / 21:26

0 answers