<?php
include "../conecta.php";

set_time_limit(0);



function cadastra_retorno(){
global $CACTUX_CONF;
global $valores_tabela; // NÃO ENCONTRADOS
global $valores_tabela2; // CONFIRMAÇÃO DE REMESSA
global $valores_tabela3; // BOLETOS ENCONTRADOS E BAIXADOS
global $valores_tabela4; // BOLETOS JÁ BAIXADOS ANTERIORMENTE

	$FORMA_PAGAMENTO_BNB = 20;


	$arquivo = $_FILES[arquivo];
	if( $arquivo[size] == 0 ) {
		set_status("ERRO: Envie o arquivo!");
		layout_retorno();
		exit;
	}


	// $diretorio = $_SERVER[DOCUMENT_ROOT] . $CACTUX_CONF['path'] ."/boletophp/retorno" ;
	$diretorio = "retorno/" ;
	$nome = $diretorio . '/' . date("Ymdhis").".txt";
	$r = move_uploaded_file($arquivo['tmp_name'], $nome);
	if( !$r ) {
		set_status("ERRO: Impossível enviar o arquivo!");
		layout_retorno();
		exit;
	} 

	$hj = date('Y-m-d H:i:s');

	$campos=array(reto_tx_nome,reto_tx_arquivo,reto_tx_data,reto_nb_user,reto_tx_status);
	$valores=array($hj,basename($nome),$hj,$_SESSION[user_nb_id],'ativo');
	inserir('retornobnb',$campos,$valores,1);



	$file=file($nome);
	$t_file = count($file);


	for($i=1;$i<($t_file-1);$i++){ // CONTADOR FOR COMECA DO 2 POIS AS 2 PRIMEIRAS LINHAS ( O E 1 ) SAO HEADERS DO ARQUIVO
 		
 		$linha=$file[$i];
// 		echo $linha."<br>";
		 		
 		$valor_pag=substr($linha, 253,13);
 		$valor_pag=$valor_pag/100;

 		$nosso_num = substr($linha, 62,7);//LINHA T removido os 2 primeiros digitos verificadores (24) e os 3 ultimos q sao gerados pelo sistema
		
//		echo"$valor_pag - ".(int)$nosso_num;	


		$data_pag=substr($linha, 110,6); // DA LINHA U data da arrecadacao
		$dia=substr($data_pag, 0,2);
		$mes=substr($data_pag, 2,2);
		$ano='20'.substr($data_pag, 4,2);
		$data_pag="$ano-$mes-$dia";
//		echo " - $data_pag<hr>";

		//$sql_bole=selecionar('movi_nb_id|movimento','bole_tx_nossoNumero',"$nosso_num"," ORDER BY bole_tx_status ASC");
		$sql_bole = selecionar('boleto,movimento.entidade','movi_tx_tipo,movi_tx_status,bole_tx_status,movi_nb_ref',"Entrada,ativo,!inativo,.enti_nb_id"," AND bole_tx_nossoNumero LIKE '$nosso_num' ");

		if( num_linhas($sql_bole) == 1 ) {
			$a=carrega_array($sql_bole);

			$id_boleto=$a[bole_nb_id];

			if( mostra_valor($valor_pag,1) == "0,00" ) {
	
				$detalhe = "9 - CONFIRMACAO DE REMESSA";
				atualizar('boleto','bole_tx_confirmaRemessa',$hj,$id_boleto);
				$valores_tabela2[] = array(++$j,$a[bole_nb_id],$nosso_num,$a[enti_tx_nome],data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc]),data($data_pag,1),mostra_valor($valor_pag),'<font color=green>Confirmado');
				
			} else {
	
				$total_encontrado++;
				
				if( $a[bole_tx_status] == 'ativo' ) {	
					$campos=array(bole_tx_valor,bole_tx_data,bole_tx_status);
					$valores=array($valor_pag,$data_pag,'encerrado');
					atualizar('boleto',$campos,$valores,$a[bole_nb_id]);

					$sql_remove_fobo=selecionar('fobo','fobo_tx_status,fobo_nb_forma',"!inativo,$FORMA_PAGAMENTO_BNB"," AND fobo_nb_boleto = '$a[bole_nb_id]'");
					while($a_remove=carrega_array($sql_remove_fobo)){
						remover('fobo',$a_remove[fobo_nb_id]);
					}

			 		$campos=array(fobo_nb_boleto,fobo_nb_forma,fobo_tx_valor,fobo_tx_data,fobo_nb_userBaixa,fobo_tx_dataBaixa,fobo_tx_valorBaixa,fobo_tx_status);
					$valores=array($a[bole_nb_id],$FORMA_PAGAMENTO_BNB,$valor_pag,$data_pag,$_SESSION[user_nb_id],$data_pag,$valor_pag,'ativo');
					inserir('fobo',$campos,$valores,1);
					
					
					$valores_tabela3[] = array(++$j,$a[bole_nb_id],$nosso_num,$a[enti_tx_nome],data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc]),data($data_pag,1),mostra_valor($valor_pag),'<font color=blue>Baixado');
	
				} else  {
	
					$valores_tabela4[] = array(++$j,$a[bole_nb_id],$nosso_num,$a[enti_tx_nome],data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc]),data($data_pag,1),mostra_valor($valor_pag),'<font color=black>Boleto já Baixado');
				
				}
				
			}

		} else {
		
			$total_nao_encontrado++;
			$valores_tabela[] = array(++$j,'',"$nosso_num",'',data($data_pag,1),mostra_valor($valor_pag),'','','<font color=red>NÃO ENCONTRADO');
			
		}


 		
 		


	}

	if( $total_encontrado > 0 )
		set_status("Total de boletos identificados: $total_encontrado Total");
	else
		set_status('Nenhum boleto identificado');

	layout_confirmacao();
	exit;


}




