<?php
require_once 'SqlServer.php';

class MysqlConsulta
{
    public function valorBruto($loja,$user,$mydesconto,$myfabricante,$conexao){

        $query1 = "SELECT  sum(valorbruto) as valorbruto					
        
        FROM view_vendas

        WHERE loja = '$loja'
        
        AND usuario = '$user'
        $mydesconto
        $myfabricante					  
        
        ORDER BY valorbruto DESC ";

        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        $row1 = mysqli_fetch_assoc($result1);

        return $row1['valorbruto'];
    }

    public function PrecoAlterado($loja){

    require "../script_php/conexao.php";

    $query1 = "SELECT 
    ATUAL.EAN AS BARRAS,
    ATUAL.DESCRICAO AS DESCRICAO,
    INICIAL.PRECO AS PRECO_ANTERIOR,
    ATUAL.PRECO AS PRECO_ATUALIZADO
    FROM
    preco_inicial AS INICIAL
    RIGHT JOIN preco_atual AS ATUAL
    ON INICIAL.COD_COL_PRECO = ATUAL.COD_COL_PRECO_ATUAL
    WHERE
    ATUAL.LOJA = '$loja'
    AND INICIAL.PRECO <> ATUAL.PRECO OR INICIAL.PRECO IS NULL;";

        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    
        return $result1;
    }


    //gravar a data do preco alterado
    public function dataPrecoAlterado($conexao,$preco,$loja,$barra,$descricao)
    {
        //verificar se um produto esta na tabela de preco alterado
        $cadastro = $this->buscarAlteracao($conexao,$barra,$loja);

        //se estiver
        if($cadastro){

        //apague o preco anterior ou seja o existente
        $query1 = "DELETE FROM `PRECO_ALTERADO_DATA` WHERE BARRA = '$barra' AND LOJA = '$loja';";
        $result1 = mysqli_query($conexao, $query1);

        //grave o preco novo
        $this->cadastrarAlteracaoData($conexao,$preco,$loja,$barra,$descricao);

    //se o preco nao existir na tabela 
    }else{

        //grave o preco alterado
        $this->cadastrarAlteracaoData($conexao,$preco,$loja,$barra,$descricao);
    }

    }

    public function AlterarconsultaParaUsuario($conexao,$visao,$usuario){

        //adicionar a uma variavel a consulta
        $sql = "UPDATE usuarios SET venda_equivalente = $visao WHERE usuario = '$usuario'";
        //execultar a consulta no banco
        mysqli_query($conexao,$sql); //observar que primeiro enviamos a consulta

    }

    public function cadastrarAlteracaoData($conexao,$preco,$loja,$barra,$descricao){

        $data = date('Y-m-d');  
        $query1 = "INSERT INTO `PRECO_ALTERADO_DATA` (`DATA`, `PRECO`, `LOJA`, `BARRA`,`DESCRICAO`)
        VALUES ('$data', '$preco', '$loja', '$barra', '$descricao');";
        $result1 = mysqli_query($conexao, $query1);
            
        return $result1;
    }

    public function buscarAlteracao($conexao,$ean,$loja){

        $query1 = "SELECT COUNT(ID) AS ID FROM `preco_alterado_data` WHERE BARRA = '$ean' AND LOJA = '$loja'";
        //fazendo a consulta no banco de dados
        //$row1 = mysqli_fetch_assoc($query1);

    $result1 = mysqli_query($conexao, $query1);

    foreach ($result1 as $result){

        return $result['ID'];

    }

    }

    public function PrecoAlteradoPorData($conexao,$loja,$datainicio,$datafinal){

        $query1 = "SELECT * FROM `preco_alterado_data` WHERE LOJA = '$loja' AND DATA BETWEEN '$datainicio' AND '$datafinal' ";
        //fazendo a consulta no banco de dados

        $result1 = mysqli_query($conexao, $query1); 
        
        return $result1;
    }

    public function data()
    {
        require "../script_php/conexao.php";

        $data = date('Y-m-d');
        
        $query1 = "INSERT INTO config (IMPORTACAO_PRECO_DATA) VALUE ('$data')";
            
        $result1 = mysqli_query($conexao, $query1); 
        
        return $result1;
    }


    public function informarContagenegativo($conexao, $loja, $quantidade, $idProduto) {

        $query = "INSERT INTO contagenegativo (barras,loja, quantidade) VALUE ('$idProduto', '$loja', '$quantidade')";
        $result = mysqli_query($conexao, $query);
        return $result;
    }

    public function buscarContageneNegativo($conexao,$loja, $barras){

        $query = "SELECT quantidade FROM contagenegativo WHERE loja = '$loja' AND barras = '$barras'";
        $result = mysqli_query($conexao, $query);
        $dado = $result->fetch_assoc();

        if(isset($dado)) { return $dado['quantidade'];}
    }

    public function excluirContagem($conexao, $loja, $barras){

        $query = "DELETE FROM contagenegativo WHERE loja = '$loja' AND barras = '$barras'";
        $result = mysqli_query($conexao, $query);
        return $result;
    }

    public function atualizarValorPedido($conexao, $numeroPedido, $valor){

        $query = "UPDATE pedidos SET valor = '$valor' WHERE numpedido = '$numeroPedido'";
        $resultado = mysqli_query($conexao, $query);
        return $resultado;
    }

