<?php

class DiariasController extends Controller
{
    private $diariasModel;

    public function __construct()
    {
        $this->diariasModel = $this->model('DiariasFuncionarios');
    }

    public function index()
    {
        $dados['diarias'] = $this->diariasModel->listarTodos();
        $this->view('layout', [
            'conteudo' => __DIR__ . '/../Views/diarias/index.php',
            'dados'    => $dados
        ]);
    }

    public function cadastrar()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $dados = [
                'id_ordem'    => $_POST['id_ordem'],
                'id_funcionario' => $_POST['id_funcionario'],
                'quantidade_diarias' => $_POST['quantidade_diarias'],
                'valor_total' => $_POST['valor_total']
            ];

            if ($this->diariasModel->inserir($dados)) {
                Sessao::mensagem('diarias', 'Diária cadastrada com sucesso!');
                header('Location: ' . URL . '/diarias');
                exit;
            }
        }

        $this->view('layout', [
            'conteudo' => __DIR__ . '/../Views/diarias/cadastrar.php',
            'dados'    => []
        ]);
    }

    public function editar($id)
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $dados = [
                'id_ordem'    => $_POST['id_ordem'],
                'id_funcionario' => $_POST['id_funcionario'],
                'quantidade_diarias' => $_POST['quantidade_diarias'],
                'valor_total' => $_POST['valor_total']
            ];

            if ($this->diariasModel->atualizar($id, $dados)) {
                Sessao::mensagem('diarias', 'Diária atualizada com sucesso!');
                header('Location: ' . URL . '/diarias');
                exit;
            }
        }

        $dados['diaria'] = $this->diariasModel->buscarPorId($id);
        $this->view('layout', [
            'conteudo' => __DIR__ . '/../Views/diarias/editar.php',
            'dados'    => $dados
        ]);
    }

    public function deletar($id)
    {
        if ($this->diariasModel->remover($id)) {
            Sessao::mensagem('diarias', 'Diária removida com sucesso!');
        } else {
            Sessao::mensagem('diarias', 'Erro ao remover diária.', 'alert-danger');
        }
        header('Location: ' . URL . '/diarias');
        exit;
    }

    public function visualizar($id)
    {
        $dados['diaria'] = $this->diariasModel->buscarPorId($id);
        if (!$dados['diaria']) {
            Sessao::mensagem('diarias', 'Diária não encontrada.', 'alert-danger');
            header('Location: ' . URL . '/diarias');
            exit;
        }

        $this->view('layout', [
            'conteudo' => __DIR__ . '/../Views/diarias/visualizar.php',
            'dados'    => $dados
        ]);
    }
}
