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


function sanitizeString($string) {

    // matriz de entrada
    $what = array( 'ä','ã','à','á','â','ê','ë','è','é','ï','ì','í','ö','õ','ò','ó','ô','ü','ù','ú','û','À','Á','É','Í','Ó','Ú','ñ','Ñ','ç','Ç','-','(',')',',',';',':','|','!','"','#','$','%','&','/','=','?','~','^','>','<','ª','º','°' );

    // matriz de saída
    $by   = array( 'a','a','a','a','a','e','e','e','e','i','i','i','o','o','o','o','o','u','u','u','u','A','A','E','I','O','U','n','n','c','C','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',' ' );

    // devolver a string
    return str_replace($what, $by, $string);
}




function digitoVerificador_nossonumero($numero) {
	$resto2 = modulo_11($numero, 7, 1);
     $digito = 11 - $resto2;
     if ($digito == 10) {
        $dv = 0;
     } elseif($digito == 11) {
     	$dv = 0;
	} else {
        $dv = $digito;
     	}
	 return $dv;
}





function modulo_11($num, $base=9, $r=0)  {
    /**
     *   Autor:
     *           Pablo Costa <pablo@users.sourceforge.net>
     *
     *   Função:
     *    Calculo do Modulo 11 para geracao do digito verificador 
     *    de boletos bancarios conforme documentos obtidos 
     *    da Febraban - www.febraban.org.br 
     *
     *   Entrada:
     *     $num: string numérica para a qual se deseja calcularo digito verificador;
     *     $base: valor maximo de multiplicacao [2-$base]
     *     $r: quando especificado um devolve somente o resto
     *
     *   Saída:
     *     Retorna o Digito verificador.
     *
     *   Observações:
     *     - Script desenvolvido sem nenhum reaproveitamento de código pré existente.
     *     - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script.
     */                                        

    $soma = 0;
    $fator = 2;

    /* Separacao dos numeros */
    for ($i = strlen($num); $i > 0; $i--) {
        // pega cada numero isoladamente
        $numeros[$i] = substr($num,$i-1,1);
        // Efetua multiplicacao do numero pelo falor
        $parcial[$i] = $numeros[$i] * $fator;
        // Soma dos digitos
        $soma += $parcial[$i];
        if ($fator == $base) {
            // restaura fator de multiplicacao para 2 
            $fator = 1;
        }
        $fator++;
    }

    /* Calculo do modulo 11 */
    if ($r == 0) {
        $soma *= 10;
        $digito = $soma % 11;
        if ($digito == 10) {
            $digito = 0;
        }
        return $digito;
    } elseif ($r == 1){
        $resto = $soma % 11;
        return $resto;
    }
}	




	
function gerar_arquivo(){
	
		$id_remessa=implode(",",$_POST[id_remessa]);
		$id_baixa=implode(",",$_POST[id_baixa]);
		$id_vencimento=implode(",",$_POST[id_vencimento]);

		$nome_arquivo = "remessa/remessaBNB_".date('YmdHis').".txt";

		$h=fopen($nome_arquivo,'w');
		chmod($h, 0777);

		$a_conf=carregar('configuraboleto',1);
		// $id_remessa=ultimo_reg('remessa');

		//-----inicio linha 0------
		$cabecalho="01REMESSA01COBRANCA       ";
		$agencia='0035';
		$zeros2='00';
		$conta=str_pad('0503872',7,"0",STR_PAD_LEFT);
		$dg_conta='5';
		$branco6='      ';
		$nome=str_pad(substr("AGROPET AGROCOMERCIAL E SERVICOS EIRELI ME",0,30),30);
		$codBanco="004";
		$nomeBanco=str_pad("B. DO NORDESTE",15);
		$data=date('dmy');
		$codUsuario='000';
		$branco291=str_pad('',291);
		$nSequencial='000001'; 


		fwrite($h,$cabecalho.$agencia.$zeros2.$conta.$dg_conta.$branco6.$nome.$codBanco.$nomeBanco.$data.$codUsuario.$branco291.$nSequencial."\r\n");
		//------fim linha 0-------

	if(count($_POST[id_remessa])>0){
		$sql = selecionar('boleto,movimento.entidade','bole_tx_status',"ativo"," AND movi_nb_ref = enti_nb_id AND bole_nb_id IN ($id_remessa)",0);
		// $sql=mysql_query(base64_decode($_POST[sql]));
		while($a=carrega_array($sql)){
		//VERIFICAR O VENCIMENTO VARIAVEL QUE TEM DE SER PREENCHIDA!

			$vencimento=$a[bole_tx_vencimento];
			$vencimento=substr($vencimento,8,2).substr($vencimento,5,2).substr($vencimento,2,2); 
			// echo $vencimento;
			$valor=$a[bole_tx_valordoc]+$a[bole_tx_valorNegociado];
			$nosso_num=$a[bole_tx_nossoNumero];

			if($a_clie[clie_tx_cep]=='')
				$CEP = '00000000';
			else
				$CEP=$a_clie[clie_tx_cep];
			$carteira=$a_conf[conf_tx_carteira];

			//-----inicio linha 1------
			$tipolinha="1";
			$branco16=str_pad("",16);
			$agencia='0035';
			$zeros2='00';
			$conta='00503872'; // CONTA(7) + DV (1)
			$multa='00';
			$branco4=str_pad("",4);
			$numControle=str_pad('',25,"0",STR_PAD_LEFT); //No de Controle do Título do Cliente. (Controle da empresa)
			$nnum=str_pad($nosso_num,7,"0",STR_PAD_LEFT);
			$dv_nnum=digitoVerificador_nossonumero($nnum);
			$numContrato=str_pad('',10,"0",STR_PAD_LEFT); //Número do Contrato para cobrança caucionada/vinculada. Preencher com zeros para cobrança simples.
			$dataDesconto="000000";
			$valorDesconto=str_pad("",13,"0");
			$branco8=str_pad("",8);
			$carteira='4'; //4 -> carteira 21 = Cobranca simples-Boleto emitido pelo cliente
			

			$codServico='01'; //01 -> Entrada normal; 02-Pedido de baixa; 06-Alteração de Vencimento
			$seuNumero=str_pad($a[bole_nb_id],10,"0",STR_PAD_LEFT); //sera usado o id do boleto preenchido com zero
			$vencimento=substr($a[bole_tx_vencimento],8,2).substr($a[bole_tx_vencimento],5,2).substr($a[bole_tx_vencimento],2,2); 
			$valorTitulo=str_pad(str_replace('.','',$valor),13,"0",STR_PAD_LEFT);
			$numeroBanco='000'; //Preencher com Zeros (Banco Cobrador será definido conforme cobradora)
			$agenciaCobradora='0000'; //Agência Cobradora será definida pelo BNB Com base no CEP do Sacado !------------ESTE ITEM ESTA PENDENTE ---------------!
			$branco1=str_pad("",1);
			$especie='01'; // 01 -> Duplicata Mercantil
			$aceite='S';
			$dataEmissao=date('dmy');
			$codInstrucao='0000';
			$jurosDia=str_pad("",13,"0");
			$dataDesconto='000000';
			$valorDesconto=str_pad("",13,"0");
			

			$valorIOC=str_pad("",13,"0");
			$valorAbatimento=str_pad("",13,"0");
			
			if(strlen($a[enti_tx_cnpj])=='14'){
				$codInscricao='01'; // ATENCAO!!! “01” para CPF, ou “02” para CNPJ.
			}else{
				$codInscricao='02'; // ATENCAO!!! “01” para CPF, ou “02” para CNPJ.
			}
				$a[enti_tx_cnpj]=preg_replace("/[^0-9]/","",$a[enti_tx_cnpj]);
				$incricao=str_pad($a[enti_tx_cnpj],14,"0",STR_PAD_LEFT);

			$nomeSacado=strtoupper(substr(str_pad(sanitizeString($a[enti_tx_nome]),40),0,40));
			if($a[enti_tx_endereco]=='')
				$a[enti_tx_endereco] = 'RUA NAO IDENTIFICADA';
			$enderecoSacado=strtoupper(substr(str_pad(sanitizeString($a[enti_tx_endereco]),40),0,40));
			$complementoSacado=str_pad("",12);
			if($a[enti_tx_cep]=='')
				$a[enti_tx_cep] = '59600-000';
			$cepSacado=str_pad(str_replace('-','',$a[enti_tx_cep]),8,"0",STR_PAD_LEFT);
			$expCidade=explode("/",$a[enti_tx_cidade]);
			$cidade=$expCidade[0];
			$uf=$expCidade[1];
			if($cidade=='')
				$cidade = "Mossoro";
			if($uf=='')
				$uf='RN';
			$cidadeSacado=strtoupper(substr(str_pad(sanitizeString($cidade),15),0,15));
			$ufSacado=strtoupper(substr(str_pad(sanitizeString($uf),2),0,2));
			$msgSacadi=strtoupper(substr(str_pad(sanitizeString($a[bole_tx_obs]),40),0,40));
			$protesto='99';
			$moeda='0';
			$nRegistro=str_pad(++$nSequencial,6,"0",STR_PAD_LEFT);

			// echo"$tipolinha.$branco16.$agencia.$zeros2.$conta.$multa.$branco4.$numControle.$nnum.$dv_nnum.$numContrato.$dataDesconto.$valorDesconto.$branco8.$carteira.
			// 	$codServico.$seuNumero.$vencimento.$valorTitulo.$numeroBanco.$agenciaCobradora.$branco1.$especie.$aceite.$dataEmissao.$codInstrucao.$jurosDia.$dataDesconto.$valorDesconto.
			// 	$valorIOC.$valorAbatimento.$codInscricao.$incricao.$nomeSacado.$enderecoSacado.$complementoSacado.$cepSacado.$cidadeSacado.$ufSacado.$msgSacadi.$protesto.$moeda.$nRegistro<hr>";

			fwrite($h,$tipolinha.$branco16.$agencia.$zeros2.$conta.$multa.$branco4.$numControle.$nnum.$dv_nnum.$numContrato.$dataDesconto.$valorDesconto.$branco8.$carteira.
				$codServico.$seuNumero.$vencimento.$valorTitulo.$numeroBanco.$agenciaCobradora.$branco1.$especie.$aceite.$dataEmissao.$codInstrucao.$jurosDia.$dataDesconto.$valorDesconto.
				$valorIOC.$valorAbatimento.$codInscricao.$incricao.$nomeSacado.$enderecoSacado.$complementoSacado.$cepSacado.$cidadeSacado.$ufSacado.$msgSacadi.$protesto.$moeda.$nRegistro."\r\n");
			//------fim linha 1-------


			$campos=array(reme_nb_boleto,reme_tx_data,reme_tx_status);
			$valores=array($a[bole_nb_id],date("Y-m-d"),'ativo');
			// inserir('remessa',$campos,$valores,1);

			

		}
	}

	if(count($_POST[id_baixa])>0){
		$sql = selecionar('boleto,movimento.entidade','',""," AND (bole_tx_status='encerrado' OR bole_tx_status='inativo') AND movi_nb_ref = enti_nb_id AND bole_nb_id IN ($id_baixa)",0);
		// $sql=mysql_query(base64_decode($_POST[sql]));
		while($a=carrega_array($sql)){
		//VERIFICAR O VENCIMENTO VARIAVEL QUE TEM DE SER PREENCHIDA!

			$vencimento=$a[bole_tx_vencimento];
			$vencimento=substr($vencimento,8,2).substr($vencimento,5,2).substr($vencimento,2,2); 
			// echo $vencimento;
			$valor=$a[bole_tx_valordoc]+$a[bole_tx_valorNegociado];
			$nosso_num=$a[bole_tx_nossoNumero];

			if($a_clie[clie_tx_cep]=='')
				$CEP = '00000000';
			else
				$CEP=$a_clie[clie_tx_cep];
			$carteira=$a_conf[conf_tx_carteira];

			//-----inicio linha 1------
			$tipolinha="1";
			$branco16=str_pad("",16);
			$agencia='0035';
			$zeros2='00';
			$conta='00503872'; // CONTA(7) + DV (1)
			$multa='00';
			$branco4=str_pad("",4);
			$numControle=str_pad('',25,"0",STR_PAD_LEFT); //No de Controle do Título do Cliente. (Controle da empresa)
			$nnum=str_pad($nosso_num,7,"0",STR_PAD_LEFT);
			$dv_nnum=digitoVerificador_nossonumero($nnum);
			$numContrato=str_pad('',10,"0",STR_PAD_LEFT); //Número do Contrato para cobrança caucionada/vinculada. Preencher com zeros para cobrança simples.
			$dataDesconto="000000";
			$valorDesconto=str_pad("",13,"0");
			$branco8=str_pad("",8);
			$carteira='4'; //4 -> carteira 21 = Cobranca simples-Boleto emitido pelo cliente
			

			$codServico='02'; //01 -> Entrada normal; 02-Pedido de baixa; 06-Alteração de Vencimento
			$seuNumero=str_pad($a[bole_nb_id],10,"0",STR_PAD_LEFT); //sera usado o id do boleto preenchido com zero
			$vencimento=substr($a[bole_tx_vencimento],8,2).substr($a[bole_tx_vencimento],5,2).substr($a[bole_tx_vencimento],2,2); 
			$valorTitulo=str_pad(str_replace('.','',$valor),13,"0",STR_PAD_LEFT);
			$numeroBanco='000'; //Preencher com Zeros (Banco Cobrador será definido conforme cobradora)
			$agenciaCobradora='0000'; //Agência Cobradora será definida pelo BNB Com base no CEP do Sacado !------------ESTE ITEM ESTA PENDENTE ---------------!
			$branco1=str_pad("",1);
			$especie='01'; // 01 -> Duplicata Mercantil
			$aceite='S';
			$dataEmissao=date('dmy');
			$codInstrucao='0000';
			$jurosDia=str_pad("",13,"0");
			$dataDesconto='000000';
			$valorDesconto=str_pad("",13,"0");
			

			$valorIOC=str_pad("",13,"0");
			$valorAbatimento=str_pad("",13,"0");
			
			if(strlen($a[enti_tx_cnpj])=='14'){
				$codInscricao='01'; // ATENCAO!!! “01” para CPF, ou “02” para CNPJ.
			}else{
				$codInscricao='02'; // ATENCAO!!! “01” para CPF, ou “02” para CNPJ.
			}
				$a[enti_tx_cnpj]=preg_replace("/[^0-9]/","",$a[enti_tx_cnpj]);
				$incricao=str_pad($a[enti_tx_cnpj],14,"0",STR_PAD_LEFT);

			$nomeSacado=strtoupper(substr(str_pad(sanitizeString($a[enti_tx_nome]),40),0,40));
			if($a[enti_tx_endereco]=='')
				$a[enti_tx_endereco] = 'RUA NAO IDENTIFICADA';
			$enderecoSacado=strtoupper(substr(str_pad(sanitizeString($a[enti_tx_endereco]),40),0,40));
			$complementoSacado=str_pad("",12);
			if($a[enti_tx_cep]=='')
				$a[enti_tx_cep] = '59600-000';
			$cepSacado=str_pad(str_replace('-','',$a[enti_tx_cep]),8,"0",STR_PAD_LEFT);
			$expCidade=explode("/",$a[enti_tx_cidade]);
			$cidade=$expCidade[0];
			$uf=$expCidade[1];
			if($cidade=='')
				$cidade = "Mossoro";
			if($uf=='')
				$uf='RN';
			$cidadeSacado=strtoupper(substr(str_pad(sanitizeString($cidade),15),0,15));
			$ufSacado=strtoupper(substr(str_pad(sanitizeString($uf),2),0,2));
			$msgSacadi=strtoupper(substr(str_pad(sanitizeString($a[bole_tx_obs]),40),0,40));
			$protesto='99';
			$moeda='0';
			$nRegistro=str_pad(++$nSequencial,6,"0",STR_PAD_LEFT);

			// echo"$tipolinha.$branco16.$agencia.$zeros2.$conta.$multa.$branco4.$numControle.$nnum.$dv_nnum.$numContrato.$dataDesconto.$valorDesconto.$branco8.$carteira.
			// 	$codServico.$seuNumero.$vencimento.$valorTitulo.$numeroBanco.$agenciaCobradora.$branco1.$especie.$aceite.$dataEmissao.$codInstrucao.$jurosDia.$dataDesconto.$valorDesconto.
			// 	$valorIOC.$valorAbatimento.$codInscricao.$incricao.$nomeSacado.$enderecoSacado.$complementoSacado.$cepSacado.$cidadeSacado.$ufSacado.$msgSacadi.$protesto.$moeda.$nRegistro<hr>";

			fwrite($h,$tipolinha.$branco16.$agencia.$zeros2.$conta.$multa.$branco4.$numControle.$nnum.$dv_nnum.$numContrato.$dataDesconto.$valorDesconto.$branco8.$carteira.
				$codServico.$seuNumero.$vencimento.$valorTitulo.$numeroBanco.$agenciaCobradora.$branco1.$especie.$aceite.$dataEmissao.$codInstrucao.$jurosDia.$dataDesconto.$valorDesconto.
				$valorIOC.$valorAbatimento.$codInscricao.$incricao.$nomeSacado.$enderecoSacado.$complementoSacado.$cepSacado.$cidadeSacado.$ufSacado.$msgSacadi.$protesto.$moeda.$nRegistro."\r\n");
			//------fim linha 1-------

			$campos=array(reme_nb_boleto,reme_tx_data,reme_tx_status);
			$valores=array($a[bole_nb_id],date("Y-m-d"),'ativo');
			// inserir('remessa',$campos,$valores,1);

			

		}
	}



	if(count($_POST[id_vencimento])>0){
		$sql = selecionar('boleto,movimento.entidade','bole_tx_status',"ativo","  AND movi_nb_ref = enti_nb_id AND bole_nb_id IN ($id_vencimento)",0);
		// $sql=mysql_query(base64_decode($_POST[sql]));
		while($a=carrega_array($sql)){
		//VERIFICAR O VENCIMENTO VARIAVEL QUE TEM DE SER PREENCHIDA!

			$vencimento=$a[bole_tx_vencimento];
			$vencimento=substr($vencimento,8,2).substr($vencimento,5,2).substr($vencimento,2,2); 
			// echo $vencimento;
			$valor=$a[bole_tx_valordoc]+$a[bole_tx_valorNegociado];
			$nosso_num=$a[bole_tx_nossoNumero];

			if($a_clie[clie_tx_cep]=='')
				$CEP = '00000000';
			else
				$CEP=$a_clie[clie_tx_cep];
			$carteira=$a_conf[conf_tx_carteira];

			//-----inicio linha 1------
			$tipolinha="1";
			$branco16=str_pad("",16);
			$agencia='0035';
			$zeros2='00';
			$conta='00503872'; // CONTA(7) + DV (1)
			$multa='00';
			$branco4=str_pad("",4);
			$numControle=str_pad('',25,"0",STR_PAD_LEFT); //No de Controle do Título do Cliente. (Controle da empresa)
			$nnum=str_pad($nosso_num,7,"0",STR_PAD_LEFT);
			$dv_nnum=digitoVerificador_nossonumero($nnum);
			$numContrato=str_pad('',10,"0",STR_PAD_LEFT); //Número do Contrato para cobrança caucionada/vinculada. Preencher com zeros para cobrança simples.
			$dataDesconto="000000";
			$valorDesconto=str_pad("",13,"0");
			$branco8=str_pad("",8);
			$carteira='4'; //4 -> carteira 21 = Cobranca simples-Boleto emitido pelo cliente
			

			$codServico='06'; //01 -> Entrada normal; 02-Pedido de baixa; 06-Alteração de Vencimento
			$seuNumero=str_pad($a[bole_nb_id],10,"0",STR_PAD_LEFT); //sera usado o id do boleto preenchido com zero
			$vencimento=substr($a[bole_tx_vencimento],8,2).substr($a[bole_tx_vencimento],5,2).substr($a[bole_tx_vencimento],2,2); 
			$valorTitulo=str_pad(str_replace('.','',$valor),13,"0",STR_PAD_LEFT);
			$numeroBanco='000'; //Preencher com Zeros (Banco Cobrador será definido conforme cobradora)
			$agenciaCobradora='0000'; //Agência Cobradora será definida pelo BNB Com base no CEP do Sacado !------------ESTE ITEM ESTA PENDENTE ---------------!
			$branco1=str_pad("",1);
			$especie='01'; // 01 -> Duplicata Mercantil
			$aceite='S';
			$dataEmissao=date('dmy');
			$codInstrucao='0000';
			$jurosDia=str_pad("",13,"0");
			$dataDesconto='000000';
			$valorDesconto=str_pad("",13,"0");
			

			$valorIOC=str_pad("",13,"0");
			$valorAbatimento=str_pad("",13,"0");
			
			if(strlen($a[enti_tx_cnpj])=='14'){
				$codInscricao='01'; // ATENCAO!!! “01” para CPF, ou “02” para CNPJ.
			}else{
				$codInscricao='02'; // ATENCAO!!! “01” para CPF, ou “02” para CNPJ.
			}
				$a[enti_tx_cnpj]=preg_replace("/[^0-9]/","",$a[enti_tx_cnpj]);
				$incricao=str_pad($a[enti_tx_cnpj],14,"0",STR_PAD_LEFT);

			$nomeSacado=strtoupper(substr(str_pad(sanitizeString($a[enti_tx_nome]),40),0,40));
			if($a[enti_tx_endereco]=='')
				$a[enti_tx_endereco] = 'RUA NAO IDENTIFICADA';
			$enderecoSacado=strtoupper(substr(str_pad(sanitizeString($a[enti_tx_endereco]),40),0,40));
			$complementoSacado=str_pad("",12);
			if($a[enti_tx_cep]=='')
				$a[enti_tx_cep] = '59600-000';
			$cepSacado=str_pad(str_replace('-','',$a[enti_tx_cep]),8,"0",STR_PAD_LEFT);
			$expCidade=explode("/",$a[enti_tx_cidade]);
			$cidade=$expCidade[0];
			$uf=$expCidade[1];
			if($cidade=='')
				$cidade = "Mossoro";
			if($uf=='')
				$uf='RN';
			$cidadeSacado=strtoupper(substr(str_pad(sanitizeString($cidade),15),0,15));
			$ufSacado=strtoupper(substr(str_pad(sanitizeString($uf),2),0,2));
			$msgSacadi=strtoupper(substr(str_pad(sanitizeString($a[bole_tx_obs]),40),0,40));
			$protesto='99';
			$moeda='0';
			$nRegistro=str_pad(++$nSequencial,6,"0",STR_PAD_LEFT);

			// echo"$tipolinha.$branco16.$agencia.$zeros2.$conta.$multa.$branco4.$numControle.$nnum.$dv_nnum.$numContrato.$dataDesconto.$valorDesconto.$branco8.$carteira.
			// 	$codServico.$seuNumero.$vencimento.$valorTitulo.$numeroBanco.$agenciaCobradora.$branco1.$especie.$aceite.$dataEmissao.$codInstrucao.$jurosDia.$dataDesconto.$valorDesconto.
			// 	$valorIOC.$valorAbatimento.$codInscricao.$incricao.$nomeSacado.$enderecoSacado.$complementoSacado.$cepSacado.$cidadeSacado.$ufSacado.$msgSacadi.$protesto.$moeda.$nRegistro<hr>";

			fwrite($h,$tipolinha.$branco16.$agencia.$zeros2.$conta.$multa.$branco4.$numControle.$nnum.$dv_nnum.$numContrato.$dataDesconto.$valorDesconto.$branco8.$carteira.
				$codServico.$seuNumero.$vencimento.$valorTitulo.$numeroBanco.$agenciaCobradora.$branco1.$especie.$aceite.$dataEmissao.$codInstrucao.$jurosDia.$dataDesconto.$valorDesconto.
				$valorIOC.$valorAbatimento.$codInscricao.$incricao.$nomeSacado.$enderecoSacado.$complementoSacado.$cepSacado.$cidadeSacado.$ufSacado.$msgSacadi.$protesto.$moeda.$nRegistro."\r\n");
			//------fim linha 1-------

			$campos=array(reme_nb_boleto,reme_tx_data,reme_tx_status);
			$valores=array($a[bole_nb_id],date("Y-m-d"),'ativo');
			// inserir('remessa',$campos,$valores,1);



		}
	}



	//------inicio linha 9-------

	fwrite($h,"9".str_pad("",393).str_pad(++$nSequencial,6,"0",STR_PAD_LEFT)."\r\n");


	//------fim linha 9-------


	fclose($h);

	$campos=array('reme_tx_nome','reme_tx_arquivo','reme_tx_data','reme_nb_user','reme_tx_status');
	$valores=array("$_POST[data1] - $_POST[data2]",$nome_arquivo,date("Y-m-d"),$_SESSION[user_nb_id],'ativo');
	inserir('remessaBNB',$campos,$valores,1);
	$ult_remessa = ultimo_reg('remessaBNB');


	for($j=0;$j<count($_POST[id_remessa]);$j++){
		$campos=array(bole_tx_dataImpressao,bole_nb_remessaImpressao);
		$valores=array(date("Y-m-d"),$ult_remessa);
		atualizar('boleto',$campos,$valores,$_POST[id_remessa][$j]);
	}
	
	for($j=0;$j<count($_POST[id_baixa]);$j++){
		$campos=array(bole_tx_pedidoBaixa,bole_nb_remessaBaixa);
		$valores=array(date("Y-m-d"),$ult_remessa);
		atualizar('boleto',$campos,$valores,$_POST[id_baixa][$j]);
	}
	
	for($j=0;$j<count($_POST[id_vencimento]);$j++){
		$campos=array(bole_tx_pedidoVencimento,bole_nb_remessaVencimento);
		$valores=array(date("Y-m-d"),$ult_remessa);
		atualizar('boleto',$campos,$valores,$_POST[id_vencimento][$j]);
	}


	chamar_pag('baixar.php','nome',$nome_arquivo,' target=_blank');
	// baixar_arquivo($nome_arquivo);
	index();
	exit;
}





