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

class ConsultasMedicoAitorizacao
{
    private $connectionmysql;
    private $connection;

    public function __construct()
    {
        global $connectionmysql, $connection; // Acesso às conexões globais
        $this->connectionmysql = $connectionmysql;
        $this->connection = $connection;
    }

    public function get_medicos($medico = null)
    {
        $query_medicos = "SELECT  
         DISTINCT
        (CR.SIGLA || '-' || ME.CR_ESTADO || '-' || ME.CRM) AS ID,
        ME.nomemedico as  NOME

        FROM ATENDIMENTO_A1 A1

        INNER JOIN MEDICO ME ON ME.CODIGO = A1.CODIGO_MEDICO
        LEFT JOIN MEDICO_CR CR ON ME.CODIGO_CONSELHO_REGIONAL = CR.CODIGO
        LEFT JOIN MEDICO_ESPECIALIDADE ESPEC ON ESPEC.CODIGO = ME.CODIGO_MEDICO_ESPECIALIDADE
        WHERE CAST(A1.AVIADA_DT AS DATE) BETWEEN DATEADD(-2 YEAR TO CURRENT_DATE) AND CURRENT_DATE
        AND A1.STATUS_MOV = -1
        AND A1.TIPO_ATENDIMENTO = 1
        AND A1.CANCELAMENTO_LJ IS NULL ";

        if (!empty($medico) && $medico !== 'Todos') {
            $medicos = implode(',', array_map(
                function ($item) {
                    return "'" . trim($item) . "'";
                },
                explode(',', $medico)
            ));
            $query_medicos .= " AND (CR.SIGLA || '-' || ME.CR_ESTADO || '-' || ME.CRM) IN ($medicos)";
        }

        $query_medicos .= " AND (CR.SIGLA || '-' || ME.CR_ESTADO || '-' || ME.CRM) IS NOT NULL
        GROUP BY ME.nomemedico, (CR.SIGLA || '-' || ME.CR_ESTADO || '-' || ME.CRM) ";

        $resultmeta = ibase_query($this->connection, $query_medicos);

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

        $result = [];

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

        // Retorna o array de vendedores
        return $result;
    }
    public function get_medicos_index()
    {
        $query_medicos = "SELECT GROUP_CONCAT(crm_medico SEPARATOR ',') AS crm_medicos FROM medicos_autorizacoes";

        $resultmeta = $this->connectionmysql->query($query_medicos);

        if ($resultmeta && $row = $resultmeta->fetch_assoc()) {
            return $row['crm_medicos'] ?? 'aa';
        }

        return '';
    }


    public function get_medicos_com_autorizacoes($medico = null, $autorizacao = null, $id = null)
    {
        $query_medicos = "SELECT * FROM medicos_autorizacoes WHERE 1=1 ";

        if (!empty($medico) && $medico !== 'Todos') {
            $medicos = implode(',', array_map(
                function ($item) {
                    return "'" . trim($item) . "'";
                },
                explode(',', $medico)
            ));
            $query_medicos .= " AND (crm_medico) IN ($medicos)";
        }

        if (!empty($autorizacao) && $autorizacao !== 'Todos') {
            $query_medicos .= " AND tipo_autorizacao IN ($autorizacao)";
        }
        if (!empty($id) && $id !== 'Todos') {
            $query_medicos .= " AND id = '$id'";
        }
        $resultmeta = $this->connectionmysql->query($query_medicos);

        $result = [];

        if ($resultmeta && $resultmeta->num_rows > 0) {
            while ($row = $resultmeta->fetch_assoc()) {
                $result[] = $row;
            }
        }
        return $result;
    }

    public function get_produtos($grupo = null, $id = null)
    {
        $query = "SELECT EG.codigo as id ,EG.movimentoestoque as id_referencia,EG.nomeproduto as nome FROM ESTOQUE_GERAL EG
                WHERE 1=1 ";

        if (!empty($grupo) && $grupo !== 'Todos') {
            $query .= " AND EG.movimentoestoque  = '$grupo'";
        }
        if (!empty($id) && $id !== 'Todos') {
            $id = implode(',', array_map(
                function ($item) {
                    return "'" . trim($item) . "'";
                },
                explode(',', $id)
            ));
            $query .= " AND EG.codigo IN ($id)";
        }

        $resultmeta = ibase_query($this->connection, $query);

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

        $result = [];

        while ($row = ibase_fetch_assoc($resultmeta)) {
            // $row['NOME'] = mb_convert_encoding($row['NOME'], 'UTF-8', 'ISO-8859-1');
            $result[] = $row;
        }

        // Retorna o array de vendedores
        return $result;
    }

    public function getTipoAutorizacao()
    {
        $sql = "SELECT id_autorizacao as ID , autorizacao as NOME FROM kpi.tipo_medicos_autorizacoes";

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

        $result = [];

        if ($resultmeta && $resultmeta->num_rows > 0) {
            while ($row = $resultmeta->fetch_assoc()) {
                $result[] = $row;
            }
        }
        return $result;
    }
}