function layout_confirmacao() {
global $valores_tabela; // NÃO ENCONTRADOS
global $valores_tabela2; // CONFIRMAÇÃO DE REMESSA
global $valores_tabela3; // BOLETOS ENCONTRADOS E BAIXADOS
global $valores_tabela4; // BOLETOS JÁ BAIXADOS ANTERIORMENTE

	
	cabecalho('Contas a Pagar/Receber',2);
	
	cactux::abre_form('upload');
	$c[] = cactux::texto('Data:',date("d/m/Y"),5);
	$c[] = cactux::texto('Banco:','BNB');

//	$botao2 = cactux::botao_submit('Enviar',2,'cadastra_retorno');
	$botao1 = cactux::botao('Voltar',2,'voltar');
	$status = cactux::msg_status();

	cactux::abre_fieldset('Informações do Retorno bancário');
	cactux::linha_fieldset($c[0],$c[1]);
	cactux::linha_fieldset($botao1,$botao2,$status);
	cactux::fecha_fieldset();
	cactux::fecha_form();

	cactux::acao_botao('voltar');	



		
	$cabeca[] = array('','BOLETO','NOSSONUM','CLIENTE','VENCIMENTO','VALOR','PAGAMENTO','VALOR','SITUAÇÃO');
	$cabeca[] = 'c,c,c,e,c,c,c,c';
	$cabeca[] = '5%,10%,10%,,10%,10%,10%,10%,10%';
	

	// BOLETOS BAIXADOS
	if( $valores_tabela3 ) {
		
		echo "<br><p class='rel'><b>Boletos Baixados</b></p>";
		grid::gerar($cabeca,$valores_tabela3);
	}	

	// BOLETOS JÁ BAIXADOS BAIXADOS
	if( $valores_tabela4 ) {
		
		echo "<br><p class='rel'><b>Boletos Baixados Anteriormente</b></p>";
		grid::gerar($cabeca,$valores_tabela4);
	}
	
	// CONFIRMAÇÃO DE REMESSA
	if( $valores_tabela2 ) {
		
		echo "<br><p class='rel'><b>Confirmação de Remessa</b></p>";
		grid::gerar($cabeca,$valores_tabela2);
	}
	
	// CONFIRMAÇÃO DE BOLETOS NÃO ENCONTRADOS
	if( $valores_tabela ) {
		
		echo "<br><p class='rel'><b>Boletos não Encontrados</b></p>";
		grid::gerar($cabeca,$valores_tabela);
	}
	
	
	rodape();
	
}



