<?php 

class Vendas {

    public function Vender(){
        global $database;

        if(isset($_POST['vender'])){

            $idProducto = $_POST['productName'];
            $qtd = $_POST['productQtd'];
            $conta = $_POST['conta'];
            $user = $_SESSION['nome'];
		    $data = date('Y-m-d');

            $siku = date('Y-m-d');         
        $user = $_SESSION['nome'];
        $hora = date("H:i", mktime(gmdate("H")+2, gmdate("i"), gmdate("s"), gmdate("m"), gmdate("d"), gmdate("Y")));
    


            $filtrarDados = $database->query("SELECT * FROM productos WHERE id='$idProducto'");
            $showDados = $database->fetch_assoc($filtrarDados);

            $nomeProducto = $showDados['productName'];
            $precoCompra = $showDados['productBuyPrice'];
            $precoVenda = $showDados['productSalePrice'];
            $categoria = $showDados['productCategory'];
            $quantidadeStock = $showDados['productQtd'];
            
            $totalVenda = $precoVenda * $qtd;
            $previsaoLucro = $qtd * ($precoVenda - $precoCompra);

            $quantidadeNova = $quantidadeStock - $qtd;

            $searchAcount = $database->query("SELECT * FROM contas WHERE conta='$conta'");
           $fetch = $database->fetch_assoc($searchAcount);
           $saldo_actual = $fetch['saldo'];

            $saldo_novo = $saldo_actual + $totalVenda;

            if($qtd > $quantidadeStock){
             echo "<script>alert('Quantidade inserida superior ao Stock, so temos disponivel $quantidadeStock unidades')</script>";
            echo "<script>window.open('vendas.php','_self')</script>";
            }else{
                $insereVendas = $database->query("INSERT INTO vendas(productName,productQtd,productPrice,productTotal,productLucro,productCategory,productStatus,salesDate,user)
                VALUES('$nomeProducto','$qtd','$precoVenda','$totalVenda','$previsaoLucro','$categoria','vendido','$data','$user')");
                
                 $buscarId = $database->query("SELECT * FROM vendas ORDER BY ID DESC LIMIT 1");
                 $terId = $database->fetch_assoc($buscarId);
                 $venda_id = $terId['id'];

                $caixa = $database->query("INSERT INTO caixa(descricao,tipo,valor,data,venda_id)VALUES('Venda de $nomeProducto','entrada','$totalVenda','$data','$venda_id')");
                $update = $database->query("UPDATE productos SET productQtd='$quantidadeNova' WHERE id='$idProducto'");
                
                $insere = $database->query("INSERT INTO transacoes(descricao,entrada,saida,saldo,caixa,vd,data,hora,user)
                 VALUES('Venda de $qtd de $nomeProducto','$totalVenda','0','$saldo_novo','$conta','N/A','$siku','$hora','$user')");
      
                $update = $database->query("UPDATE contas SET saldo='$saldo_novo' WHERE conta ='$conta'");
                
                $message = "Venda efectuada com sucesso";
                $url = "vendas.php";
                echo "<script>window.open('alertas/alertas_good.php?message=$message&&url=$url','_self')</script>";
            }

        }
    }



    public function Txenekar(){
        global $database;

        if(isset($_POST['txenekar'])){
            $cliente = $_POST['customerName'];
            $producto = $_POST['productName'];
            $qtd = $_POST['productQtd'];
            $user = $_SESSION['nome'];
		    $data = date('Y-m-d');
            $dataPagamento = $_POST['dataPagamento'];

            $filtrarDados = $database->query("SELECT * FROM productos WHERE id='$producto'");
            $showDados = $database->fetch_assoc($filtrarDados);

            $nomeProducto = $showDados['productName'];
            $precoVenda = $showDados['productSalePrice'];
            $quantidadeStock = $showDados['productQtd'];
            
            $totalVenda = $precoVenda * $qtd;
            $quantidadeNova = $quantidadeStock - $qtd;

            if($quantidadeStock < $qtd){
            echo "<script>alert('Quantidade inserida superior ao Stock, so temos disponivel $quantidadeStock unidades')</script>";
            echo "<script>window.open('txeneka.php','_self')</script>";
            }else{
            $sql = $database->query("INSERT INTO vendascredito(productName,productQtd,productPrice,productTotal,customerName,status,data,dataPagamento,user)
            VALUES('$nomeProducto','$qtd','$precoVenda','$totalVenda','$cliente','pendente','$data','$dataPagamento','$user')");
           
           $update = $database->query("UPDATE productos SET productQtd='$quantidadeNova' WHERE id='$producto'");
                $message = "Txeneka efectuada com sucesso";
                $url = "txeneka.php";
                echo "<script>window.open('alertas/alertas_good.php?message=$message&&url=$url','_self')</script>";
            }
        }
    }

    public function ListarVendas(){
        global $database;
        $sql = $database->query("SELECT * FROM vendas WHERE productStatus='vendido'");
        return $sql;
    }

    public function ListarTxeneka(){
        global $database;
        $sql = $database->query("SELECT * FROM vendascredito WHERE status='pendente'");
        return $sql;
    }

    public function SomaDivida(){
        global $database;

        $soma = $database->query("SELECT SUM(productTotal) as soma FROM vendascredito WHERE status='pendente'");
        while($dados = $database->fetch_assoc($soma)){
            $somaTotal = $dados['soma'];
            return number_format($somaTotal,2,",",".");
        }
    }



    public function CancelarVenda(){
        global $database;
        if(isset($_GET['id']) && !empty($_GET['id'])){
            $id = $_GET['id'];

            $sql = $database->query("SELECT * FROM vendas WHERE id='$id'");
            $assoc = $database->fetch_assoc($sql);
            $qtdVendida = $assoc['productQtd'];
            $nomeProducto = $assoc['productName'];

            $buscaPro = $database->query("SELECT * FROM productos WHERE productName='$nomeProducto'");
            $dados = $database->fetch_assoc($buscaPro);
            $quantidadeLocal = $dados['productQtd'];
            $idProducto = $dados['id'];

            $novaQuantidade = $quantidadeLocal + $qtdVendida;

            $update = $database->query("UPDATE productos SET productQtd='$novaQuantidade' WHERE id='$idProducto'");
            $update2 = $database->query("UPDATE vendas SET productStatus='cancelado' WHERE id='$id'");
            $apagarCaixa = $database->query("DELETE FROM caixa WHERE venda_id='$id'");

            echo "<script>alert('Venda cancelada com sucesso, retorno de stock de $qtdVendida nos productos')</script>";
            echo "<script>window.open('vendas.php','_self')</script>";

        }
    }


    public function CashFlow(){
        global $database;

        if(isset($_POST['enviar'])){
            $descricao = $_POST['descricao'];
            $valor = $_POST['valor'];
            $data = date('Y-m-d');

        if($sql = $database->query("INSERT INTO caixa(descricao,tipo,valor,data)
        VALUES('$descricao','saida','$valor','$data')")){
             echo "<script>alert('Despesa lancada com sucesso')</script>";
            echo "<script>window.open('fluxoCaixa.php','_self')</script>";
        }else{
           echo "ERORORRRRRRRR";
        }
        }
    }

  public function SomaVendas($inicio,$fim){
        global $database;
        $sql3 = $database->query("SELECT SUM(productTotal) as soma FROM vendas WHERE salesDate BETWEEN '$inicio' AND '$fim'");
        while($dados = $database->fetch_assoc($sql3)){
            $somaVendas = $dados['soma'];
            return number_format($somaVendas,2,",",".");
        }
    }

     public function SomaLucro($inicio,$fim){
        global $database;
        $sql4 = $database->query("SELECT SUM(productLucro) as soma FROM vendas WHERE salesDate BETWEEN '$inicio' AND '$fim'");
        while($dados = $database->fetch_assoc($sql4)){
            $somaLucro = $dados['soma'];
            return number_format($somaLucro,2,",",".");
        }
    }



    public function SomaEntrada($inicio,$fim){
        global $database;
        $sql = $database->query("SELECT SUM(valor) as soma FROM caixa WHERE data BETWEEN '$inicio' AND '$fim' AND tipo='entrada'");
        while($dados = $database->fetch_assoc($sql)){
            $somaEntrada = $dados['soma'];
            return number_format($somaEntrada,2,",",".");
        }
    }

      public function SomaSaida($inicio,$fim){
        global $database;
        $sql = $database->query("SELECT SUM(valor) as soma FROM caixa WHERE data BETWEEN '$inicio' AND '$fim' AND tipo='saida'");
        while($dados = $database->fetch_assoc($sql)){
            $somaSaida = $dados['soma'];
             return number_format($somaSaida,2,",",".");
        }
    }

    public function SaldoCaixa($inicio,$fim){
        global $database;

     $sql = $database->query("SELECT SUM(valor) as soma FROM caixa WHERE data BETWEEN '$inicio' AND '$fim' AND tipo='entrada'");
     $dados = $database->fetch_assoc($sql);
     $entradas = $dados['soma'];

      $sql2 = $database->query("SELECT SUM(valor) as soma FROM caixa WHERE data BETWEEN '$inicio' AND '$fim' AND tipo='saida'");
     $dados2 = $database->fetch_assoc($sql2);
     $saidas = $dados2['soma'];

     $saldo = $entradas - $saidas;
        return number_format($saldo,2,",",".");
    }


    public function PagarTxeneka(){
        global $database;
        if(isset($_GET['pagar']) && !empty($_GET['pagar'])){

            $idPagar = $_GET['pagar'];
            $sql = $database->query("SELECT * FROM vendascredito WHERE id='$idPagar'");
            $mostraDados = $database->fetch_assoc($sql);

            $productName = $mostraDados['productName'];
            $productQtd = $mostraDados['productQtd'];
            $productPrice = $mostraDados['productPrice'];
            $productTotal = $mostraDados['productTotal'];


             $user = $_SESSION['nome'];
		    $data = date('Y-m-d');

            $filtrarDados = $database->query("SELECT * FROM productos WHERE productName='$productName'");
            $showDados = $database->fetch_assoc($filtrarDados);

            $precoCompra = $showDados['productBuyPrice'];
            $precoVenda = $showDados['productSalePrice'];
            $categoria = $showDados['productCategory'];
            
            $previsaoLucro = $productQtd  * ($precoVenda - $precoCompra);

            $sql1 = $database->query("INSERT INTO vendas(productName,productQtd,productPrice,productTotal,productLucro,productCategory,productStatus,salesDate,user)
            VALUES('$productName','$productQtd','$productPrice','$productTotal','$previsaoLucro','$categoria','vendido','$data','$user')");

            $sql2 = $database->query("UPDATE vendascredito SET status='pago' WHERE id='$idPagar'");

            $sql3 = $database->query("INSERT INTO caixa(descricao,valor,tipo,data)VALUES('Pagamento de divida de $productName','$productTotal','entrada','$data')");
            
            if($sql1){
               echo "<script>alert('Divida paga com sucesso')</script>";
            echo "<script>window.open('txeneka.php','_self')</script>"; 
            }else{
              echo "<script>alert('FALHA NO ENVIO DE PAGAMENTO')</script>";
            echo "<script>window.open('txeneka.php','_self')</script>";
            }
            
        }
    }
  

    public function MostraBalancete($inicio,$fim){
        global $database;
        $sql = $database->query("SELECT * FROM caixa WHERE data BETWEEN '$inicio' AND '$fim'");
        return $sql;
    }
}

$novaVenda = new Vendas();

?>