function layout_remessa(){


	cabecaRelatorio('REMESSA BANCÁRIA BNB');

	$a_mod=carregar('remessaBNB',$_POST[id]);

	$a_data = explode(" - ",$a_mod[reme_tx_nome]);

	$extra .= " AND bole_tx_dataImpressao >= '".gera_data($a_data[0],1)."'";
	$extra .= " AND bole_tx_dataImpressao <= '".gera_data($a_data[1],1)."'";

	$extra2 .= " AND bole_tx_pedidoBaixa >= '".gera_data($a_data[0],1)."'";
	$extra2 .= " AND bole_tx_pedidoBaixa <= '".gera_data($a_data[1],1)."'";



	cactux::abre_form();

	$c[] = cactux::texto('Período de Data:',$a_mod[reme_tx_nome],3);
	$c[] = cactux::texto('Data Geração de Arquivo:',data($a_mod[reme_tx_data],1),3);
	$c[] = cactux::texto('Nome do Arquivo:',str_replace("remessa/","",$a_mod[reme_tx_arquivo]),4);
	
	cactux::abre_fieldset('Dados da Remessa');
	cactux::linha_fieldset($c[0],$c[1],$c[2]);
	cactux::fecha_fieldset();

	cactux::fecha_form();

	$cabeca[] = array('CÓD.','NOSSO NÚMERO','ALUNO','TURMA','VENCIMENTO','VALOR','DATA PG','VALOR PG','DESCRIÇÃO');
	$cabeca[] = 'c,c,e,e,c,c,c,c,e,e';
	$cabeca[] = '5%,10%,15%,15%,10%,10%,10%,10%,15%,2%,2%,2%,2%,2%';
	$sql_contato = selecionar('boleto,movimento.entidade','bole_tx_status,bole_tx_status',"!inativo,!agrupado"," AND movi_nb_ref = enti_nb_id  $extra AND movi_tx_tipo='Entrada' ORDER BY bole_tx_vencimento ASC LIMIT 300");
	
	if(num_linhas($sql_contato)>0){
		while( $a = @carrega_array($sql_contato) ) {
			
			if( $a[bole_nb_agrupado] == 0 ) {
				$sql_valor_pago = selecionar('sum(fobo_tx_valor) as total|fobo','fobo_nb_boleto,fobo_tx_status',"$a[bole_nb_id],!inativo");
				$a_valor_pago = carrega_array($sql_valor_pago);
			} else {
				$a_valor_pago[total] = $a[bole_tx_valordoc];
			}

			$valores[] = array($a[0],$a[bole_tx_nossoNumero],$a[enti_tx_nome],$a[turm_tx_nome],data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc],1),data($a[bole_tx_data],1),
								mostra_valor($a_valor_pago[total]),$a[bole_tx_obs]);	
								
			$total_valor_doc += $a[bole_tx_valordoc];
			$total_pago += $a[bole_tx_valor];
		}

		$valores[] = array('','','','','<b>TOTAL:','<b>'.mostra_valor($total_valor_doc),'','<B>'.mostra_valor($total_pago));	
		
		echo"<center><b>ENVIO DE BOLETOS</b></center>";
		grid::gerar($cabeca,$valores);
		echo"<br>";

		unset($valores);
	}


	$sql_contato = selecionar('boleto,movimento.entidade','bole_tx_status,bole_tx_status',"encerrado,!agrupado"," AND movi_nb_ref = enti_nb_id $extra2 AND movi_tx_tipo='Entrada' ORDER BY bole_tx_vencimento ASC LIMIT 300");
	
	if(num_linhas($sql_contato)>0){
		while( $a = @carrega_array($sql_contato) ) {
			
			if( $a[bole_nb_agrupado] == 0 ) {
				$sql_valor_pago = selecionar('sum(fobo_tx_valor) as total|fobo','fobo_nb_boleto,fobo_tx_status',"$a[bole_nb_id],!inativo");
				$a_valor_pago = carrega_array($sql_valor_pago);
			} else {
				$a_valor_pago[total] = $a[bole_tx_valordoc];
			}

			$valores[] = array($a[0],$a[bole_tx_nossoNumero],$a[enti_tx_nome],$a[turm_tx_nome],data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc],1),data($a[bole_tx_data],1),
								mostra_valor($a_valor_pago[total]),$a[bole_tx_obs]);	
								
			$total_valor_doc += $a[bole_tx_valordoc];
			$total_pago += $a[bole_tx_valor];
		}

		$valores[] = array('','','','','<b>TOTAL:','<b>'.mostra_valor($total_valor_doc),'','<B>'.mostra_valor($total_pago));	
		
		echo"<center><b>PEDIDO DE BAIXA DE BOLETOS</b></center>";
		grid::gerar($cabeca,$valores);

		unset($valores);
	}

}