    public function buscarCodigoDaCotacaoDoPedido($conexao,$id){

        $query = "SELECT numpedido FROM pedidos WHERE id = '$id' ";
        $resultado = mysqli_query($conexao, $query);
        $dado = $resultado->fetch_assoc();
        
        if(isset($resultado)) {return $dado['numpedido'];}
    }
    
    //dados para nota fiscal de devolução
    public function incluirDadosNotas($conexao,$descricao, $precocompraunt, $precoTotal2, $stunit, $sttotal, $numeronota, $chave, $quntidade,$ean,$alicota,$cod,$fornecedor,$icmsitem,$loja,$icmstotal,$codcst, $cfopDevolucao)
    {
        $query1 = "INSERT INTO `dadosdevolucao` (`descricao`, `precocompraunt`, `precoTotal`, `stunit`, `sttotal`, `numeronota`, `chave`, `quantidade`,`ean`,`alic`,`cod`,`fornecedor`, `icmsitem`,`lojasoft`,`icmstotal`, `codcst`, `cfop` ) VALUES ('$descricao', '$precocompraunt', '$precoTotal2', '$stunit', '$sttotal', '$numeronota', '$chave' , '$quntidade' , '$ean','$alicota','$cod','$fornecedor','$icmsitem','$loja','$icmstotal', '$codcst', '$cfopDevolucao');";
            
        $result1 = mysqli_query($conexao, $query1); 
        
        return $result1;
    }

    //dados para nota fiscal de devolução
    public function salvarDadosDasNotasEmitidas($conexao,$quntidade,$notaemitida,$chave,$codproduto,$loja)
    {
        $query1 = "INSERT INTO `notasusadasdevolucao` (quantidade,notaemitida,chave,codproduto,loja)
        VALUES ('$quntidade', '$notaemitida', '$chave', '$codproduto', '$loja');";
            
        $result1 = mysqli_query($conexao, $query1); 
    }

