<?php

class Avaria {
    
    public $id;
    public $fabricante;
    public $usuario_solicitante;
    public $lojaOrigem;
    public $data_solicitacao;
    public $faze_contagem;
    public $fazer_nfe;
    public $arquivo_nfe;
    public $status_solicitacao;

    public function cadastrarAvariaCabecalho($conexao,
                                            $fabricante,
                                            $usuario_solicitante,
                                            $lojaOrigem,
                                            $data_solicitacao,
                                            $faze_contagem,
                                            $fazer_nfe,
                                            $status_solicitacao,
                                            $idpedido
                                            )
    {
        $query= "INSERT INTO `avaria_conferencia_cabecalho`
                           (`fabricante`,
                            `usuario_solicitante`,
                            `lojaOrigem`,
                            `data_solicitacao`,
                            `faze_contagem`,
                            `fazer_nfe`,
                            `status_solicitacao`,
                            `idpedido`)

                            VALUES

                            ('$fabricante',
                            '$usuario_solicitante',
                            '$lojaOrigem',
                            '$data_solicitacao',
                            '$faze_contagem',
                            '$fazer_nfe',
                            '$status_solicitacao',
                            '$idpedido'
                            )";

        mysqli_query($conexao, $query);

        return mysqli_insert_id($conexao);

    }

    public function cadastrarProdutosAvaria($conexao, $codCabecalho, $ean, $descricao, $preco, $quantidade){
        $query = "INSERT INTO `avaria_conferencia`
                    (`solicitacao_fk`, `ean`, `descricao`, `preco`, `quantidade`)
                    VALUES
                    ('$codCabecalho', '$ean', '$descricao', '$preco', '$quantidade')";
                    mysqli_query($conexao, $query);
    }

    //editar a quantidade de produtos de uma solicitacao
    public function editarProdutoAvaria($conexao, $ean, $quantidade, $idAvaria){

        $query = "UPDATE `avaria_conferencia` SET `quantidade` = '$quantidade' WHERE `ean` = $ean AND solicitacao_fk = $idAvaria";
        mysqli_query($conexao, $query);

        //informar que ja foi contado
        $this->informarContagem($conexao, $idAvaria);
    }

    //informar que uma solicitacao foi contada
    public function informarContagem($conexao, $idAvaria){
        $query = "UPDATE avaria_conferencia_cabecalho SET contado = 'S' WHERE id = $idAvaria";
        mysqli_query($conexao,$query);
   }

    public function adicionarArquivo($conexao, $idAvaria, $idArquivo){
        $query = "INSERT INTO `avaria_arquivos` (`FK_CABECALHO`, `FK_ARQUIVO`) VALUES ('$idAvaria', '$idArquivo')";
        mysqli_query($conexao, $query);
    }

    public function listarSolicitacaoAvaria($conexao){
        
        $query = "SELECT * FROM `avaria_conferencia_cabecalho`";
        $resultado = mysqli_query($conexao,$query);

        return $resultado;
    }

    public function listarSolicitacaoAvariaAbertos($conexao){
        
        $query = "SELECT * FROM `avaria_conferencia_cabecalho` WHERE status_solicitacao != 'D'";
        $resultado = mysqli_query($conexao,$query);

        return $resultado;
    }


    public function listarSolicitacaoAvariaAbertosPedido($conexao, $idPedido){
        
        $query = "SELECT * FROM `avaria_conferencia_cabecalho` WHERE idpedido = $idPedido";
        $resultado = mysqli_query($conexao,$query);

        return $resultado;
    }


    public function listarUmaSolicitacaoAvaria($conexao, $idAvaria){
        $query = "SELECT * FROM avaria_conferencia_cabecalho WHERE id = $idAvaria";
        $resultado = mysqli_query($conexao,$query);

        return $resultado;

    }

    public function listarSolicitacaoAvariaProdutos($conexao, $idAvaria){
        $query = "SELECT * FROM `avaria_conferencia` WHERE solicitacao_fk = $idAvaria";
        $resultado = mysqli_query($conexao,$query);

        return $resultado;
    }