function layout_boleto(){
	cabecalho('REMESSA BANCÁRIA BNB');

	if(!isset($_POST[data1]))
		$_POST[data1]=date("d/m/Y");
	if(!isset($_POST[data2]))
		$_POST[data2]=date("d/m/Y");

	if($_POST[data1]){
		$extra .= " AND bole_tx_dataCadastro  >= '".gera_data($_POST[data1],1)."'";
		$extra2 .= " AND bole_tx_pedidoBaixa >= '".gera_data($_POST[data1],1)."'";
		$extra3 .= " AND bole_tx_pedidoVencimento >= '".gera_data($_POST[data1],1)."'";
	}
	
	if($_POST[data2]){
		$extra .= " AND bole_tx_dataCadastro  <= '".gera_data($_POST[data2],1)."'";
		$extra2 .= " AND bole_tx_pedidoBaixa <= '".gera_data($_POST[data2],1)."'";
		$extra3 .= " AND bole_tx_pedidoVencimento <= '".gera_data($_POST[data2],1)."'";
	}
	cactux::abre_form();

	$c[] = cactux::campo('Data Inicial:','data1',$_POST[data1],2,MASCARA_DATA);
	$c[] = cactux::campo('Data Fim:','data2',$_POST[data2],2,MASCARA_DATA);

	$voltar = cactux::botao("Voltar",2,'voltar');
	$buscar = cactux::botao_submit("Buscar",2,'layout_boleto');
	$gravar = cactux::botao("Gravar",2,'gravar','onclick=gravarJs();');


	
	
	cactux::abre_fieldset('Dados da Remessa');
	cactux::linha_fieldset($c[0],$c[1],$c[2]);
	cactux::linha_fieldset($voltar,$buscar,$gravar);
	cactux::fecha_fieldset();



	// REGISTRO DE BOLETOS
	$cabeca[] = array('','CÓD.','NOSSO NÚMERO','CLIENTE','DATA&nbsp;CADASTRO','VENCIMENTO','VALOR','DATA PG','VALOR PG','DESCRIÇÃO');
	$cabeca[] = 'c,c,c,e,c,c,c,c,c,e';
	$cabeca[] = '2%,5%,10%,25%,8%,8%,8%,8%,8%,';
	$sql_contato = selecionar('boleto,movimento.entidade','bole_tx_status,bole_tx_status',"ativo,!agrupado","  AND bole_tx_nossoNumero != '' AND bole_tx_dataImpressao IS NULL AND movi_nb_ref = enti_nb_id  $extra AND movi_tx_tipo='Entrada' ORDER BY bole_nb_id ASC LIMIT 300");

	if(num_linhas($sql_contato)>0){
		while( $a = @carrega_array($sql_contato) ) {

			$check = "<input checked=checked type=checkbox name=id_remessa[] value='$a[bole_nb_id]'>";

			if( $a[bole_nb_agrupado] == 0 ) {
				$sql_valor_pago = selecionar('sum(fobo_tx_valor) as total|fobo','fobo_nb_boleto,fobo_tx_status',"$a[bole_nb_id],!inativo");
				$a_valor_pago = carrega_array($sql_valor_pago);
			} else {
				$a_valor_pago[total] = $a[bole_tx_valordoc]+$a[bole_tx_valorNegociado];
			}

			$valores[] = array($check,$a[0],$a[bole_tx_nossoNumero],$a[enti_tx_nome],data($a[bole_tx_dataCadastro],1),data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc]+$a[bole_tx_valorNegociado],1),data($a[bole_tx_data],1),
								mostra_valor($a_valor_pago[total]),$a[bole_tx_obs]);	

			$total_valor_doc += $a[bole_tx_valordoc]+$a[bole_tx_valorNegociado];
			$total_pago += $a[bole_tx_valor];
		}

		$valores[] = array('','','','','','<b>TOTAL:','<b>'.mostra_valor($total_valor_doc),'','<B>'.mostra_valor($total_pago),'');	
		
		echo"<center><b><div class=rel>REGISTRO DE BOLETOS</div></b></center>";
		grid::gerar($cabeca,$valores);
		echo"<br>";

		unset($valores,$total_valor_doc,$total_pago,$cabeca);
	}



	// BAIXA DE BOLETOS
	$cabeca[] = array('','CÓD.','NOSSO NÚMERO','CLIENTE','PEDIDO&nbsp;BAIXA','VENCIMENTO','VALOR','DATA PG','VALOR PG','DESCRIÇÃO');
	$cabeca[] = 'c,c,c,e,c,c,c,c,c,e';
	$cabeca[] = '2%,5%,10%,25%,8%,8%,8%,8%,8%,';
	$sql_contato = selecionar('boleto,movimento.entidade','bole_tx_status,bole_tx_status',"encerrado,!agrupado","  AND bole_tx_nossoNumero != '' AND bole_tx_pedidoBaixa != '' AND bole_nb_remessaBaixa IS NULL AND bole_tx_dataImpressao IS NOT NULL AND movi_nb_ref = enti_nb_id $extra2 AND movi_tx_tipo='Entrada' ORDER BY bole_nb_id ASC LIMIT 300");
	
	if(num_linhas($sql_contato)>0){
		while( $a = @carrega_array($sql_contato) ) {

			$check = "<input checked=checked type=checkbox name=id_baixa[] value='$a[bole_nb_id]' >";
			
			if( $a[bole_nb_agrupado] == 0 ) {
				$sql_valor_pago = selecionar('sum(fobo_tx_valor) as total|fobo','fobo_nb_boleto,fobo_tx_status',"$a[bole_nb_id],!inativo");
				$a_valor_pago = carrega_array($sql_valor_pago);
			} else {
				$a_valor_pago[total] = $a[bole_tx_valordoc];
			}

			$valores[] = array($check,$a[0],$a[bole_tx_nossoNumero],$a[enti_tx_nome],data($a[bole_tx_pedidoBaixa],1),data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc],1),data($a[bole_tx_data],1),
								mostra_valor($a_valor_pago[total]),$a[bole_tx_obs]);	
								
			$total_valor_doc += $a[bole_tx_valordoc];
			$total_pago += $a[bole_tx_valor];
		}

		$valores[] = array('','','','','','<b>TOTAL:','<b>'.mostra_valor($total_valor_doc),'','<B>'.mostra_valor($total_pago),'');	
		
		echo"<center><b><div class=rel>BAIXA DE BOLETOS</div></b></center>";
		grid::gerar($cabeca,$valores);

		unset($valores,$total_valor_doc,$total_pago,$cabeca);
	}



	// BAIXA DE BOLETOS EXCLUÍDOS
	$cabeca[] = array('','CÓD.','NOSSO NÚMERO','CLIENTE','PEDIDO&nbsp;BAIXA','VENCIMENTO','VALOR','DATA PG','VALOR PG','DESCRIÇÃO');
	$cabeca[] = 'c,c,c,e,c,c,c,c,c,e';
	$cabeca[] = '2%,5%,10%,25%,8%,8%,8%,8%,8%,';
	$sql_contato = selecionar('boleto,movimento.entidade','bole_tx_status,bole_tx_status',"inativo,!agrupado","  AND bole_tx_nossoNumero != '' AND bole_tx_pedidoBaixa != '' AND bole_nb_remessaBaixa IS NULL AND bole_tx_dataImpressao IS NOT NULL AND movi_nb_ref = enti_nb_id $extra2 AND movi_tx_tipo='Entrada' ORDER BY bole_nb_id ASC LIMIT 300");
	
	if(num_linhas($sql_contato)>0){
		while( $a = @carrega_array($sql_contato) ) {

			$check = "<input checked=checked type=checkbox name=id_baixa[] value='$a[bole_nb_id]' >";
			
			if( $a[bole_nb_agrupado] == 0 ) {
				$sql_valor_pago = selecionar('sum(fobo_tx_valor) as total|fobo','fobo_nb_boleto,fobo_tx_status',"$a[bole_nb_id],!inativo");
				$a_valor_pago = carrega_array($sql_valor_pago);
			} else {
				$a_valor_pago[total] = $a[bole_tx_valordoc];
			}

			$valores[] = array($check,$a[0],$a[bole_tx_nossoNumero],$a[enti_tx_nome],data($a[bole_tx_pedidoBaixa],1),data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc],1),data($a[bole_tx_data],1),
								mostra_valor($a_valor_pago[total]),$a[bole_tx_obs]);	
								
			$total_valor_doc += $a[bole_tx_valordoc];
			$total_pago += $a[bole_tx_valor];
		}

		$valores[] = array('','','','','','<b>TOTAL:','<b>'.mostra_valor($total_valor_doc),'','<B>'.mostra_valor($total_pago),'');	
		
		echo"<center><b><div class=rel>BAIXA DE BOLETOS EXCLUÍDOS</div></b></center>";
		grid::gerar($cabeca,$valores);

		unset($valores,$total_valor_doc,$total_pago,$cabeca);
	}



	// TROCA DE VENCIMENTO
	$cabeca[] = array('','CÓD.','NOSSO NÚMERO','CLIENTE','PEDIDO&nbsp;VENCIMENTO','VENCIMENTO','VALOR','DATA PG','VALOR PG','DESCRIÇÃO');
	$cabeca[] = 'c,c,c,e,c,c,c,c,c,e';
	$cabeca[] = '2%,5%,10%,25%,8%,8%,8%,8%,8%,';
	$sql_contato = selecionar('boleto,movimento.entidade','bole_tx_status,bole_tx_status',"ativo,!agrupado"," AND bole_tx_nossoNumero != '' AND bole_tx_pedidoVencimento != '' AND bole_nb_remessaVencimento IS NULL  AND movi_nb_ref = enti_nb_id $extra3 AND movi_tx_tipo='Entrada' ORDER BY bole_nb_id ASC LIMIT 300");
	
	if(num_linhas($sql_contato)>0){
		while( $a = @carrega_array($sql_contato) ) {

			$check = "<input checked=checked type=checkbox name=id_vencimento[] value='$a[bole_nb_id]' >";
			
			if( $a[bole_nb_agrupado] == 0 ) {
				$sql_valor_pago = selecionar('sum(fobo_tx_valor) as total|fobo','fobo_nb_boleto,fobo_tx_status',"$a[bole_nb_id],!inativo");
				$a_valor_pago = carrega_array($sql_valor_pago);
			} else {
				$a_valor_pago[total] = $a[bole_tx_valordoc];
			}

			$valores[] = array($check,$a[0],$a[bole_tx_nossoNumero],$a[enti_tx_nome],data($a[bole_tx_pedidoVencimento],1),data($a[bole_tx_vencimento],1),mostra_valor($a[bole_tx_valordoc],1),data($a[bole_tx_data],1),
								mostra_valor($a_valor_pago[total]),$a[bole_tx_obs]);	
								
			$total_valor_doc += $a[bole_tx_valordoc];
			$total_pago += $a[bole_tx_valor];
		}

		$valores[] = array('','','','','','<b>TOTAL:','<b>'.mostra_valor($total_valor_doc),'','<B>'.mostra_valor($total_pago),'');	
		
		echo"<center><b><div class=rel>TROCA DE VENCIMENTO</div></b></center>";
		grid::gerar($cabeca,$valores);

		unset($valores);
	}




	cactux::fecha_form();

	javascript("
		function gravarJs(){
			document.cadastro.acao.value='gerar_arquivo';
			document.cadastro.submit();
		}
	");

	cactux::acao_botao('voltar','index');


}