    //buscar dados
    public function dadosNotaFiscalMysql($conexao){

        $query1 = "SELECT * FROM dadosdevolucao";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    public function dadosNfeEmissao($conexao,$loja,$numeronota,$id)
    {
        $query1 = "UPDATE `dadosdevolucao` SET `LOJA` = '$loja', numeronotaerp = '$numeronota' WHERE `dadosdevolucao`.`id` = '$id'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    //listar produtos a serem congelados
    public function dadosNotaFiscalMysqlInformada($conexao){

        $query1 = "SELECT * FROM dadosdevolucao";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    //buscar produto que sera desativado
    public function contarProdutosParaCongelar($conexao){

        $query1 = "SELECT COUNT(id) as contagem FROM `dadosdevolucao` WHERE LOJA IS NOT NULL";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        $row1 = mysqli_fetch_assoc($result1);
        return $row1['contagem'];
    }


    //buscar produto que sera desativado
    public function contarProdutosParaEmissao($conexao){

        $query1 = "SELECT COUNT(id) as contagem FROM `dadosdevolucao`";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        $row1 = mysqli_fetch_assoc($result1);
        return $row1['contagem'];
    }

    //buscar produto que sera desativado
    public function constaListaProd($conexao,$cod){

        $query1 = "SELECT * FROM `desativar` WHERE COD = '$cod' ";
        
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        if ($result1){

        $row1 = mysqli_fetch_assoc($result1);

        if (isset($row1['COD'])) {
        // O índice existe e não é null
        return $row1['COD'];
        }else{

        }

        }
    }

        public function constaListaProdLoja($conexao,$cod,$loja){

        $query1 = "SELECT * FROM `desativarprodloja` WHERE COD = '$cod' AND loja = '$loja' ";
        
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        if ($result1){

        $row1 = mysqli_fetch_assoc($result1);

        if (isset($row1['COD'])) {
        // O índice existe e não é null
        return $row1['COD'];
        }else{

        }

            
        }
    }

    public function ExcluirDadosNfeDevolucao($conexao,$id){
        $consulta = "DELETE FROM `dadosdevolucao` WHERE `dadosdevolucao`.`id` = $id ";
        $resultado = mysqli_query($conexao,$consulta);
    }

    public function BuscarChave($conexao, $chave) {
        $query1 = "SELECT * FROM dadosdevolucao WHERE chave = '$chave'";

        // Fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        // Verifica se houve algum resultado
        if ($result1 && $row1 = mysqli_fetch_assoc($result1)) {
            return $row1['chave'];
        }

        // Retorna null ou outro valor padrão caso não encontre
        return null;
    }


    //busca a quantidade de um item que ja foi emitido para uma chave
    public function buscarProdUsado($conexao,$chave,$codprod){

        $query1 = "SELECT sum(quantidade) as quantidade FROM `notasusadasdevolucao` WHERE chave = '$chave' and codproduto = $codprod";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        $row1 = mysqli_fetch_assoc($result1);

        return $row1['quantidade'];
    }

    //consulta se um ean esta na lista de espera para ser emitida a nota pois nao pode haver dois com mesmo codigo para nao confundir o envio dos dados para o softcom
    public function produtoEspera($conexao, $cod) {
        $query1 = "SELECT * FROM `dadosdevolucao` WHERE cod = $cod";

        // Fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        
        // Verifica se houve algum resultado
        if ($result1 && $row1 = mysqli_fetch_assoc($result1)) {
            return $row1['cod'];
        }

        // Retorna null ou outro valor padrão caso não encontre
        return null;
    }

    public function buscarImportacao($data){

        require "../script_php/conexao.php";

        $query1 = "SELECT IMPORTACAO_PRECO_DATA FROM config WHERE IMPORTACAO_PRECO_DATA = '$data' ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        $row1 = mysqli_fetch_assoc($result1);

        return $row1['IMPORTACAO_PRECO_DATA'];
    }

    public function BuscarFornecedorPelaRazao($fornecedor,$loja,$conexao){

        $query1 = "SELECT fornecedor FROM notas WHERE fornecedor = '$fornecedor' AND status = 'Pendente' and loja = '$loja' ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        $row1 = mysqli_fetch_assoc($result1);

        return $row1['fornecedor'];
    }

    public function produtosEtiquetas($usuario){

        require "../../script_php/conexao.php";
        $query1 = "SELECT * FROM etiquetas  WHERE usuario_emit = '$usuario'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    //cadastrar valor do orcamento
    public function cadastrarOrcamento($conexao,$valor,$loja,$mesAno){
        //troca a virgula por ponto
        $valorFormatado = str_replace(",",".",$valor);

        $consulta = "INSERT INTO orcamento (valor,loja,mes_ano) VALUE ('$valorFormatado','$loja','$mesAno') ;";
        mysqli_query($conexao,$consulta);
    }

    //excluir orcamento
    public function excluirOrcamento($conexao,$id){
        
    $consulta = "DELETE FROM orcamento WHERE id_orcamento = '$id' ";
    mysqli_query($conexao,$consulta);

    }

    //buscar orcamentos
    public function buscarOrcamento($conexao){
        
        $query1 = "SELECT * FROM orcamento; ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        return $result1;
    }

    //buscar orcamentos
    public function buscarOrcamentoLoja($conexao,$loja,$mesAtual,$dataFinal){

        //se sao de meses diferentes
        if($mesAtual == $dataFinal){
        
        $query1 = "SELECT * FROM orcamento WHERE LOJA = '$loja' AND MES_ANO = '$mesAtual'; ";
        
        }else{
            $query1 = " SELECT sum(VALOR) AS VALOR FROM orcamento WHERE LOJA = '$loja' AND MES_ANO BETWEEN '$mesAtual' AND '$dataFinal'; ";
        } 
        
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        foreach($result1 as $resultado){

        return $resultado['VALOR'];
        }
    }

    public function buscarRecorrencia($conexao){
        $query1 = "SELECT ID,OBSERVACAO FROM recorrencia_caixa; ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        return $result1;
    }
    public function buscarRecorrenciaListar($conexao){
        
        $query1 = "SELECT * FROM recorrencia_automatica; ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        return $result1;
    }

    public function buscarRecorrenciaListarIndividual($conexao,$id){
        
        $query1 = "SELECT * FROM `recorrencia_caixa` WHERE ID = '$id'; ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        foreach ($result1 as $dados){
        return $dados['HISTORICO'];
        }
    }

    public function buscarRecorrenciaExcluir($conexao,$id){
        
        $query1 = "DELETE FROM recorrencia_automatica WHERE `recorrencia_automatica`.`ID_BAIXA_AUTO` = '$id'; ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        
    }

    public function buscarRecorrenciaDescricao($conexao,$descricao){
    
        $descricao =preg_replace('/\s+/', '', $descricao);

        $query1 = "SELECT * FROM `recorrencia_automatica` WHERE DESCRICAO = '$descricao' AND FINALIZAR = 0;";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        
        //return $descricao;
        foreach ($result1 as $dados){

        return $dados['ID_RECORRENCIA'];
        //return $descricao;
        
        }
    }

    //consultar sangria para baix banco
    public function buscarRecorrenciaDescricaoBanco($conexao,$descricao){

        $descricao =preg_replace('/\s+/', '', $descricao);
        $query1 = "SELECT * FROM `recorrencia_automatica` WHERE DESCRICAO = '$descricao' AND FINALIZAR = 1;";
        
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        
        //return $descricao;
        foreach ($result1 as $dados){

        return $dados['FINALIZAR'];
        //return $descricao;
        
        }
    }

    public function produtosEtiquetasCadastrar($descricao,$preco,$loja) {
        require "../../script_php/conexao.php";

        $usuario = $_SESSION['usuario'];


        // Comando SQL de inserção
        $query = "INSERT INTO etiquetas (descricao, preco,usuario_emit,loja,codigo) VALUES ('$descricao', '$preco','$usuario','$loja','$codigo')";

        // Executando o comando SQL
        $result = mysqli_query($conexao, $query);

        // Verificando se a inserção foi bem sucedida
        if ($result) {
            // Inserção bem sucedida
            return true;
        } else {
            // Inserção falhou
            return false;
        }
    }

    //buscar a loja logada pelo usuario antes de sair do sistma

    public function LoginLoja($usuario,$conexao){

        $query1 = "SELECT LOJALOGIN AS LOJA FROM usuarios WHERE usuario = '$usuario' ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        $row1 = mysqli_fetch_assoc($result1);

        return $row1['LOJA'];
    }

    //buscar a loja logada pelo usuario antes de sair do sistma

    public function LoginLojaAlterar($usuario,$loja,$conexao){

        $query1 = "UPDATE usuarios SET LOJALOGIN = '$loja' WHERE usuario = '$usuario'";	
        
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    }


    //gravar dados que serao desativados de forma automatca
    public function gravarProdutosParaDesativa($conexao,$id)
    {
        $query1 = "INSERT INTO `desativar` (`COD`) VALUES ('$id');";
        $result1 = mysqli_query($conexao, $query1); 
        
        return $result1;
    }

    //gravar dados que serao desativados de forma automatca
    public function gravarProdutosParaDesativaLoja($conexao,$id,$loja)
    {
        $query1 = "INSERT INTO `desativarprodloja` (`COD`,`loja`) VALUES ('$id','$loja');";
        $result1 = mysqli_query($conexao, $query1); 
        
        return $result1;
    }





    public function desativarDados($conexao){

        $query1 = "SELECT * FROM `desativar`;";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    
        return $result1;

    }

    public function desativarDadosExcluir($conexao,$id){

        $query1 = "DELETE FROM `desativar` WHERE `ID` = '$id';";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    }

    public function profissionaisCadastrados($conexao) {

        $query = "SELECT * FROM `clientes` 
        ORDER BY dataNascimento DESC";
        $resultado = mysqli_query($conexao, $query);
        return $resultado;
        
    }


    public function listaDeArquivos($conexao){

        $query1 = "SELECT * FROM `arquivos`";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    public function totalNota($conexao) {

        $query = "SELECT (sum(precototal) + sum(stunit)) as soma FROM `dadosdevolucao` ";
        $resultado = mysqli_query($conexao, $query);
        $row = mysqli_fetch_assoc($resultado);

        return $row['soma'];
        
    }

    public function buscarProdutosEmAvaria($conexao){

        $query1 = "SELECT
        fabricante,
        lojaorigem,
        SUM(CASE WHEN lojaorigem = 'LOJA 01' THEN estoque ELSE 0 END) AS `LOJA 01`,
        SUM(CASE WHEN lojaorigem = 'LOJA 02' THEN estoque ELSE 0 END) AS `LOJA 02`,
        SUM(CASE WHEN lojaorigem = 'LOJA 03' THEN estoque ELSE 0 END) AS `LOJA 03`,
        SUM(CASE WHEN lojaorigem = 'LOJA 04' THEN estoque ELSE 0 END) AS `LOJA 04`,
        SUM(CASE WHEN lojaorigem = 'LOJA 05' THEN estoque ELSE 0 END) AS `LOJA 05`,
        SUM(CASE WHEN lojaorigem = 'LOJA 06' THEN estoque ELSE 0 END) AS `LOJA 06`

        FROM `avarias`

        WHERE estoque > 0

        GROUP BY fabricante;";

        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    public function buscarProdutosEmAvariaAndamento($conexao){

        $query1 = "SELECT
        fabricante,
        lojaorigem,
        SUM(CASE WHEN lojaorigem = 'LOJA 01' THEN estoqueandamento ELSE 0 END) AS `LOJA 01`,
        SUM(CASE WHEN lojaorigem = 'LOJA 02' THEN estoqueandamento ELSE 0 END) AS `LOJA 02`,
        SUM(CASE WHEN lojaorigem = 'LOJA 03' THEN estoqueandamento ELSE 0 END) AS `LOJA 03`,
        SUM(CASE WHEN lojaorigem = 'LOJA 04' THEN estoqueandamento ELSE 0 END) AS `LOJA 04`,
        SUM(CASE WHEN lojaorigem = 'LOJA 05' THEN estoqueandamento ELSE 0 END) AS `LOJA 05`,
        SUM(CASE WHEN lojaorigem = 'LOJA 06' THEN estoqueandamento ELSE 0 END) AS `LOJA 06`

        FROM `avarias` 

        WHERE estoqueandamento > 0

        GROUP BY fabricante;";

        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }


    public function inserirProdutoAvaria  ($conexao,$ean,$descricao,$quantidade,$precoCompra,$precoCompraComImposto,$loja,$usuario,$fabricante,$codajuste,$codigoDoProduto,$controle)
    {

        $query1 = "INSERT INTO `avarias` (`ean`, `descricao`, `estoque`, `precocompra`, `precomaisimposto`, `lojaorigem`,`usuariolancamento`, `fabricante`,`CODAJUSTE`,`CODPROD`, `controle`)  VALUES ('$ean','$descricao','$quantidade','$precoCompra','$precoCompraComImposto','$loja','$usuario','$fabricante', '$codajuste','$codigoDoProduto','$controle')";

        $result1 = mysqli_query($conexao, $query1); 

    }


    public function listarAvarias($conexao,$fabricante,$loja,$tipoestoque){
        
        if($fabricante == 'SELECIONE'){

            $consulta  = "AND fabricante IS NOT NULL";
        }else{
            $consulta  = "AND fabricante = '$fabricante'";
        }

        if($tipoestoque == 'emandamento'){

            $query1 = "SELECT id, ean, SUM(estoqueandamento) as estoque, lojaorigem, descricao, precocompra,precomaisimposto,status,usuariolancamento, fabricante FROM `avarias` WHERE lojaorigem = '$loja' $consulta AND estoqueandamento > 0 GROUP BY ean " ;
            //fazendo a consulta no banco de dados
            $result1 = mysqli_query($conexao, $query1);
            return $result1;
        }

        if($tipoestoque == 'pendente'){

            $query1 = "SELECT id, ean, SUM(estoque) as estoque, lojaorigem, descricao, precocompra,precomaisimposto,status,usuariolancamento , fabricante  FROM `avarias` WHERE lojaorigem = '$loja' $consulta AND estoque > 0 GROUP BY ean " ;
            //fazendo a consulta no banco de dados
            $result1 = mysqli_query($conexao, $query1);
            return $result1;
            
        }

        if($tipoestoque == 'concluido'){

            $query1 = "SELECT id, ean, SUM(estoqueconcluido) as estoque, lojaorigem, descricao, precocompra,precomaisimposto,status,usuariolancamento , fabricante  FROM `avarias` WHERE lojaorigem = '$loja' $consulta AND estoqueconcluido > 0 GROUP BY ean " ;
            //fazendo a consulta no banco de dados
            $result1 = mysqli_query($conexao, $query1);
            return $result1;   
        }
        
    }

    public function procurarItem($conexao,$ean,$loja) {

        $query = "SELECT ean, estoque, id FROM avarias WHERE ean = '$ean' AND lojaorigem = '$loja'";

        $resultado = mysqli_query($conexao, $query);
        $row = mysqli_fetch_assoc($resultado);

    $dados[0] = $row['id'] ?? 0;
        
        $dados[1]  = $row['estoque'] ?? 0;

        return  $dados;
        
    }
    public function AtualizarEstoque($conexao,$id,$estoque,$controle,$codajuste){

        $query1 = "UPDATE avarias 
        SET estoque = '$estoque' , controle = '$controle', CODAJUSTE = '$codajuste'
        WHERE  id = '$id'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    }

    public function AtualizarStatus($conexao,$id,$tipo){

        $query1 = "UPDATE avarias 
        SET status = '$tipo' 
        WHERE  id = '$id'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    }


    public function procurarItemRetornarQuantidade($conexao,$id) {

        $query = "SELECT estoque, id FROM avarias WHERE id = '$id'";

        $resultado = mysqli_query($conexao, $query);
        $row = mysqli_fetch_assoc($resultado);

        $dados[0] = $row['id'];
        $dados[1]  = $row['estoque'];

        return  $dados;
        
    }

    public function procurarItemRetornarQuantidadeAndamento($conexao,$id) {

        $query = "SELECT estoqueandamento as andamento, id FROM avarias WHERE id = '$id'";

        $resultado = mysqli_query($conexao, $query);
        $row = mysqli_fetch_assoc($resultado);

        $dados[0]  = $row['andamento'];

        return  $dados;
        
    }
    public function AtualizarAndamento($conexao,$id,$quantidade){

        $query1 = "UPDATE avarias 
        SET estoqueandamento = '$quantidade', estoque = 0
        WHERE  id = '$id'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    }


    public function AtualizarAndamentoConcluido($conexao,$id,$quantidade){

        $query1 = "UPDATE avarias 
        SET estoqueandamento = '0', estoqueconcluido = $quantidade
        WHERE  id = '$id'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    }

        
    //insirir uma novo produto na avaria
    public function cadastrarAvaria($conexao,
                                    $quantidade,
                                    $lojaOrigem,
                                    $ean,
                                    $usuario,
                                    $tipo,
                                    $codajuste,
                                    $codigoDoProduto,
                                    $controle
                                ){

        $sql = new SqlServer();
        
        if($lojaOrigem == 'MATRIZ'){$lojaOrigem = 'LOJA 01';}
        
        //se for uma entrada
        if($tipo  == 'entrada'){
        
        //procure o produto no remoto
        $cadastrado =  $this->procurarItem($conexao,$ean,$lojaOrigem);
        
        if($cadastrado[0]){
        
                $atualizarEstoque = $quantidade + $cadastrado[1]; 

                $this->AtualizarEstoque($conexao,$cadastrado[0],$atualizarEstoque,$controle,$codajuste);

        }else{
        
        //buscar dados do softcom
        $sqlserver = $sql->buscarProdutoEanAvarias($ean);
        
        if(!$sqlserver){

                $_SESSION['msg'] = "<div class='alert alert-danger'>NÃO ENCONTRADO</div>"; 
        }
        
        foreach ($sqlserver as $dados){
        
                                    
                //transferir dados entre estoques
                $this->inserirProdutoAvaria($conexao,$dados[0],$dados[1],$quantidade,$dados[2],$dados[3],$lojaOrigem,$usuario,$dados[4],$codajuste,$codigoDoProduto,$controle);
        }
        
        }
        
        }else{
                
                $cadastrado =  $this->procurarItem($conexao,$ean,$lojaOrigem);
                $atualizarEstoque = $cadastrado[1] - $quantidade;
            
            if($cadastrado[1] >= $quantidade){
        
                $this->AtualizarEstoque($conexao,$cadastrado[0],$atualizarEstoque);
        
            }else{
        
            // $_SESSION['msg'] = "<div class='alert alert-danger'>Quantidade superior ao que tem em estoque de avaria PROCESSO NÃO CONCLUÍDO</div>";
            // header("Location: ../adicionarProdutoAvaria.php");
            }
        }
        
        }

    public function buscarCodigoAjusteRemoto($conexao,$codProd) {

        $query = "SELECT max(CODAJUSTE) as CODAJUSTE FROM `avarias`";

        $resultado = mysqli_query($conexao, $query);
        $row = mysqli_fetch_assoc($resultado);

        return  $row['CODAJUSTE'];  
    }

        
    public function buscarCodigoControleRemoto($conexao) {

        $query = "SELECT max(controle) as controle FROM `avarias`";

        $resultado = mysqli_query($conexao, $query);
        $row = mysqli_fetch_assoc($resultado);

        return  $row['controle'];
        
    }

    //se tem loja aberta
    function verificarAberta($lojaCaixa,$hoje2,$server){

        $retornoCaixaAberto = $server->statusLoja($lojaCaixa, $hoje2);

            if ($retornoCaixaAberto > 0) {
                echo $retornoCaixaAberto . " PDVS ABERTOS";
            }else{
                echo "FECHADA";
            }
        }

    public function importarVendasSoftcom($conexao, $dataVenda, $loja, $dataVencimento, $nsu, $quantidadeParcelas, $parcela, $valorParcela, $bandeira, $cartao, $tpCred,$registro,$valorbruto,$taxa,$statuspagamento)
    {
        // Consulta SQL para inserir os dados na tabela 'pagamentossoft'
        $query1 = "INSERT INTO `pagamentossoft` (`id`, `datavenda`, `loja`, `datavencimento`, `nsu`, `quantidade_parcelas`, `parcela`, `valor_parcela`, `bandeira`, `cartao`, `tpcred`,`registro`,`valorbruto`,`taxa`, `status_pagamento`)
        VALUES (NULL, '$dataVenda', '$loja', '$dataVencimento', '$nsu', '$quantidadeParcelas', '$parcela', '$valorParcela', '$bandeira', '$cartao', '$tpCred','$registro','$valorbruto','$taxa', '$statuspagamento')";
            
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }


    
    public function buscarVendaRecebida($conexao,$nsu,$parcela,$loja_atualizar,$atualizar)
    {
        $query1 = "UPDATE pagamentos SET statuspagamentos = '$atualizar' WHERE nsu = '$nsu' AND parcela = '$parcela' AND loja_origem = '$loja_atualizar'";

        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
    }


    //buscar dados
    public function dadosVendasImportadasSoftcom($conexao){

        $query1 = "SELECT * FROM pagamentossoft ORDER BY datavenda";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    public function dadosVendasImportadasSoftcomNsu($conexao,$nsu,$parcela,$dataVenda){

        $query1 = "SELECT * FROM pagamentos WHERE nsu = $nsu AND parcela = $parcela AND data_venda = '$dataVenda'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        $row = mysqli_fetch_assoc($result1);

        return  $row; 
       
    }

    public function clearTable($conexao){

        $query1 = "TRUNCATE pagamentossoft";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    public function vendasCartaoImportado($conexao){

        $query1 = "SELECT COUNT(id) as id FROM `pagamentossoft`";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        $row = mysqli_fetch_assoc($result1);

        return  $row; 
    }

    public function vendasCartaoImportadoValor($conexao){

        $query1 = "SELECT SUM(valor_parcela) as parcela FROM `pagamentossoft`";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        $row = mysqli_fetch_assoc($result1);
        return  $row; 
    }

    public function valoresImportadosRede($conexao){

        $query1 = "SELECT COUNT(id) AS total_vendas, SUM(valor_parcela) AS valor_total , SUM(taxa) as taxa FROM  pagamentos";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }


    
    public function valoresImportadosRedeEntreDatas($conexao){

        $datasConsultas = $this->buscarIntervaloEntreDatasImportadosSoftcom($conexao);

        $dataInicial = $datasConsultas['vencimento'];
        $dataFinal = $datasConsultas['vencimento1'];

        $query1 = "SELECT COUNT(id) AS total_vendas, SUM(valor_parcela) AS valor_total , SUM(taxa) as taxa FROM pagamentos WHERE recebimento BETWEEN '$dataInicial' AND '$dataFinal'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

        public function buscarIntervaloEntreDatasImportadosSoftcom($conexao)
        {

            $query1 = "SELECT min(datavencimento) as vencimento, max(datavencimento) as vencimento1 FROM `pagamentossoft`; ";
            //fazendo a consulta no banco de dados
            $result1 = mysqli_query($conexao, $query1);
    
            $row = mysqli_fetch_assoc($result1);
            return  $row;             
        }

    public function clearTablePagamentosRede($conexao){

        $query1 = "TRUNCATE pagamentos";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    
    public function buscarRegistro($conexao,$dataVenda,$nsu,$parcela){

        $query1 = "SELECT registro FROM pagamentossoft WHERE datavenda = '$dataVenda' AND nsu = '$nsu' AND parcela = '$parcela'";

        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        $row = mysqli_fetch_assoc($result1);
        return  $row; 
    }

    public function buscarVencimento($conexao,$dataVenda,$nsu,$parcela){

        $query1 = "SELECT recebimento FROM pagamentos WHERE data_venda = '$dataVenda' AND nsu = '$nsu' AND parcela = '$parcela'";

        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        $row = mysqli_fetch_assoc($result1);
        return  $row; 
    }
    
    public function ajustarNsuInesistente($conexao){

        $query = "UPDATE pagamentossoft SET nsu = 0 WHERE nsu < 1";
        $resultado = mysqli_query($conexao, $query);    
    }
    public function limparDadosRepetidosRecebimentos($pdo)
    {
        $query = "DELETE t1 FROM pagamentos t1 INNER JOIN pagamentos t2 ON t1.rest = t2.rest AND t1.id > t2.id";
        
        try {
            $stmt = $pdo->prepare($query);
            $stmt->execute();
        } catch (PDOException $e) {
            echo "Erro ao excluir registros duplicados: " . $e->getMessage();
        }
    }
        
    //buscar dados
    public function vendasPorStatus($conexao){

        $dados = $this->procurarDatasRecebimentos($conexao);

        foreach ($dados as $dado)
        {
            $dataInicio = $dado["dataInicio"];
            $dataFinal = $dado["dataFinal"];
            $loja = $dado["loja"];
        }

        $query1 = "SELECT COUNT(ID) AS QUANTIDADE, SUM(valor_parcela) AS VALOR, status FROM pagamentos WHERE loja_origem = '$loja' AND recebimento BETWEEN '$dataInicio' AND '$dataFinal' GROUP BY status";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    //buscar dados
    public function verificarSeFoiBaixada($conexao,$rest){

        $query1 = "SELECT id WHERE rest = '$rest'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }

    public function vendasPorStatusNs($conexao){

        $dados = $this->procurarDatasRecebimentos($conexao);

        foreach ($dados as $dado)
        {
            $dataInicio = $dado["dataInicio"];
            $dataFinal = $dado["dataFinal"];
            $loja = $dado["loja"];
        }

        $query1 = "SELECT * FROM pagamentos WHERE loja_origem = '$loja' AND recebimento BETWEEN '$dataInicio' AND '$dataFinal'";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }




   public function recebimentosAntecipados($conexao)
   {
        $dados = $this->procurarDatasRecebimentos($conexao);

        foreach ($dados as $dado)
        {
            $dataInicio = $dado["dataInicio"];
            $dataFinal = $dado["dataFinal"];
            $loja = $dado["loja"];
        }

        $query1 = "SELECT * FROM pagamentos WHERE loja_origem = '$loja' AND recebimento BETWEEN '$dataInicio' AND '$dataFinal' AND status = 'antecipada' ";
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

    return $result1;
}

public function procurarDatasRecebimentos($conexao)
{
    $query = "SELECT MIN(datavencimento) AS dataInicio, MAX(datavencimento) AS dataFinal, loja FROM pagamentossoft";
    $result = mysqli_query($conexao, $query);
    return $result;
}


public function informarBaixaNsu($conexao, $rest){

    $query = "INSERT INTO `nsu_antecipado` (`rest`) VALUES ('$rest')";
    $resultado = mysqli_query($conexao, $query);    
}

public function buscarRest($conexao,$rest)
{
    $query = "SELECT * FROM nsu_antecipado WHERE rest = '$rest'";
    $result = mysqli_query($conexao, $query);
    return $result;
}

public function retornarUmRecebimentoRede($conexao,$id_recebido){

    $query1 = "SELECT * FROM pagamentos WHERE id = $id_recebido;";

    //fazendo a consulta no banco de dados
    $resultado = mysqli_query($conexao, $query1);
    return $resultado;
}

    //buscar dados
    public function vendasAntecipadasPendente($conexao)
    {
        $dados = $this->procurarDatasRecebimentos($conexao);

        foreach ($dados as $dado)
        {
            $dataInicio = $dado["dataInicio"];
            $dataFinal = $dado["dataFinal"];
            $loja = $dado["loja"];
        }

        $query1 = "SELECT COUNT(statuspagamentos) AS id FROM pagamentos WHERE loja_origem = '$loja' AND status = 'antecipada' AND recebimento BETWEEN '$dataInicio' AND '$dataFinal' AND statuspagamentos = 0;";
        
        //fazendo a consulta no banco de dados
        $result1 = mysqli_query($conexao, $query1);

        $row = mysqli_fetch_assoc($result1);

        return  $row; 
    }


    public function codSot($conexao,$cod){
		//verificar se foi enviado o codigo do pedido
		if(isset($cod)){
        $query1 = "SELECT seqsoft as soft FROM pedidos WHERE id = $cod";
        $result1 = mysqli_query($conexao, $query1);
        if($result1){
        $row1 = mysqli_fetch_assoc($result1);
        return $row1['soft'];
        }else{
            return 0;
        }
		}else{
			//se nao foi informado codigo do pedido
			return 0;
    }
	}

    public function mensagemNaoLidasContagem($conexao,$usuario){

        $query1 = "SELECT COUNT(id) AS ID FROM alertarecebimento WHERE status = 3 AND user = '$usuario' " ;
        $result1 = mysqli_query($conexao, $query1);

        foreach ($result1 as $result){

            return $result['ID'];
        }
    }

    public function mensagemNaoLida($conexao,$usuario){

        $query1 = "

        SELECT 
        ALERTA.id AS IDALERTA,
        PEDIDOS.id AS ID,
        NOTAS.idpedidos,
        NOTAS.chave AS CHAVE,
        PEDIDOS.obs AS OBSERVACAOPEDIDO,
        NOTAS.observacao AS OBSERVACAONOTA,

        PEDIDOS.fabricante AS FABRICANTE,
        PEDIDOS.datapedido AS DATAPEDIDO,
        NOTAS.data_cadastro AS DATARECEBIMENTO,
        NOTAS.loja AS LOJA,
        PEDIDOS.fornecedor AS FORNECEDOR,
        PEDIDOS.numpedido 

        FROM

        notas as NOTAS
        JOIN pedidos AS PEDIDOS
        ON NOTAS.idpedidos = PEDIDOS.id

        JOIN alertarecebimento AS ALERTA
        ON ALERTA.numpedido = PEDIDOS.numpedido

        WHERE

        PEDIDOS.status = 'Recebido' AND ALERTA.status = 3
        AND ALERTA.user = '$usuario'

        GROUP BY id

        ORDER BY `data_cadastro` DESC;

        ";

        $result1 = mysqli_query($conexao, $query1);
        return $result1;
    }
    
    public function lerMensagem($conexao, $id){

        $query1 = "UPDATE alertarecebimento SET status = 1 WHERE id = '$id'; ";
        $result1 = mysqli_query($conexao, $query1);
    }
    
    public function cadatrarMensagem($conexao, $id, $usuario){

        $query1 = "INSERT INTO alertarecebimento (numpedido,status,user) VALUES ('$id',2,'$usuario');";
        $result1 = mysqli_query($conexao, $query1);
    }

    
    public function verificarNumeroPedidoSoft($conexao,$idpedido){

        $query1 = "SELECT numpedido as id FROM pedidos WHERE id = '$idpedido'" ;
        $result1 = mysqli_query($conexao, $query1);

        foreach ($result1 as $result){

            return $result['id'];
        }
    }

    
    public function verificaSeExisteMensagemParaEssePedido($conexao,$idpedido){


         $numeroSoftcom = $this->verificarNumeroPedidoSoft($conexao,$idpedido);
        
         if(isset($numeroSoftcom)){

        $query1 = "UPDATE alertarecebimento SET status = 3 WHERE numpedido = '$numeroSoftcom'; ";
        $result1 = mysqli_query($conexao, $query1);
        
         }
    }



    public function verificarNumeroPedidoSoft2($conexao,$idpedido){

        $query1 = "SELECT numpedido as id FROM pedidos WHERE id = '$idpedido'" ;
        $result1 = mysqli_query($conexao, $query1);

        foreach ($result1 as $result){

            return $result['id'];
        }
    }

    
    public function verificaSeExisteMensagemParaEssePedido2($conexao,$idpedido){

         $numeroSoftcom = $this->verificarNumeroPedidoSoft($conexao,$idpedido);
        
         if(isset($numeroSoftcom)){

        $query1 = "UPDATE alertarecebimento SET status = 2 WHERE numpedido = '$numeroSoftcom'; ";
        $result1 = mysqli_query($conexao, $query1);
        
         }
    }


    public function verificarPedidoFabricante($conexao,$fabricante,$loja){

        $query1 = "SELECT * FROM `pedidos` WHERE fabricante = '$fabricante' AND status = 'Pendente' AND loja = '$loja'" ;
        $result1 = mysqli_query($conexao, $query1);
        $row = mysqli_fetch_assoc($result1);
        
        return $row;
        
    }

    //busca a quantidade de um item que ja foi emitido para uma chave
    public function buscarProdutoMes($vendasNova, $usuario, $arquivo){

    foreach ($vendasNova as $vendas3) {
    $linha = $vendas3[0] . "|" . round($vendas3[1]) . PHP_EOL;
    fwrite($arquivo, $linha);
    }
    }


 public function verificarCodigoNoArquivo($usuario, $codigoProcurado)
{
    $caminhoArquivo = "gerador/arquivos/usuario$usuario/vendasRelatorio.txt";

    if (!file_exists($caminhoArquivo)) {
        return false;
    }

    $arquivo = fopen($caminhoArquivo, 'r');

    while (($linha = fgets($arquivo)) !== false) {
        $dados = explode('|', trim($linha)); // Remove quebra de linha e separa

        if (isset($dados[0]) && $dados[0] == $codigoProcurado) {
            fclose($arquivo);
            return $dados[1]; // Código encontrado
        }
    }

    fclose($arquivo);
    return 0; // Código não encontrado
}


public function informarProdutosNaoCadastrados($conexao, $referencia, $quantidade, $descricao){
    
        $query1 = "INSERT INTO `nao_cadastrados` (`REFERENCIA`, `DESCRICAO`, `quantidade`) VALUES ('$referencia', '$descricao', '$quantidade');";
        $result1 = mysqli_query($conexao, $query1);

    }

public function produtosNaoCadastraos($conexao)
{
    $query = "SELECT * FROM nao_cadastrados";
    $result = mysqli_query($conexao, $query);
    return $result;
}


//recebendo todos os pedidos
public function buscarStatusPedido($conexao, $pedidos){

    foreach($pedidos as $ped){
    
    $pedido = $this->BuscarStatusPedidoMysql($conexao, $ped[0]);
   
    if ($pedido == 'Pendente'){
        return $ped[0];
    }
}

}

public function BuscarStatusPedidoMysql($conexao, $codPedido){
      
    $query1 = "SELECT status FROM `pedidos` WHERE numpedido = $codPedido AND status = 'Pendente'";
    $result1 = mysqli_query($conexao, $query1);
    $row1 = mysqli_fetch_assoc($result1);

    foreach ($result1 as $result){
        return $result['status'];
    }
}

}