<?php
// error_reporting(E_ERROR | E_PARSE);

require_once 'inc/usuario.php';
require_once 'inc/documento_saida_class.php';
require_once 'inc/pedidos_venda_rapida.php';
require_once 'inc/liberar_pedidos_venda_rapida.php';
require_once 'inc/faturar_pedidos_venda_rapida.php';


date_default_timezone_set('America/Sao_Paulo');

if(!isset($_SESSION)) {
  session_start();
}

// capturando o usuário e unidade logado
$usuario_pedido = getLoggedUser();
$pedidos_venda['id_usuario']=$usuario_pedido['id'];
$pedidos_venda['id_unidade']=$usuario_pedido['unidade'];

  $nr_ped_orig = 0;
  $nr_ped_libe = 0;

  
    $MeuPedido     = new MeuPedido();
    $pedidos_venda = ler_pedidos_venda();

    // se informado o CPF do cliente, faz a inclusão no BD
    if($pedidos_venda['ds_cnpj_cpf']!==""){
            $consulta  = "CALL pr_incluir_consumidor_nfp( ?)";

            /* Somente números para uma consulta mais limpa */
            $p_cnpj_cpf=  preg_replace("/[^0-9]/", "", $pedidos_venda['ds_cnpj_cpf']);

            $stmt = mysqli_prepare($conexao, $consulta);
            mysqli_stmt_bind_param($stmt, 's', $p_cnpj_cpf);
            
            mysqli_stmt_execute($stmt);
            
            // 4 - Não é necessário retorno de dados
            $result = mysqli_stmt_get_result($stmt);

            if($result -> num_rows > 0){
              $row = mysqli_fetch_array($result, MYSQLI_NUM); // MYSQLI_ASSOC com nome dos campos, case sensitive
              $p_id_cliente = $row[0] ; // . ";"
            }
            mysqli_stmt_close($stmt);
            $pedidos_venda['id_cliente']=$p_id_cliente;
    }

    // se não informou o cliente, seta como 1 NÃO IDENTIFICADO
    if($pedidos_venda['id_cliente']==''){
      $pedidos_venda['id_cliente']=1;
    }

    $vl_venda = preg_replace("/[^0-9,]/", "", $_POST['vl_total_venda']);
    $vl_desc  = preg_replace("/[^0-9,]/", "", $_POST['vl_total_desconto2']);

    $vl_venda = str_replace(",", ".", $vl_venda);
    $vl_desc  = str_replace(",", ".", $vl_desc);


    $pedidos_venda['vl_total_produtos']= $vl_venda;     
    $pedidos_venda['vl_total_pedido']  = $vl_venda;     
    $pedidos_venda['vl_desconto']      = $vl_desc;     

    $pedidos_venda['vl_frete'] = "0.00"; 
    $pedidos_venda['vl_despesas'] = "0.00";
    $pedidos_venda['vl_impostos'] = "0.00";

    // varre os itens, informando o tipo de saída e unidade de medida
    // for ($i=0; $i < count($pedidos_venda['itens']) ; $i++) {
    foreach ($pedidos_venda['itens'] as $i => $registro) {

      $pedidos_venda['itens'][$i]['id_tipo_movimentacao']= '510';
      $pedidos_venda['itens'][$i]['vl_desconto_produto']= '0.00';

      $id_produto    = $registro['id_produto'];
      $nr_quantidade = $registro['nr_quantidade'];
      $vl_total      = $registro['vl_total'];

      /* Busca padrões do item, IPI e ICMS */
      $nr_perc_ipi = "0.00";
      $nr_perc_icms= "0.00";
      $p_padroes = consultaPadraoProduto($id_produto);

      if(count($p_padroes)>0){
        $nr_perc_ipi = $p_padroes[0]['nr_perc_aliq_ipi'];
        $nr_perc_icms= $p_padroes[0]['nr_perc_aliq_icms'];
      }

      $pedidos_venda['itens'][$i]['nr_perc_ipi'] = $nr_perc_ipi;
      $pedidos_venda['itens'][$i]['nr_perc_icms']= $nr_perc_icms;

      $pedidos_venda['itens'][$i]['vl_unitario'] = round($vl_total / $nr_quantidade  , 2);
      $pedidos_venda['itens'][$i]['vl_ipi']  = round($vl_total * ($nr_perc_ipi / 100), 2);
      $pedidos_venda['itens'][$i]['vl_icms'] = round($vl_total * ($nr_perc_icms/ 100), 2);
    }

    $pedidos_venda['id_tipo_pedido_nf'] = 3;

    /*
    echo "<pre>";
    print_r($pedidos_venda);
    echo "</pre>";
    exit;
    */



      /* Edival 09/04/2018 10:17 - Aplicar rateio de desconto aos itens do produto, caso haja desconto total */
    $vl_desconto_total = floatval($pedidos_venda['vl_desconto']);
    // echo "<BR>APLICANDO VALOR DESCONTO $vl_desconto_total";


    if($vl_desconto_total > 0){
      $vl_total_produtos = floatval($pedidos_venda['vl_total_produtos']) + $vl_desconto_total;

      foreach ($pedidos_venda['itens'] as $key => $item) {
        $nr_quantidade = floatval($item['nr_quantidade']);
        $vl_unitario   = floatval($item['vl_unitario']);
        $vl_desconto_produto = floatval($item['vl_desconto_produto']);

        $nr_perc_ipi   = floatval($item['nr_perc_ipi']);
        $nr_perc_icms  = floatval($item['nr_perc_icms']);

        /* Cálculo se baseia pelo valor total do item / valor total do pedido */
        $nr_perc_calculo    = round(round($nr_quantidade * $vl_unitario - $vl_desconto_produto, 2) / $vl_total_produtos, 2);
        $vl_desconto_calculo= $nr_perc_calculo * $vl_desconto_total;

        // echo "<br>ITEM [$key] ==> %  CALCULADO: $nr_perc_calculo | R$ CALCULADO: $vl_desconto_calculo";

        /* Atribuindo novos valores de cálculo */
        $vl_desconto_item= $vl_desconto_produto + $vl_desconto_calculo;
        $vl_total_item   = round($nr_quantidade * $vl_unitario - $vl_desconto_item, 2);

        $pedidos_venda['itens'][$key]['vl_desconto_produto'] = $vl_desconto_item;
        $pedidos_venda['itens'][$key]['vl_total']= $vl_total_item;
        $pedidos_venda['itens'][$key]['vl_ipi']  = round($nr_perc_ipi  * $vl_total_item / 100, 2);
        $pedidos_venda['itens'][$key]['vl_icms'] = round($nr_perc_icms * $vl_total_item / 100, 2);
      }
    }

    /* Edival 04/05/2018 15:07 Limpar a lista de comandas selecionadas */
    if(isset($_POST['lt_comanda'])){
      $lt_comanda = substr($_POST['lt_comanda'], 0, -1); 

      $sql = "update erpc_comanda set st_comanda = 0 where nr_comanda in($lt_comanda)";
      $stmt= mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
      $ok  = mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));
    }

    
    $ok = $MeuPedido->pedidos_venda_insert($pedidos_venda);

    // echo "<BR>resulado do insert:::: " . $ok;

    // Liberação do Pedido
    if ($ok === false) {
      $redirect = 'erpc_venda_rapida_add.php';
    }else{
      // Liberação imediata do pedido de venda
      $LiberarVendaRapida = new LiberarVendaRapida();
      $nr_pedido = $MeuPedido->pedidos_venda_getID();
      $ar_libera = array($nr_pedido);

      /* passa um array com o número do pedido incluído */
      $LiberarVendaRapida->setPedidos($ar_libera);
      $LiberarVendaRapida->setAllPedidos();

      /* retorna o array com a ID do Pedido Liberado */
      $ar_pedido= $LiberarVendaRapida->getPedidos();

      // $redirect = 'erpc_venda_rapida_question.php?id_pedido=' . base64_encode($ar_pedido);
      // $redirect = 'erpc_venda_rapida_question.php?pedidos=' . http_build_query($ar_pedido);
      $nr_ped_orig = $ar_pedido[0]['PedOrig']; // base64_encode($ar_pedido[0]['PedOrig']);
      $nr_ped_libe = $ar_pedido[0]['PedLibe']; // base64_encode($ar_pedido[0]['PedLibe']);
      $redirect = "erpc_venda_rapida_question.php?PedOrig=$nr_ped_orig&PedLibe=$nr_ped_libe";
    }

  /* else if (isset($_POST['btn-fatura'])){
    $nr_pedido = $_POST['id_pedido'];
    $ar_pedido = array($nr_pedido);
    echo "<br>$nr_pedido";

    $FaturarVendaRapida = new FaturarVendaRapida();
    $FaturarVendaRapida->setPedidos($ar_pedido);
    $FaturarVendaRapida->setAllFaturar(59);

    $id_doc_sai = $FaturarVendaRapida->getNumeroDocumentoSaida();
    $id_doc_sai_crip = base64_encode($id_doc_sai);

    $redirect = "erpc_nfccode_xml_venda.php?id=$id_doc_sai_crip";
  } else if (isset($_POST['btn-edit'])) {
    $ok = pedidos_venda_update($pedidos_venda);
    if ($ok === false) {
      $redirect = 'erpc_venda_rapida_edit.php?id=' . urlencode(base64_encode($pedidos_venda['id']));
    }
  } else if (isset($_POST['btn-remove'])) {
    $ok = pedidos_venda_delete($pedidos_venda);
    if ($ok === false) {
      $redirect = 'erpc_venda_rapida_remove.php?id=' . urlencode(base64_encode($pedidos_venda['id']));
    }
  }*/

  echo "1;$nr_ped_orig;$nr_ped_libe;erpc_venda_rapida_question.php?PedOrig=$nr_ped_orig&PedLibe=$nr_ped_libe";
  // header("Location:$redirect");
  exit;



  function getSQL($consulta){
  global $conexao;

    $ar_retorno = array();
    $resultado = mysqli_query($conexao, $consulta) or die ($erro = mysqli_error($conexao));
      if (mysqli_num_rows($resultado)>0) {
          while ($registro = mysqli_fetch_assoc($resultado)){
            array_push($ar_retorno, $registro);
          }
    }
    return $ar_retorno;
  }


/* Captura no BD os padrões do Produto */
function consultaPadraoProduto($p_id_produto){
    $sql   = "select nr_perc_aliq_ipi, nr_perc_aliq_icms from erpc_produtos where id=$p_id_produto";
    $result= getSQL($sql);
    return $result;
}

function ler_pedidos_venda() {
  date_default_timezone_get('America/Sao_Paulo');
  global $MeuPedido;

  $pedidos_venda = $MeuPedido->pedidos_venda_create();

  if (isset($_POST['pedidos_venda'])) {
    $pedidos_venda = array_replace_recursive($pedidos_venda, $_POST['pedidos_venda']);
  }



  foreach($pedidos_venda as $k => $v) {
    $pedidos_venda[$k] = sgcws_sanitize_field($k, $v);

    //  echo "<br> $key ==> $v";
  }

  $itens = $pedidos_venda['itens'];
  foreach($itens as $i => $item) {
    foreach($item as $k => $v) {
        $item[$k] = sgcws_sanitize_field($k, $v);
    }
    $itens[$i] = $item;
  }
  $pedidos_venda['itens'] = $itens;

return $pedidos_venda;
}