function index(){
	cabecalho("Remessa Bancária BNB");

	cactux::abre_form('');

	$c[] = cactux::campo('Data Inicial:','busca_data1',$_POST[busca_data1],2,MASCARA_DATA);
	$c[] = cactux::campo('Data Fim:','busca_data2',$_POST[busca_data2],2,MASCARA_DATA);

	$botao = cactux::botao_submit_busca("Buscar",2,'index');
	$botao2 = cactux::botao("Inserir",2,'inserir');
	cactux::abre_fieldset('Filtro de Busca');
	cactux::linha_fieldset($c[0],$c[1]);
	cactux::linha_fieldset($botao,$botao2);
	cactux::fecha_fieldset();
	cactux::fecha_form();

	cactux::acao_botao('inserir','layout_boleto');

	$sql = selecionar('remessaBNB','reme_tx_status','ativo'," ORDER BY reme_nb_id DESC",1);
	$BUSCA = grid::gerar_paginacao($sql);
	while($a = carrega_array($BUSCA[0])){
		$download = ".icone_modificar($a[0],imprimir,'nome','$a[reme_tx_arquivo]','baixar.php','target=_blank','','../cactus/imagens/download.png');";
		$imprimir = ".icone_modificar($a[0],layout_remessa,'','','','target=_blank','','../cactus/imagens/imprimir.png');";
		$valores[] = array($a[reme_nb_id],data($a[reme_tx_data],1),$a[reme_tx_nome],$download,$imprimir);
	}

	$cabeca[] = array('CÓDIGO','DATA','PERÍODO','','');
	$cabeca[] = 'c,c,c,c';
	$cabeca[] = '5%,40%,,3%,3%';
	$cabeca[] = '50%';

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

}



CONTROLE();
?>