<?php
require '../../conexao/conexao.php';

class ConsultaOperacao
{

    private $connectionmysql;
    private $connection;

    public function __construct()
    {
        global $connectionmysql;
        global $connection;
        $this->connectionmysql = $connectionmysql;
        $this->connection = $connection;
    }

    // Método para obter as metas
    public function get_operacoes($operacoes = null, $situacao = true)
    {
        $operacoes = $operacoes ? implode(',', array_map(function ($item) {
            return "'" . addslashes(trim($item)) . "'";
        }, explode(',', $operacoes))) : 'NULL';


        $sql = "SELECT tpo.codigo as id ,tpo.nomeoperacao as nome FROM tipooperacao tpo where tpo.ativo = '-1'";


        if ($situacao) {
            if ($operacoes == 'NULL') {
                $sql .= "AND tpo.codigo in('-9999')";
            } else {
                $sql .= "AND tpo.codigo in($operacoes)";
            }
        } else {
            if ($operacoes == 'NULL') {
                $sql .= "AND tpo.codigo is not null";
            } else {
                $sql .= "AND tpo.codigo not in($operacoes)";
            }
        }

        $result_geral = ibase_query($this->connection, $sql);

        if (!$result_geral) {
            die('Erro na consulta: ' . ibase_errmsg());
        }

        $result = [];
        if ($result_geral) {
            while ($row = ibase_fetch_assoc($result_geral)) {
                $result[] = $row;
            }
        }

        return $result;
    }

    public function get_operacoes_em_uso($operacoes_selecionado = null)
    {

        $operacoes_selecionado = $operacoes_selecionado ? implode(',', array_map(function ($item) {
            return "'" . addslashes(trim($item)) . "'";
        }, explode(',', $operacoes_selecionado))) : 'NULL';

        $sql = "SELECT  p.valor FROM configuracoes c 
        LEFT JOIN preferencias p on p.id_configuracoes = c.id_configuracoes
        WHERE  c.tipo_meta = 'Operações'";

        if (!empty($operacoes_selecionado) && $operacoes_selecionado !== 'NULL') {
            $sql .= "AND p.valor in($operacoes_selecionado)";
        }
        $stmt = $this->connectionmysql->query($sql);

        $resultmeta = [];

        if ($stmt) {
            while ($row = $stmt->fetch_assoc()) {
                $resultmeta[] = $row;
            }
        } else {
            die('Erro na consulta: ' . $this->connectionmysql->error);
        }

        return $resultmeta;
    }

    public function get_configuracao()
    {

        $sql = "SELECT * FROM configuracoes c 
        WHERE  c.tipo_meta = 'Operações'";

        $stmt = $this->connectionmysql->query($sql);

        $resultmeta = [];

        if ($stmt) {
            while ($row = $stmt->fetch_assoc()) {
                $resultmeta[] = $row;
            }
        } else {
            die('Erro na consulta: ' . $this->connectionmysql->error);
        }

        return $resultmeta;
    }
}
