<?php
// Inclui o arquivo de conexão
require '../conexao/conexao.php';

// Verifica se o formulário foi enviado
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $ano = $_POST['ano'];
    $id_cidade = $_POST['id_cidade'];

    // Verifica se o ano é válido
    if (is_numeric($ano) && strlen($ano) == 4) {
        // Loop para inserir todos os dias do ano
        for ($mes = 1; $mes <= 12; $mes++) {
            $diasNoMes = cal_days_in_month(CAL_GREGORIAN, $mes, $ano);
            for ($dia = 1; $dia <= $diasNoMes; $dia++) {
                $data = "$ano-$mes-$dia";

                // Verifica se já existem registros na tabela dia_trabalho_cidade para a mesma cidade e data
                $stmtCheck = $connectionmysql->prepare("SELECT id_dia_trabalho FROM dia_trabalho_cidade WHERE id_dia_trabalho = (SELECT id_dia_trabalho FROM dia_trabalho WHERE dia_trabalho = ?) AND id_cidade = ?");
                $stmtCheck->bind_param('si', $data, $id_cidade);
                $stmtCheck->execute();
                $stmtCheck->store_result();

                if ($stmtCheck->num_rows == 0) {
                    // Não há registros para a mesma cidade e data, então insere na tabela dia_trabalho_cidade
                    // Verifica o tipo de dia (1: útil, 2: sábado, 3: domingo, 4: feriado)
                    $diaSemana = date('N', strtotime($data));
                    $tipoDia = ($diaSemana >= 6 || $diaSemana == 0) ? (($diaSemana == 6 || $diaSemana == 0) ? 2 : 3) : 1;

                    // Insere os dados na tabela dia_trabalho
                    $stmtInsertDay = $connectionmysql->prepare("INSERT INTO dia_trabalho (dia_trabalho, ano, mes) VALUES (?, ?, ?)");
                    $stmtInsertDay->bind_param('sii', $data, $ano, $mes);
                    $stmtInsertDay->execute();
                    $idDiaTrabalho = $stmtInsertDay->insert_id;
                    $stmtInsertDay->close();

                    // Insere os dados na tabela dia_trabalho_cidade para a cidade específica
                    $stmtInsertCity = $connectionmysql->prepare("INSERT INTO dia_trabalho_cidade (id_dia_trabalho, id_tipo_dia, id_cidade, peso) VALUES (?, ?, ?, 1)");
                    $stmtInsertCity->bind_param('iii', $idDiaTrabalho, $tipoDia, $id_cidade);
                    $stmtInsertCity->execute();
                    $stmtInsertCity->close();
                }
            }
        }

        echo "Os dados foram inseridos com sucesso na tabela dia_trabalho_cidade!\n";
    } else {
        echo "Ano inválido. Certifique-se de inserir um ano válido com 4 dígitos.";
    }
}

// Após a inserção dos registros na tabela dia_trabalho, atualize dia_trabalho_cidade para feriados
$queryUpdateFeriados = "UPDATE dia_trabalho_cidade
                        SET id_tipo_dia = 4
                        WHERE id_dia_trabalho IN (
                            SELECT dt.id_dia_trabalho
                            FROM dia_trabalho dt
                            INNER JOIN feriados f ON dt.dia_trabalho = f.data
                        )";

if ($connectionmysql->query($queryUpdateFeriados) === TRUE) {
    echo "Atualização de feriados na tabela dia_trabalho_cidade concluída com sucesso!";
} else {
    echo "Erro ao atualizar feriados: " . $connectionmysql->error;
}

?>

<!DOCTYPE html>
<html>
<head>
    <title>Inserir Dados</title>
</head>
<body>
    <h1>Inserir Dados na Tabela dia_trabalho_cidade</h1>
    <form method="post">
        <label for "ano">Ano (ex: 2023):</label>
        <input type="text" name="ano" id="ano" required>
        <label for="id_cidade">ID da Cidade:</label>
        <input type="text" name="id_cidade" id="id_cidade" required>
        <button type="submit">Inserir Dados</button>
    </form>
</body>
</html>
