<?php
require '../../configuacoes.php';
require '../../conexao/conexao.php';
//die(var_dump($_POST));

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $nome_banco = $_POST['banco'] ?? null;
    $agencia = $_POST['agencia'] ?? null;
    $conta = $_POST['conta'] ?? null;
    $id_banco = $_POST['id_banco'] ?? null;
    $url = $_POST['url'] ?? null;
    $id_banco = is_numeric($id_banco) ? (int)$id_banco : null;

    // Verifica se o banco já está cadastrado
    $stmt = $connectionmysql->prepare("SELECT id_banco FROM bancos WHERE banco = ? OR (agencia = ? AND conta = ?)");
    if (!$stmt) {
        die('Erro na preparação da consulta SELECT: ' . $connectionmysql->error);
    }

    $stmt->bind_param('sss', $nome_banco,$agencia, $conta);
    if (!$stmt->execute()) {
        die('Erro ao executar SELECT: ' . $stmt->error);
    }

    $stmt->store_result();
    if ($stmt->num_rows > 0 && is_null($id_banco)) {
        $stmt->close();
        header("Location: ../preferencias/index.php?status=erro&tabela=bancos&message=" . urlencode('Banco já cadastrado anteriormente'));
        exit;
    }
    $stmt->close();

    if (is_null($id_banco) || $id_banco == 0) {
        $situacao = 'A';

        $stmt = $connectionmysql->prepare("INSERT INTO bancos (banco, agencia, conta, situacao) VALUES (?, ?, ?, ?)");

        if (!$stmt) {
            die('Erro na preparação da consulta INSERT: ' . $connectionmysql->error);
        }

        if (!$stmt->bind_param('ssss', $nome_banco, $agencia, $conta, $situacao)) {
            die('Erro ao vincular parâmetros do INSERT: ' . $stmt->error);
        }

        if (!$stmt->execute()) {
            die('Erro ao executar INSERT: ' . $stmt->error);
        }

        $stmt->close();
    } else {
        // Atualizar dados
        $stmt = $connectionmysql->prepare("UPDATE bancos  SET banco = ?,  agencia = ?,  conta = ?  WHERE id_banco = ?");

        // Verifica se a consulta foi preparada corretamente
        if (!$stmt) {
            die('Erro na preparação da consulta UPDATE: ' . $connectionmysql->error);
        }

        // Associa os parâmetros corretamente
        $bind_result_banco = $stmt->bind_param(
            'sssi',
            $nome_banco,
            $agencia,
            $conta,
            $id_banco
        );

        // Verifica se o bind_param foi bem-sucedido
        if (!$bind_result_banco) {
            die('Erro ao vincular parâmetros do UPDATE: ' . $stmt->error);
        }
        if (!$stmt->execute()) {
            die('Erro ao executar UPDATE: ' . $stmt->error);
        }
        $stmt->close();
    }

    $location = '../preferencias/index.php?status=sucesso&tabela=bancos&message=' . urlencode('Ação executada com sucesso!');
    if (!empty($url)) {
        $location .= '&' . $url;
    }
    header("Location: $location");
    exit;
} else {
    $location = '../preferencias/index.php?status=erro&tabela=bancos&message=' . urlencode('Ocorreu um erro');
    if (!empty($url)) {
        $location .= '&' . $url;
    }
    header("Location: $location");
    exit;
}
