<?php
require_once __DIR__ . '/../auth/verifica.php';
require_once __DIR__ . '/../config/conexao.php';
$id = intval($_POST['id'] ?? 0);
$campos = ['nome','cpf','rg','cargo','telefone','email','data_admissao','data_nascimento','tipo_contrato','salario','cep','rua','numero','bairro','cidade','estado'];
$dados = [];
foreach ($campos as $c) { $dados[$c] = trim($_POST[$c] ?? '') ?: null; }

if ($id > 0) {
    $sets = []; $params = [];
    foreach ($campos as $c) { $sets[] = "`{$c}` = :{$c}"; $params[$c] = $dados[$c]; }
    $params['id'] = $id;
    $pdo->prepare("UPDATE funcionarios SET " . implode(', ', $sets) . " WHERE id = :id")->execute($params);
} else {
    $ultimo = $pdo->query("SELECT id FROM funcionarios ORDER BY id DESC LIMIT 1")->fetch();
    $num = $ultimo ? $ultimo['id'] + 1 : 1;
    $codigo = "FN" . str_pad($num, 4, "0", STR_PAD_LEFT);
    $campos_i = array_merge(['codigo'], $campos);
    $ph = array_map(fn($c) => ":{$c}", $campos_i);
    $params = $dados; $params['codigo'] = $codigo;
    $pdo->prepare("INSERT INTO funcionarios (`" . implode('`,`', $campos_i) . "`) VALUES (" . implode(',', $ph) . ")")->execute($params);
}
header("Location: funcionarios.php"); exit;
