<?php
require_once "connect.php";
require_once "inc/messages.php";
require_once "inc/usuario.php";

/*
 * Status da solicitação:
 * 
 * 1 = AGUARDANDO APROVAÇÃO
 * 2 = APROVADA
 * 3 = CANCELADA
 *    
 */

$id_usuario = getLoggedUser()['id'];

if(isset($_POST['btn-add'])) { 
    $dt_lancamento_val      = $_POST['dt_lancamento'];
    $id_fornecedor          = $_POST['id_fornecedor'];
    $id_forma_pagamento     = $_POST['id_forma_pagamento'];
    $id_condicao_pagamento  = $_POST['id_condicao_pagamento'];
    $id_status_pedido       = 1;
    $vl_total               = 0.00;
    $itens = $_POST['itens'];

    $dt_lancamento = DateTime::createFromFormat('d/m/Y', $dt_lancamento_val)->format('Y-m-d');

    foreach ($itens as $key => $item) {
        # code...
        $vl_total_item = preg_replace("/[^0-9]/", "", $item['vl_total']);      
        $vl_item = floatVal($vl_total_item) / 100;
        $vl_total += $vl_item;
    }
    
    $sql_pedido = "insert into erpc_pedidos_compra( dt_lancamento, id_fornecedor, id_forma_pagamento, id_condicao_pagamento, vl_total, id_status_pedido, id_usuario, fl_tipo, st_ativo)
values('$dt_lancamento', $id_fornecedor, $id_forma_pagamento, $id_condicao_pagamento, '$vl_total', $id_status_pedido, $id_usuario, 0, 1)";
        
    $stmt_pedido= mysqli_prepare($conexao, $sql_pedido) or die(mysqli_error($conexao) . '<br />' . $sql);

    if(mysqli_stmt_execute($stmt_pedido)) {
        $id_pedido_compra = mysqli_stmt_insert_id($stmt_pedido);
    }else{
        die(mysqli_error($conexao));
    }

    /* Faz a inclusão dos itens da SC para o pedido */
    foreach($itens as $key => $item){

        if(isset($item['id_solicitacao_compra_item'])){
            $id_solicitacao_compra_item = $item['id_solicitacao_compra_item'];    
        }else{
            $id_solicitacao_compra_item = "";
        }
        
        $id_produto   = $item['id_produto'];
        $nr_quantidade= $item['nr_quantidade'];
        $vl_unitario  = preg_replace("/[^0-9]/", "", $item['vl_unitario']);
        $vl_unitario  = floatval($vl_unitario) / 100;

        $id_unidade_medida = $item['id_unidade_medida'];

        if($id_solicitacao_compra_item==""){
            $id_solicitacao_compra_item="null";
        }

	   $sql_itens = "insert into erpc_pedidos_compra_itens ( id_pedido,  id_solicitacao_compra_item,  id_produto,   nr_quantidade,  vl_unitario,  id_unidade_medida, st_ativo)values( 
    $id_pedido_compra, $id_solicitacao_compra_item, $id_produto,'$nr_quantidade','$vl_unitario', '$id_unidade_medida', 1)";
        $stmt_itens = mysqli_prepare($conexao, $sql_itens) or die(mysqli_error($conexao));
        mysqli_stmt_execute($stmt_itens) or die(mysqli_error($conexao));
        /*
    	$sql_comprador = "update erpc_cotacao_compra set id_comprador = $id_comprador 
                            where id = $id_cotacao_compra";

    	$stmt_comprador = mysqli_prepare($conexao, $sql_comprador) or die(mysqli_error($conexao));
    	mysqli_stmt_execute($stmt_comprador) or die(mysqli_error($conexao));
        */
        AddMessage("Pedido de Compra gerado com sucesso! $id_pedido_compra");
      
        // Voltando para lista
        $id_crip = base64_encode($id_pedido_compra);
    	}
}//fim adicionar pedido compra
else if(isset($_GET['remove'])) {

    $id = $_GET['id'];
    $id_pedido_compra = base64_decode($id);

    $sql_remover = "update erpc_pedidos_compra set st_ativo = 0 where id = $id_pedido_compra";
    
    $stmt_pedido= mysqli_prepare($conexao, $sql_remover) or die(mysqli_error($conexao) . '<br />' . $sql);

    if(mysqli_stmt_execute($stmt_pedido)) {
        AddMessage("Pedido de Compra removido com sucesso! $id_pedido_compra");
    }else{
        die(mysqli_error($conexao));
        AddError("Houve um erro ao tentar remover o pedido de compra $id_pedido_compra");
    }    
}//fim remover pedido de compra
else if(isset($_POST['btn-cancelar'])) {
    /*
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    exit;
    */

    $pedidos = $_POST['id_pedidos'];
    foreach ($pedidos as $key => $id_pedido_compra) {
        $sql_cancelar = "update erpc_pedidos_compra set id_status_pedido = 2 where id = $id_pedido_compra";
        
        $stmt_pedido= mysqli_prepare($conexao, $sql_cancelar) or die(mysqli_error($conexao) . '<br />' . $sql);

        if(mysqli_stmt_execute($stmt_pedido)) {
            AddMessage("Pedido de Compra cancelado com sucesso! $id_pedido_compra");
        }else{
            die(mysqli_error($conexao));
            AddError("Houve um erro ao tentar cancelar o pedido de compra $id_pedido_compra");
        }   
    }
}
else if(isset($_POST['btn-auto'])) { // Faz inserção automática de várias SCS para um pedido
    if(isset($_POST['id_cotacao_compra'])){
        $cotacoes = $_POST['id_cotacao_compra'];
        $id_fornecedor          = $_POST['id_fornecedor'];
        $id_forma_pagamento     = $_POST['id_forma_pagamento'];
        $id_condicao_pagamento  = $_POST['id_condicao_pagamento'];
        $id_status_pedido       = 1;
        $vl_total1               = preg_replace("/[^0-9]/", "", $_POST['vl_total_pedido']);
        $vl_total_pedido = floatval($vl_total1) / 100;
        $fl_tipo = 1; // 0 Manual / 1 Automático

        $dt_lancamento = date("Y-m-d"); // DateTime::createFromFormat('d/m/Y', $dt_lancamento_val)->format('Y-m-d');

        $sql_pedido = "insert into erpc_pedidos_compra( dt_lancamento, id_fornecedor, id_forma_pagamento, id_condicao_pagamento, vl_total, id_status_pedido, id_usuario, fl_tipo, st_ativo)
    values('$dt_lancamento', $id_fornecedor, $id_forma_pagamento, $id_condicao_pagamento, '$vl_total_pedido', $id_status_pedido, $id_usuario, $fl_tipo, 1)";

        $stmt_pedido= mysqli_prepare($conexao, $sql_pedido) or die(mysqli_error($conexao) . '<br />' . $sql);

        if(mysqli_stmt_execute($stmt_pedido)) {
            $id_pedido_compra = mysqli_stmt_insert_id($stmt_pedido);
        }else{
            die(mysqli_error($conexao));
        }

        $nr_cotacoes = "0";

        /* Faz a inclusão dos itens da SC para o pedido */
        foreach($cotacoes as $key => $value){
            $nr_cotacoes .= ",$value";
        }

        $sql_itens = "insert into erpc_pedidos_compra_itens ( id_pedido,  id_solicitacao_compra_item,  id_produto,   nr_quantidade,  vl_unitario,  id_unidade_medida, st_ativo)
select $id_pedido_compra, ci.id_solicitacao_compra_item, si.id_produto, si.nr_quantidade, ci.vl_negociado, si.id_unidade_medida, 1
from   erpc_cotacao_compra_itens     ci
join   erpc_solicitacao_compra_itens si on ci.id_solicitacao_compra_item = si.id
where  ci.id_fornecedor = $id_fornecedor
   and ci.id_cotacao_compra in ($nr_cotacoes)
   and ci.st_aprovada   = 1 and not exists(
       select 1 from erpc_pedidos_compra_itens pi 
       where ci.id_solicitacao_compra_item = pi.id_solicitacao_compra_item)";
   
        $stmt_itens = mysqli_prepare($conexao, $sql_itens) or die(mysqli_error($conexao));
        mysqli_stmt_execute($stmt_itens) or die(mysqli_error($conexao));

         AddMessage("Pedido de Compra gerado com sucesso! $id_pedido_compra");
    }
    
}
else if(isset($_POST['btn-agrupar'])) { // Faz inserção automática de várias SCS para um pedido
    if(isset($_POST['fornecedor'])){
        foreach ($_POST['fornecedor'] as $key => $registro) {
            $id_fornecedor          = $key;
            $ds_razao               = $registro['ds_razao'];
            $id_forma_pagamento     = $registro['id_forma_pagamento'];
            $id_condicao_pagamento  = $registro['id_condicao_pagamento'];
            $id_status_pedido       = 1;
            $vl_total1               = preg_replace("/[^0-9]/", "", $registro['vl_total_pedido']);
            $vl_total_pedido = floatval($vl_total1) / 100;
            $fl_tipo = 1; // 0 Manual / 1 Automático

            $dt_lancamento = date("Y-m-d"); // DateTime::createFromFormat('d/m/Y', $dt_lancamento_val)->format('Y-m-d');

            $sql_pedido = "insert into erpc_pedidos_compra( dt_lancamento, id_fornecedor, id_forma_pagamento, id_condicao_pagamento, vl_total, id_status_pedido, id_usuario, fl_tipo, st_ativo)
        values('$dt_lancamento', $id_fornecedor, $id_forma_pagamento, $id_condicao_pagamento, '$vl_total_pedido', $id_status_pedido, $id_usuario, $fl_tipo, 1)";

            $stmt_pedido= mysqli_prepare($conexao, $sql_pedido) or die(mysqli_error($conexao) . '<br />' . $sql);

            if(mysqli_stmt_execute($stmt_pedido)) {
                $id_pedido_compra = mysqli_stmt_insert_id($stmt_pedido);
            }else{
                die(mysqli_error($conexao));
            }

            /* Faz a inclusão dos itens da SC para o pedido */
            $cotacoes = $registro['id_cotacao_compra'];
            foreach($cotacoes as $key => $id_cotacao_compra){
                
            $sql_itens = "insert into erpc_pedidos_compra_itens ( id_pedido,  id_solicitacao_compra_item,  id_produto,   nr_quantidade,  vl_unitario,  id_unidade_medida, st_ativo)
            select $id_pedido_compra, ci.id_solicitacao_compra_item, si.id_produto, si.nr_quantidade, ci.vl_negociado, si.id_unidade_medida, 1
            from   erpc_cotacao_compra_itens     ci
            join   erpc_solicitacao_compra_itens si on ci.id_solicitacao_compra_item = si.id
            where  ci.id_fornecedor    = $id_fornecedor
               and ci.id_cotacao_compra= $id_cotacao_compra
               and ci.st_aprovada   = 1 and not exists(
                   select 1 from erpc_pedidos_compra_itens pi 
                   where ci.id_solicitacao_compra_item = pi.id_solicitacao_compra_item)";
               
                    $stmt_itens = mysqli_prepare($conexao, $sql_itens) or die(mysqli_error($conexao));
                    mysqli_stmt_execute($stmt_itens) or die(mysqli_error($conexao));
            }
            AddMessage("Pedido de Compra gerado com sucesso! $id_pedido_compra para $ds_razao");
         }
    }
    
}
header("Location:erpc_pedidos_compra_list.php"); // ?id=" . $id_crip);

?>