
<?php
include '../config.php';
include '../configuracao/modelo.php'; // Garante que a função validaAcessoTela está carregada

session_start();
$numero_da_tela = 15; // ID gerado pelo banco

    if (!validaAcessoTela($mysqli, $_SESSION['id'], $numero_da_tela)) {
        echo "<script>alert('Sem permissão para o teste número $numero_da_tela!'); window.location.href='../lista/index.php';</script>";
        exit();
    }



$mensagem = "";

// Ação: Excluir registro
if (isset($_GET['delete'])) {
	$id = (int)$_GET['delete'];
	$stmt = $mysqli->prepare("DELETE FROM trib_cont WHERE codigo = ?");
	$stmt->bind_param("i", $id);
	if ($stmt->execute()) {
		header("Location: " . $_SERVER['PHP_SELF']);
		exit;
	}
}

// Ação: Gravar (Inserir ou Atualizar)
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['btn_salvar'])) {
	$codigo = $_POST['codigo'];
	$data_reg = $_POST['data'];
	
	if (empty($codigo)) {
		$datem = date("Ymd");
		$enumsistema = "trib_cont" . $_SERVER["REMOTE_ADDR"] . "-" . $datem . time() . bin2hex(random_bytes(10));
	} else {
		$enumsistema = $_POST['enumsistema']; 
	}

	$descr   = $_POST['trib_cont_descr_nat'];
	$debito  = $_POST['trib_cont_cta_debito'];
	$credito = $_POST['trib_cont_cta_credito'];
	$tipo_cv = $_POST['trib_cont_tipo_cv'];

	if (empty($codigo)) {
		$sql = "INSERT INTO trib_cont (ativo, enumsistema, data, trib_cont_descr_nat, trib_cont_cta_debito, trib_cont_cta_credito, trib_cont_tipo_cv) 
				VALUES ('S', ?, ?, ?, ?, ?, ?)";
		$stmt = $mysqli->prepare($sql);
		$stmt->bind_param("ssssss", $enumsistema, $data_reg, $descr, $debito, $credito, $tipo_cv);
	} else {
		$sql = "UPDATE trib_cont SET 
				enumsistema=?, data=?, trib_cont_descr_nat=?, 
				trib_cont_cta_debito=?, trib_cont_cta_credito=?, trib_cont_tipo_cv=? 
				WHERE codigo=?";
		$stmt = $mysqli->prepare($sql);
		$stmt->bind_param("ssssssi", $enumsistema, $data_reg, $descr, $debito, $credito, $tipo_cv, $codigo);
	}

	if ($stmt->execute()) {
		$mensagem = "Configuração tributária salva com sucesso!";
	} else {
		$mensagem = "Erro: " . $mysqli->error;
	}
}

// Busca as contas analíticas para o Modal (Tabela B)
$contas_res = $mysqli->query("SELECT reg_i050_cod_cta, reg_i050_cta FROM reg_i050 WHERE reg_i050_ind_cta = 'A' ORDER BY reg_i050_cod_cta ASC");
$contas = [];
while($row = $contas_res->fetch_assoc()){
    $contas[] = $row;
}