function layout_retorno() {
	global $valores_tabela;
	
	cabecalho('Contas a Pagar/Receber',2);
	
	cactux::abre_form('upload');
	$c[] = cactux::campo_arquivo('Arquivo de Retorno:','arquivo',5);
	$c[] = cactux::combo_bd('Banco:','banco',$a_mod[conf_nb_id],$a_mod[conf_tx_nome],1,'configuraboleto');

	$botao2 = cactux::botao_submit('Enviar',2,'cadastra_retorno');
	$botao1 = cactux::botao('Voltar',2,'voltar');
	$status = cactux::msg_status();

	cactux::abre_fieldset('Informações do Retorno bancário');
	cactux::linha_fieldset($c[0],$c[1]);
	cactux::linha_fieldset($botao1,$botao2,$status);
	cactux::fecha_fieldset();
	cactux::fecha_form();

	cactux::acao_botao('voltar');	
	
	
	rodape();
	
}

function index() {
	global $CACTUX_CONF;

	cabecalho('Retorno Bancário BNB',2);
	if($_POST[busca_codigo])
		$extra .= " AND reto_nb_id = '$_POST[busca_codigo]'";
	if($_POST[busca_inicio])
		$extra .= " AND reto_tx_data >= '".gera_data($_POST[busca_inicio],1)." 00:00:00'";
	if($_POST[busca_fim])
		$extra .= " AND reto_tx_data <= '".gera_data($_POST[busca_fim],1)." 23:59:59'";

	$sql=selecionar('retornobnb,user','reto_tx_status','ativo'," $extra ORDER BY reto_nb_id DESC",1);
	
	$BUSCA = grid::gerar_paginacao($sql);
	
	//CONSULTA
	$cod = cactux::campo('Código:','busca_codigo',$_POST[busca_codigo],1);
	$inicio = cactux::campo('Data Início:','busca_inicio',$_POST[busca_inicio],2,MASCARA_DATA);
	$fim = cactux::campo('Data Fim:','busca_fim',$_POST[busca_fim],2,MASCARA_DATA);
		
	
	//BOTOES
	$buscar = cactux::botao_submit_busca("Buscar",2,'index');
	$inserir = cactux::botao("Inserir",2,'inserir');
	
	$boletos = cactux::botao("Imprimir Boletos",2,'boletos');
	
	$status = cactux::msg_status();
	
	cactux::abre_form();
	cactux::abre_fieldset('Filtro de Busca');
	cactux::linha_fieldset($cod,$inicio,$fim);
	cactux::linha_fieldset($buscar,$inserir);
	cactux::linha_fieldset($status);
	cactux::fecha_fieldset();
	
	cactux::fecha_form();
	
	cactux::acao_botao('inserir','layout_retorno');
	
	
	//INICIO DO GRID
	$cabeca[] = array('CÓD','ARQUIVO','USUÁRIO','DATA','SITUAÇÃO','');
	$cabeca[] = 'c,e';
	$cabeca[] = '5%,,30%,15%,10%,2%';
	$cabeca[] = '70%';
	
	while( $a = carrega_array($BUSCA[0]) ){
		
		//retorno/$a[reto_tx_arquivo]
		$ver2 = "<a href='retorno/".($a[reto_tx_arquivo])."' target=_blank><img src=../cactus/imagens/imprimir.png border=0></a>";

		$valores[] = array( $a[reto_nb_id], $a[reto_tx_arquivo], $a[user_tx_nome], data($a[reto_tx_data],3), ucfirst($a[reto_tx_status]), $ver2 );
		
	}

	grid::gerar($cabeca,$valores);
	grid::Paginar($BUSCA);

	
	
	
	
	rodape();

}

CONTROLE();
