<?php

class DiariasFuncionarios
{
    private $db;

    public function __construct()
    {
        $this->db = new Database();
    }

    public function lerDiarias()
    {
        $this->db->query("
            SELECT df.*, 
                   o.numero as numero_ordem, 
                   f.matricula as matricula_funcionario, 
                   p.nome as nome_funcionario
            FROM diarias_funcionarios df
            LEFT JOIN ordens o ON df.id_ordem = o.id_ordem
            LEFT JOIN funcionarios f ON df.id_funcionario = f.id_funcionario
            LEFT JOIN pessoas p ON f.id_pessoa = p.id_pessoa
            WHERE df.removido IS NULL
            ORDER BY df.criado_em DESC
        ");
        return $this->db->resultados();
    }

    public function lerDiariaPorId($id)
    {
        $this->db->query("
            SELECT df.*, 
                   o.numero as numero_ordem, 
                   f.matricula as matricula_funcionario, 
                   p.nome as nome_funcionario
            FROM diarias_funcionarios df
            LEFT JOIN ordens o ON df.id_ordem = o.id_ordem
            LEFT JOIN funcionarios f ON df.id_funcionario = f.id_funcionario
            LEFT JOIN pessoas p ON f.id_pessoa = p.id_pessoa
            WHERE df.id_diarias_funcionarios = :id AND df.removido IS NULL
        ");
        $this->db->bind("id", $id);
        return $this->db->resultado();
    }

    public function armazenar($dados) {
    $this->db->query("
        INSERT INTO diarias_funcionarios 
        (id_ordem, id_funcionario, qtde, valor, total, id_usuario, criado_em, removido)
        VALUES 
        (:id_ordem, :id_funcionario, :qtde, :valor, :total, :id_usuario, NOW(), NULL)
    ");
    $this->db->bind("id_ordem", $dados['id_ordem']);
    $this->db->bind("id_funcionario", $dados['id_funcionario']);
    $this->db->bind("qtde", $dados['qtde']);
    $this->db->bind("valor", $dados['valor']);
    $this->db->bind("total", $dados['total']);
    $this->db->bind("id_usuario", $dados['id_usuario']);
    return $this->db->executa();
}

    public function atualizar($dados)
    {
        $this->db->query("
            UPDATE diarias_funcionarios SET
                id_ordem = :id_ordem,
                id_funcionario = :id_funcionario,
                qtde = :qtde,
                valor = :valor,
                total = :total,
                alterado = NOW()
            WHERE id_diarias_funcionarios = :id_diarias_funcionarios
        ");
        foreach ($dados as $campo => $valor) {
            $this->db->bind($campo, $valor);
        }
        return $this->db->executa();
    }

    public function remover($id)
    {
        $this->db->query("UPDATE diarias_funcionarios SET removido = NOW() WHERE id_diarias_funcionarios = :id");
        $this->db->bind("id", $id);
        return $this->db->executa();
    }

    public function lerOrdens()
    {
        $this->db->query("SELECT id_ordem, numero FROM ordens WHERE removido IS NULL ORDER BY numero DESC");
        return $this->db->resultados();
    }

    public function lerFuncionarios()
    {
        $this->db->query("
            SELECT f.id_funcionario, f.matricula, p.nome 
            FROM funcionarios f
            INNER JOIN pessoas p ON f.id_pessoa = p.id_pessoa
            WHERE f.removido IS NULL
            ORDER BY p.nome
        ");
        return $this->db->resultados();
    }

    public function excluirPorOrdem($id_ordem) {
    $this->db->query("DELETE FROM diarias_funcionarios WHERE id_ordem = :id_ordem");
    $this->db->bind("id_ordem", $id_ordem);
    return $this->db->executa();
}


   

}