$res = $mysqli->query("SELECT * FROM trib_cont ORDER BY codigo DESC");
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
	<meta charset="UTF-8">
	<title>Tributação Contábil - Controle Interno</title>
	<style>
		body { background-color: #3a6ea5; font-family: "Tahoma", sans-serif; font-size: 11px; margin: 0; padding: 10px; }
		.win-window { width: 99%; margin: 0 auto; background-color: #d4d0c8; border: 2px solid; border-color: #fff #404040 #404040 #fff; box-shadow: 1px 1px 0 0 #000; min-height: 95vh; display: flex; flex-direction: column; }
		.win-title { background: linear-gradient(90deg, #000080, #1084d0); color: white; padding: 3px 5px; font-weight: bold; display: flex; justify-content: space-between; align-items: center; }
		.win-body { padding: 10px; flex-grow: 1; display: flex; flex-direction: column; }
		fieldset { border: 2px inset #fff; padding: 12px; margin-bottom: 10px; }
		legend { font-weight: bold; }
		.form-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
		.span-2 { grid-column: span 2; }
		.span-3 { grid-column: span 3; }
		.span-4 { grid-column: span 4; }
		label { display: block; margin-bottom: 2px; }
		input, select { border: 2px inset #fff; padding: 3px; width: 100%; box-sizing: border-box; font-size: 11px; height: 22px; background: #fff; }
		input[readonly] { background-color: #c0c0c0; color: #404040; cursor: not-allowed; }
		.btn-win { background: #d4d0c8; border: 2px solid; border-color: #fff #101010 #101010 #fff; padding: 5px 15px; cursor: pointer; font-size: 11px; }
		.btn-win:active { border-color: #101010 #fff #fff #101010; }
		.table-container { flex-grow: 1; overflow-y: scroll; border: 2px inset #fff; background: white; margin-top: 10px; height: 350px; }
		table { width: 100%; border-collapse: collapse; table-layout: fixed; }
		th { background: #d4d0c8; border: 1px solid #808080; padding: 5px; position: sticky; top: 0; box-shadow: inset 1px 1px #fff; z-index: 10; }
		td { border: 1px solid #d4d0c8; padding: 4px; color: black; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
		tr:hover { background: #000080; color: white; }

        /* Modal Style igual ao razao.php */
        #modalPesquisa { display:none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 450px; background: #d4d0c8; border: 2px solid; border-color: #fff #404040 #404040 #fff; z-index: 9999; box-shadow: 2px 2px 10px rgba(0,0,0,0.5); }
        #overlayModal { display:none; position: fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.3); z-index:9998; }
	</style>
</head>
<body>

<div class="win-window">
	<div class="win-title">
		<span>Manutenção de Regras Contábeis (trib_cont)</span>
		<span style="cursor: pointer;">[X]</span>
	</div>
	
	<div class="win-body">
		<?php if($mensagem): ?>
			<div style="background:#ffffcc; border:1px solid #000; padding:5px; margin-bottom:10px;"><?= $mensagem ?></div>
		<?php endif; ?>

		<form method="POST" id="formMaster">
			<input type="hidden" name="codigo" id="c_codigo">
			
			<fieldset>
				<legend>Identificação e Auditoria</legend>
				<div class="form-grid">
					<div class="span-4">
						<label>ID Único (enumsistema):</label>
						<input type="text" name="enumsistema" id="c_enumsistema" readonly placeholder="Automático">
					</div>
					<div class="span-2">
						<label>Data Vigor:</label>
						<input type="date" name="data" id="c_data" value="<?=date('Y-m-d')?>">
					</div>
				</div>
			</fieldset>

			<fieldset>
				<legend>Configuração do Lançamento Automático</legend>
				<div class="form-grid">
					<div class="span-3">
						<label>Descrição da Natureza:</label>
						<input type="text" name="trib_cont_descr_nat" id="c_descr" maxlength="100">
					</div>
					<div class="span-3">
						<label>Tipo de Operação (V/E/C):</label>
						<select name="trib_cont_tipo_cv" id="c_tipo_cv">
							<option value="S">S - SAIDA </option>
							<option value="E">E - ENTRADA </option>
							<option value="C">C - CONTABIL </option>
							<option value="T">T - FATURAMENTO </option>
						</select>
					</div>
					
                    <div class="span-3">
						<label>Conta Crédito (ORIGEM-Plano de Contas):</label>
                        <div style="display: flex; gap: 2px;">
						    <input type="text" name="trib_cont_cta_credito" id="c_credito" readonly placeholder="Selecione..." required>
                            <button type="button" class="btn-win" style="padding: 0 5px;" onclick="abrirPesquisa('c_credito')"><b>...</b></button>
                        </div>
					</div>
				
				    <div class="span-3">
						<label>Conta Débito (DESTINO-Plano de Contas):</label>
						<div style="display: flex; gap: 2px;">
                            <input type="text" name="trib_cont_cta_debito" id="c_debito" readonly placeholder="Selecione..." required>
                            <button type="button" class="btn-win" style="padding: 0 5px;" onclick="abrirPesquisa('c_debito')"><b>...</b></button>
                        </div>
					</div>
					
				</div>
				<div style="margin-top:15px; text-align:right;">
					<button type="submit" name="btn_salvar" class="btn-win">Gravar Regra</button>
					<button type="button" class="btn-win" onclick="novo()">Limpar / Novo</button>
				</div>
			</fieldset>
		</form>

		<div class="table-container">
			<table>
				<thead>
					<tr>
						<th width="50">Código</th>
						<th width="80">Data</th>
						<th>Descrição Natureza</th>
						<th>Conta Crédito</th>
						<th>Conta Débito</th>
						<th width="40">T/O</th>
						<th width="100">Ações</th>
					</tr>
				</thead>
				<tbody>
					<?php while($f = $res->fetch_assoc()): ?>
					<tr>
						<td><?= $f['codigo'] ?></td>
						<td><?= date('d/m/Y', strtotime($f['data'])) ?></td>
						<td><?= $f['trib_cont_descr_nat'] ?></td>
						<td><?= $f['trib_cont_cta_credito'] ?></td>
						<td><?= $f['trib_cont_cta_debito'] ?></td>
						<td align="center"><?= $f['trib_cont_tipo_cv'] ?></td>
						<td>
							<button class="btn-win" style="padding:1px 5px;" onclick='carregar(<?= json_encode($f) ?>)'>Edit</button>
							<button class="btn-win" style="padding:1px 5px;" onclick="if(confirm('Excluir regra contábil?')) location.href='?delete=<?= $f['codigo'] ?>'">Del</button>
						</td>
					</tr>
					<?php endwhile; ?>
				</tbody>
			</table>
		</div>
	</div>
</div>

<div id="modalPesquisa">
    <div class="win-title">
        <span>Localizar Conta Contábil</span>
        <button type="button" onclick="fecharPesquisa()" style="width:16px; height:14px; font-size:9px;">X</button>
    </div>
    <div style="padding: 10px;">
        <label>Pesquisar por Código ou Nome:</label><br>
        <input type="text" id="inputFiltroCta" onkeyup="filtrarContas()" style="width: 100%; margin: 5px 0; border: 2px inset #fff;" autofocus>
        
        <div style="height: 250px; overflow-y: scroll; background: #fff; border: 2px inset #808080; margin-top: 5px;">
            <table style="width: 100%; cursor: pointer;">
                <tbody id="corpoListaContas">
                    <?php foreach($contas as $cta): ?>
                        <tr onclick="selecionar('<?= $cta['reg_i050_cod_cta'] ?>')">
                            <td style="border-bottom: 1px solid #eee; padding: 3px; width: 80px;"><?= $cta['reg_i050_cod_cta'] ?></td>
                            <td style="border-bottom: 1px solid #eee; padding: 3px;"><?= $cta['reg_i050_cta'] ?></td>
                        </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
        <div style="text-align: right; margin-top: 10px;">
            <button type="button" class="btn-win" onclick="fecharPesquisa()">Cancelar</button>
        </div>
    </div>
</div>
<div id="overlayModal" onclick="fecharPesquisa()"></div>

<script>
let campoAlvo = "";

function abrirPesquisa(campo) {
    campoAlvo = campo;
    document.getElementById('modalPesquisa').style.display = 'block';
    document.getElementById('overlayModal').style.display = 'block';
    document.getElementById('inputFiltroCta').value = '';
    filtrarContas();
    document.getElementById('inputFiltroCta').focus();
}

function fecharPesquisa() {
    document.getElementById('modalPesquisa').style.display = 'none';
    document.getElementById('overlayModal').style.display = 'none';
}

function filtrarContas() {
    let input = document.getElementById('inputFiltroCta').value.toUpperCase();
    let rows = document.getElementById('corpoListaContas').getElementsByTagName('tr');
    for (let i = 0; i < rows.length; i++) {
        rows[i].style.display = rows[i].innerText.toUpperCase().includes(input) ? "" : "none";
    }
}

function selecionar(codigo) {
    document.getElementById(campoAlvo).value = codigo;
    fecharPesquisa();
}

function carregar(d) {
	document.getElementById('c_codigo').value = d.codigo;
	document.getElementById('c_enumsistema').value = d.enumsistema;
	document.getElementById('c_data').value = d.data;
	document.getElementById('c_descr').value = d.trib_cont_descr_nat;
	document.getElementById('c_debito').value = d.trib_cont_cta_debito;
	document.getElementById('c_credito').value = d.trib_cont_cta_credito;
	document.getElementById('c_tipo_cv').value = d.trib_cont_tipo_cv;
}

function novo() {
	document.getElementById('formMaster').reset();
	document.getElementById('c_codigo').value = '';
	document.getElementById('c_enumsistema').value = '';
}
</script>
</body>
</html>