    public function listarSolicitacaoAvariaProdutosPDF($conexao, $idAvaria){
        $query = "SELECT * FROM 
        avaria_conferencia_cabecalho AS CABECALHO
        JOIN avaria_conferencia AS CONFERENCIA
        ON CABECALHO.id = CONFERENCIA.solicitacao_fk
        WHERE CABECALHO.id = '$idAvaria'
        ;
";
        $resultado = mysqli_query($conexao,$query);

        return $resultado;
    }


    public function listarArquivosDeUmaSolicitacao($conexao, $idAvaria){

        $query = "SELECT arquivos.id, arquivos.descricao, arquivos.datacriacao, arquivos.arquivo_nfe, arquivo_avaria.FK_CABECALHO,arquivos.nomearquivo
        FROM avaria_arquivos AS arquivo_avaria
        JOIN arquivos AS arquivos ON arquivo_avaria.FK_ARQUIVO = arquivos.id
        WHERE FK_CABECALHO = $idAvaria AND arquivo_excluido = 'N'";
        $resultado = mysqli_query($conexao, $query);

        return $resultado;

    }

    public function statusSolicitadoContagem($conexao, $idAvaria){

        $query = "SELECT faze_contagem, contado, fazer_nfe, nfegerada, status_solicitacao FROM avaria_conferencia_cabecalho WHERE id = $idAvaria";
        $resultado = mysqli_query($conexao,$query);
        $resultado1 = mysqli_fetch_assoc($resultado);

        return $resultado1;
    }

    public function avariasDeUmPedido($conexao, $idPedido){

        $query = "SELECT status_solicitacao FROM avaria_conferencia_cabecalho WHERE idpedido = $idPedido AND status_solicitacao != 'F'";
        $resultado = mysqli_query($conexao,$query);
        $resultado1 = mysqli_fetch_assoc($resultado);

        return $resultado1;
    }

    public function atualizarStatusArquivo($conexao, $idavaria){

        $query = "UPDATE `avaria_conferencia_cabecalho` SET `nfegerada` = 'S' WHERE `id` = $idavaria";
        mysqli_query($conexao, $query);
    }
    public function atualiStatusSolicitacao($conexao, $idAvaria, $status){
        $query = "UPDATE avaria_conferencia_cabecalho SET status_solicitacao =  '$status' WHERE id = $idAvaria ";
        mysqli_query($conexao, $query);
    }

    // verificacao de status
    /*
    1. se foi solicitado contegem ok 
    2. se foi contado ok 
    3. se foi solicitado nota 
    4. se foi feita a nota
    5. se usuario finalizou a solicitacao
        
    */
}


/*
//instancia de avaria
$avaria = new avaria();

//cadastrar cadastrar uma solicitacao de avaria
$idRetornado = $avaria->cadastrarAvariaCabecalho($conexao, 'HAIR FLY', '12', 'LOJA 03', '2025-12-02', 'N', 'S', 'A','1055');

//cadastrar os produtos da solicitacao
$avaria->cadastrarProdutosAvaria($conexao, 59, '789', 'SH GATO E RATO', '10.98', '10');

//adicionar arquivos
$avaria->adicionarArquivo($conexao, 58, 166);

//editar a quantidade de um produto
$avaria->editarProdutoAvaria($conexao, 59, 500 );

//listar as avarias cabecalho
$avariasSolicitadas = $avaria->listarSolicitacaoAvaria($conexao);
foreach($avariasSolicitadas AS $avarias){
    //echo $avarias['id'] . "<br>";
}

echo "<p>";

//listar os produtos de um cabecalho
$produtosDeUmaSolicitacao = $avaria->listarSolicitacaoAvariaProdutos($conexao, 28);
foreach($produtosDeUmaSolicitacao AS $prod){
    //echo $prod['id'] . "<br>";
}

echo "<p>";

//listar uma avaria
$listarDadosDeUmaAvaria = $avaria->listarUmaSolicitacaoAvaria($conexao, 59);
foreach($listarDadosDeUmaAvaria AS $produtos){
    //echo $produtos['lojaOrigem'];

}

$arquivos = $avaria->listarArquivosDeUmaSolicitacao($conexao, 59);
foreach($arquivos as $arq){
    echo $arq['nomearquivo'];
}

//se escolheu fazer contagem
$fazerContagem = $avaria->statusSolicitadoContagem($conexao, 59);
echo $fazerContagem['contado'];

*/