<?php

require_once 'Datas.php';
class Sqlserver
{

//metodo para buscar as notas fiscais no sotcom atraves de criterios enviados pelos argumentos
    public function comprasDomesEntrada($dataInicioCompras, $dataFinalCompras, $tipo, $cfop)
    {

        //verificar que tipo de consulta iremos trazer
        if ($tipo == 1) {//para buscar pela data de emissão
            //tipo data de emissao
            $tipoCosulta = '[Data Emissão]';
        } else {//busque pela data de entrada
            //trocar o campo
            $tipoCosulta = '[Data da Entrada]';
        }

        //verificar que tipo de visao precisa
        if ($cfop == 1) {//se é apenas de venda
            //busque cfops que nao sao de bonificação
            $cfop = "AND CFOP != '1910' AND CFOP != '2910'  AND CFOP != '1949'";
        } else if ($cfop == 2) {
            //busque apenas de bonificação
            $cfop = "AND CFOP != '1403' AND CFOP != '1102'";
        } else {
            //se sao todos
            $cfop = ' AND CFOP IS NOT NULL';
        }

        //REFATORAR QUANDO TIVER OPORTUNIDADE

        //VERIFICANDO SE PASSOU UMA OU MAIS DATAS
        if ($dataInicioCompras == $dataFinalCompras) {
            //ALTERANDO A CONSULTA DE ACORDO COM A QUANTIDADE DE DATAS
            $datas = "$tipoCosulta >= '$dataInicioCompras'";
        } else {
            //DUAS DATAS PARA O MESMO CAMPO
            $datas = "$tipoCosulta >= '$dataInicioCompras' AND $tipoCosulta <= '$dataFinalCompras'";
        }

        //consulta sqlserver
        try {
            $Conexao = Conexao::getConnection();
            $query = $Conexao->query("SELECT 
        LojaOrigem AS LOJA,
        SUM([Valor Nota]) AS VALOR

        FROM [Cadastro das Entradas] 
        
        WHERE
        
        $datas
        
        $cfop        
        GROUP BY LojaOrigem");

            $sqlserver = $query->fetchAll();

        } catch (Exception $e) {
            echo $e->getMessage();
            exit;
        }
        return $sqlserver;//reorna um array com os dados de notas de entrada
    }

//VENDAS DO DIA ATUAL
    function vendasDoDia($diaAtual)
    {
        try {
            $Conexao = Conexao::getConnection();
            $query = $Conexao->query("SELECT LojaOrigem AS loja, sum(Total_Item)  
    FROM
        memoria_VendasTodas
    WHERE
        [Data da Venda] = '$diaAtual'
    AND
        Cancelado = 0
    
    GROUP BY
        LojaOrigem
    ;");

            $sqlserver = $query->fetchAll();

        } catch (Exception $e) {

            echo $e->getMessage();
            exit;

        }

        return $sqlserver;
    }


//VENDAS POR FABRICANTE DE UM PERIODO
    function VendasFabricante($diainicio, $diafinal, $loja)
    {
        try {
            $Conexao = Conexao::getConnection();
            $query = $Conexao->query("
SELECT
Fabricante AS FABRICANTE,
SUM(Quantidade_Item) as QUANTIDADE,
sum(Total_Item) AS VALOR,
sum(Total_SemDesconto_Item) AS BRUTO,
ROUND(SUM(Total_SemDesconto_Item),2) - ROUND(SUM(Total_Item),2)  AS desconto

FROM
memoria_VendasTodas

WHERE
[Data da Venda] >= '$diainicio'
AND [Data da Venda] <= '$diafinal'
AND cancelado = 0
AND LojaOrigem = '$loja'
GROUP BY 
LojaOrigem,Fabricante
ORDER BY 
Fabricante;");

            $sqlserver = $query->fetchAll();

        } catch (Exception $e) {

            echo $e->getMessage();
            exit;

        }

        return $sqlserver;
    }


    //VENDAS DA MESMA DATA ANO ANTERIOR
    function vendasDoDiaAnterior($loja)
    {
        //nova instancia data
        $data = new Data;
        //metodo retorna o dia atual do ano passado
        $dia = $data->anoAnterior();

        try {
            $Conexao = Conexao::getConnection();
            $query = $Conexao->query("SELECT LojaOrigem AS loja, sum(Total_Item)
        FROM
            memoria_VendasTodas
        WHERE
            [Data da Venda] = '$dia'
        AND
            Cancelado = 0
        AND
            Estornado = 0
        AND 
            LojaOrigem = '$loja'
        
        GROUP BY
            LojaOrigem
        ;");

            $sqlserver = $query->fetchAll();

            $jsonString = json_encode($sqlserver);

        } catch (Exception $e) {

            echo $e->getMessage();
            exit;

        }

        return $jsonString;

    }

//VENDAS DE UM PERIODO

    public function Vendas($fabricante1, $loja, $datainicio1, $datafinal1)
    {

        //verificar se foi selecionado todos os fabricantes
        if ($fabricante1 == 'TODOS') {
            //se foi atualizar consulta para todos os fabricantes
            $fabricante = "AND VENDAS.Fabricante IS NOT NULL";

            //senao
        } else {
            //atualizar para fabricante selecionado
            $fabricante = "AND VENDAS.Fabricante = '$fabricante1'";
        }


        try {
            $Conexao = Conexao::getConnection();
            //QUERY DA SQL
            $query = $Conexao->query("            
            SELECT
            VENDAS.[Código da Mercadoria] AS codmercadoria,
            SUM(VENDAS.Quantidade_Item) AS quantidade,
            SUM(ESTOQUE.Estoque) AS estoque,
            MIN(VENDAS.Mercadoria) AS mercadoria,
            MIN(CADASTRO.[Preço Compra]) * SUM(VENDAS.Quantidade_Item) AS compra,
            MIN(CADASTRO.[Preço Compra]) * SUM(VENDAS.Quantidade_Item) AS valorcompra,
            SUM(VENDAS.Total_SemDesconto_Item) AS valorbruto,
            SUM(VENDAS.Total_Item) AS vendaliquido,          
            ROUND(SUM(VENDAS.Total_SemDesconto_Item),2) - ROUND(SUM(VENDAS.Total_Item),2)  AS desconto
            
            FROM
            memoria_VendasTodas AS VENDAS
            JOIN [Cadastro de mercadoriasLojas] AS ESTOQUE
            ON VENDAS.[Código da Mercadoria] = ESTOQUE.[Código da Mercadoria]
            JOIN [Cadastro de mercadorias] AS CADASTRO
            ON VENDAS.[Código da Mercadoria] = CADASTRO.[Código da Mercadoria]
            
            WHERE
                   
            VENDAS.LojaOrigem = '$loja'
            AND ESTOQUE.Loja = '$loja'
            AND VENDAS.SubGrupo != '162'
            AND VENDAS.Estornado = 0
            AND VENDAS.Cancelado = 0          
            AND VENDAS.[Data da Venda] >= '$datainicio1'
            AND VENDAS.[Data da Venda] <= '$datafinal1'
            $fabricante
            

            GROUP BY  VENDAS.[Código da Mercadoria]
            ");//FIM DA QUERY

            $sqlserver = $query->fetchAll();

        } catch (Exception $e) {

            echo $e->getMessage();
            exit;
        }

        return $sqlserver;
    }


//VENDAS TOTAL DE UM PERIODO DE UMA EMPRESA

    public function VendasTotal($fabricante1, $loja, $datainicio1, $datafinal1)
    {

        //verificar se foi selecionado todos os fabricantes
        if ($fabricante1 == 'TODOS') {
            //se foi atualizar consulta para todos os fabricantes
            $fabricante = "AND VENDAS.Fabricante IS NOT NULL";

            //senao
        } else {
            //atualizar para fabricante selecionado
            $fabricante = "AND VENDAS.Fabricante = '$fabricante1'";
        }


        try {
            $Conexao = Conexao::getConnection();
            //QUERY DA SQL
            $query = $Conexao->query("SELECT

            SUM(VENDAS.PrecoBruto) AS precobruto
			
            FROM
            memoria_VendasTodas AS VENDAS
            WHERE            
            VENDAS.LojaOrigem = '$loja'

            AND VENDAS.Estornado = 0
            AND VENDAS.Cancelado = 0 
            AND VENDAS.[Data da Venda] >= '$datainicio1'
            AND VENDAS.[Data da Venda] <= '$datafinal1'
            $fabricante
            
            ");//FIM DA QUERY

            $sqlserver = $query->fetchAll();

        } catch (Exception $e) {

            echo $e->getMessage();
            exit;
        }

        return $sqlserver;
    }

   
    public function ComprasProFornecedor($lojasec,$dia)
    {

        try {
            $Conexao = Conexao::getConnection();
            //QUERY DA SQL
            $query = $Conexao->query("SELECT
                    [Data Emissão],
                    [Data da Entrada],
            
                    [Nº Nota Fiscal],
                    LojaOrigem AS LOJA,
                    Fornecedor,
                    [Valor Nota],
                    CFOP
            
                    FROM [Cadastro das Entradas] 
                    
                    WHERE
                    [Data Emissão] >= '$dia'
                    AND [Data da Entrada] >= '$dia'
            
                    AND  CFOP != '1910'
                    AND CFOP != '2910' 
                    AND CFOP != '1949'
                    AND LojaOrigem = '$lojasec'

                    ORDER BY [Data Emissão]          
            
            ");//FIM DA QUERY

            $sqlserver = $query->fetchAll();

        } catch (Exception $e) {

            echo $e->getMessage();
            exit;
        }

        return $sqlserver;
    }





















}//FIM DA CLASSE SQLSERVER