<?php
error_reporting(1);

require_once "inc/connect.php";
require_once "inc/usuario.php";
require_once "inc/movimentacoes_class.php";

/*
foreach ( $_POST as $chave => $valor ) { $$chave = $valor; }

echo "<br>$ds_chave";
echo "<br>$ds_razao";
echo "<br>$ds_fantasia";

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


if ($_SERVER['REQUEST_METHOD'] == 'POST') {

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

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

	if (isset($_POST)) {
		$consulta  = "CALL pr_incluir_xml_entrada_fornecedor(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

        /* 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, 'iisssssssssssss', 
        	$entrada_format['id'], 
        	$id_usuario, 
        	$entrada_format['ds_razao'], 
        	$entrada_format['ds_fantasia'], 
        	$entrada_format['ds_cpf_cnpj'], 
        	$entrada_format['ds_cep'],
			$entrada_format['ds_endereco'], 
			$entrada_format['id_municipio'],
			$entrada_format['tp_tipo'], 
			$entrada_format['ds_cod_cnae'],
			$entrada_format['ds_ddi'], 
			$entrada_format['ds_ddd'],
			$entrada_format['ds_telefone'], 
			$entrada_format['ds_ie'], 
			$entrada_format['ds_im']
			);
            
        // try{
        mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));

        // 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_NUM ou MYSQLI_ASSOC

            $p_id_fornecedor = $row[0] ; // . ";"
        }
        mysqli_stmt_close($stmt);
        $entrada_format['id_fornecedor']=$p_id_fornecedor;

        /* Faz a entrada Produto por Produto */
        $itens = $entrada_format['itens'];
        $p_reg_incluidos = 0;
        $id_entrada = $entrada_format['id'];

        foreach ($itens as $key => $value){
        	$nr_item = $value['item'];
			$id_produto = $value['id_produto'];
			$cd_produto_fornecedor = $value['cd_produto_fornecedor'];
			$ds_produto_fornecedor = $value['ds_produto_fornecedor'];
			$id_tipo_movimentacao  = $value['id_tipo_movimentacao'];
			$id_unidade_medida = $value['id_unidade_medida'];
			$nr_quantidade = $value['nr_quantidade'];
			$vl_unitario = $value['vl_unitario'];
			$vl_desconto = $value['vl_desconto'];
			$vl_prod = $value['vl_prod'];
			$nr_perc_ipi = $value['nr_perc_ipi'];
			$nr_perc_icms = $value['nr_perc_icms'];
			$vl_ipi = $value['vl_ipi'];
			$vl_icms = $value['vl_icms'];
			$ds_cfop = $value['ds_cfop'];

			$sql="insert into erpc_documentos_entrada_itens( id_documento_entrada, item, id_produto, cd_produto_fornecedor, ds_produto_fornecedor, id_tipo_movimentacao, id_unidade_medida, nr_quantidade,
				vl_unitario, vl_desconto, vl_prod, nr_perc_ipi, nr_perc_icms, 
				vl_ipi, vl_icms, ds_cfop)values( $id_entrada, $nr_item, $id_produto, '$cd_produto_fornecedor', '$ds_produto_fornecedor', '$id_tipo_movimentacao', '$id_unidade_medida', '$nr_quantidade',
				'$vl_unitario', '$vl_desconto', '$vl_prod', '$nr_perc_ipi', '$nr_perc_icms', '$vl_ipi', '$vl_icms', '$ds_cfop')";

			if($sql!=""){
			  	$sql = str_replace("''", "null", $sql);
			  	echo "<br>$sql";

				$stmt = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
				$ok   = mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));

				$sql="";
			  if($ok=1){
			    $p_reg_incluidos ++;
			  }
	        }
    	}
    	
    	

	       /* Se gerou com sucesso a pré nota, atualiza a Flag */
        if($p_reg_incluidos>0){
        	$chave = $entrada_format['ds_chave'];
        	
        	$sql = "update erpc_documentos_entrada set id_status_xml_importado=5 where id=$id_entrada";
        	echo "<br>$sql";

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

        	$ok   = mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));
			
			addMessage("Pré Nota de Entrada Nº $id_entrada incluída com sucesso da chave $chave");

			//Chamar método para sensibilizar o estoque com base no $id_entrada
			
			/* Atualiza a entidade erpc_fornecedores_produtos */
			if($ok=1){
				$sql = "insert into erpc_fornecedores_produtos( st_ativo, id_fornecedor, id_produto, ds_cod_produto_fornecedor)
					select distinct 1, e.id_fornecedor, i.id_produto, i.cd_produto_fornecedor
					from   erpc_documentos_entrada e
					join   erpc_documentos_entrada_itens i on i.id_documento_entrada = e.id
					where  e.id_fornecedor = $p_id_fornecedor
					  and  not exists(select 1 from erpc_fornecedores_produtos p
					                  where  e.id_fornecedor = p.id_fornecedor
					                    and  i.id_produto    = p.id_produto
					                    and  i.cd_produto_fornecedor = p.ds_cod_produto_fornecedor
					                    and  p.st_ativo =1)";

			    echo "<br>$sql";

				$stmt = mysqli_prepare($conexao, $sql);// or die(mysqli_error($conexao) . '<br />' . $sql);
	        	$ok   = mysqli_stmt_execute($stmt);// or die(mysqli_error($conexao));
			}
			/* Atualiza o status do Pedido de Compra */
			if(isset($entrada_format['id_status_pedido'])){
				$id_status_pedido = $entrada_format['id_status_pedido'];

				foreach ($entrada_format['nr_pedido_compra'] as $key => $value) {
					$id_pedido_compra = $value;
					$id = $entrada_format['id'];

					$sql = "update erpc_pedidos_compra set id_status_pedido=$id_status_pedido
							where id = $value";

					// echo "<br>$sql";

					$stmt = mysqli_prepare($conexao, $sql);// or die(mysqli_error($conexao) . '<br />' . $sql);
		        	$ok   = mysqli_stmt_execute($stmt);// or die(mysqli_error($conexao));

		        	
		        	$sql_ins = "insert into erpc_pedidos_compra_documento_entrada(id_documento_entrada, id_pedido_compra)values($id, $id_pedido_compra)";

  					$stmt = mysqli_prepare($conexao, $sql_ins);// or die(mysqli_error($conexao) . '<br />' . $sql);
		        	$ok   = mysqli_stmt_execute($stmt);// or die(mysqli_error($conexao));

				}
			}
			
			//HENRIQUE
			$movimenta_estoque = new Movimentacao;
			$movimenta_estoque->entradaEstoque($id_entrada, 5);
			//Colocar função para adicionar os itens a partir do documento de entrada ($id_entrada)
			
        }
	}
	header("location:erpc_nfecode_importacao_painel.php");
}


function lerEntrada(){
	date_default_timezone_get('America/Sao_Paulo');

	$entrada = array();

	  if (isset($_POST)) {
	    $entrada = array_replace_recursive($entrada, $_POST);
	  }



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

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

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

return $entrada;
}

?>