<?php
// +----------------------------------------------------------------------+
// | BoletoPhp - Versão Beta                                              |
// +----------------------------------------------------------------------+
// | Este arquivo está disponível sob a Licença GPL disponível pela Web   |
// | em http://pt.wikipedia.org/wiki/GNU_General_Public_License           |
// | Você deve ter recebido uma cópia da GNU Public License junto com     |
// | esse pacote; se não, escreva para:                                   |
// |                                                                      |
// | Free Software Foundation, Inc.                                       |
// | 59 Temple Place - Suite 330                                          |
// | Boston, MA 02111-1307, USA.                                          |
// +----------------------------------------------------------------------+

// +----------------------------------------------------------------------+
// | Originado do Projeto BBBoletoFree que tiveram colaborações de Daniel |
// | William Schultz e Leandro Maniezo que por sua vez foi derivado do	  |
// | PHPBoleto de João Prado Maia e Pablo Martins F. Costa			       	  |
// | 																	                                    |
// | Se vc quer colaborar, nos ajude a desenvolver p/ os demais bancos :-)|
// | Acesse o site do Projeto BoletoPhp: www.boletophp.com.br             |
// +----------------------------------------------------------------------+

// +----------------------------------------------------------------------+
// | Equipe Coordenação Projeto BoletoPhp: <boletophp@boletophp.com.br>   |
// | Desenvolvimento Boleto Bradesco: Ramon Soares						            |
// +----------------------------------------------------------------------+


// ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- //
// Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc)	//

// DADOS DO BOLETO PARA O SEU CLIENTE


//$conn = mysql_connect ('localhost' , 'root' , '');
//$db = mysql_select_db('locadora', $conn);
//$con = mysqli_connect("localhost","root","","locadora","3306");
session_start();
include("../include/conexao.php"); 
include("includes/Tipos.php");
include("../include/funcoes_bradesco.php"); 

if($_GET['id_remessa']==''){
	echo 'Erro!Id da Remessa não informada';
	exit();
}
$IdRemessa = $_GET['id_remessa'];
$codigo_empresa = $_SESSION['cod_empresa'];
$id_pessoa = $_SESSION['id_funcionario'];

if(!$con){
    echo "Erro ao conectar!";
}
else{


$obj = new Tipos();

	//busca dados da empresa
	/*
	$sql_empresa = "SELECT `Id`, `Nome`, `CEP`, `Endereco`, Uf, `Fones`, `Bairro_distrito`, `Cidade`, `PessoaContato`, 
	`PessoaContatoCelular`, `EmailComercial`,  Cnpj, `EmailFinanceiro`, `EmailGeral` FROM `empresa` WHERE Id = ".$dados['id_empresa'];
*/	

//SEQUENCIAL DO NOME DO ARQUIVO, PARA SEPARAR NO MESMO DIA
$sql = "SELECT count(1) seq FROM `remessa_boletos` WHERE DATE_FORMAT(`DHGeracaoArq`,'%Y-%m-%d') = CURDATE()";
$rs_seq_nome_arq =  mysqli_query($con, $sql);
$dados_seq_nome_arq = mysqli_fetch_array($rs_seq_nome_arq);
$num_seq_nome_arq = $dados_seq_nome_arq['seq'];
$num_seq_nome_arq = str_pad($num_seq_nome_arq, 2, "0", STR_PAD_LEFT);

//Busca sequencial do arquivo

	$sql_seq = "SELECT SeqArquivo FROM `remessa_boletos` WHERE `Id` = $IdRemessa ORDER BY Id DESC limit 1";
	$rs_seq =  mysqli_query($con, $sql_seq);
	$dados_seq= mysqli_fetch_array($rs_seq);						

	
	$sql_empresa = "SELECT e.Id, f.frnNome, f.frnCep, f.frnEndereco, f.frnFone, f.frnBairro, c.MunNome, uf.Sigla, f.frnCelular, f.frnEmail, frnCliCnpjCpf
	FROM fornecedores f
	INNER JOIN empresa e ON e.IdPessoa = f.frnCod
	INNER JOIN cidades c ON c.MunId = f.IdCidade
	INNER JOIN uf ON uf.UfId = f.CodUf
	WHERE e.Id = ".$codigo_empresa;
	
		$rs_empresa =  mysqli_query($con, $sql_empresa);
		$dados_empresa = mysqli_fetch_array($rs_empresa);						
			
 	//Busca dados da conta bancária
	$sql_conta = "SELECT `NumBanco`, `Agencia`, `Numero`, `AgenciaDV`, `ContaDV`, `ContaCedente`, `ContaCedenteDV`, `Carteira`, TaxaBoleto, MultaAtraso, 
	PercJurosDia, NumContrato 
	FROM `contasbancarias` WHERE `NumBanco` = 237";		

		$rs_conta =  mysqli_query($con, $sql_conta);
		$dados_conta = mysqli_fetch_array($rs_conta); 
		$taxa_boleto = $dados_conta["TaxaBoleto"] ;
		$SeqArquivo = $dados_seq['SeqArquivo']+1;
		
/************** HEADERLABEL **************/
$arrayHeaderLabel = array(
		"Registro" => "0",  // PADRAO
		"ArqRemessa" => "1",  // PADRAO
		"LiteralRemessa" => "REMESSA",  // PADRAO
		"CodigoServico" => "1",  // PADRAO
		"LiteralServico" => "COBRANCA",  // PADRAO
		"NumeroBradesco" => "237",  // PADRAO
		"NomeBanco" => "BRADESCO",  // PADRAO
		"Branco1" => "BRANCO",  // PADRAO
		"Branco2" => "BRANCO",  // PADRAO
		"IdentificacaoSistema" => "MX",  // PADRAO
		"DataGravacaoArq" => date("dmy"),  // PADRAO - Pega Data Atual		
		"CodigoEmpresa" => trim($dados_conta['NumContrato']),
		"NomeEmpresa" => $dados_empresa['frnNome'],
		"NumeroSequencialArq" => $IdRemessa, //criar tabela para registrar as sequencias
		"NumeroSequecialRegistro" => "1" //ver no banco
	);
	
$obj->objHeaderLabel->setCampos($arrayHeaderLabel);
$value = $obj->objHeaderLabel->getRegistro();
$obj->save($num_seq_nome_arq, $value);

/************** CORPO **************/
 /*
    echo $sql = "SELECT `codigo`, `valor_boleto`, DATE_FORMAT(`data_vencimento`, '%d%m%y') AS data_vencimento, `numero_documento`, `numero_parcela`, `carteira`, `id_cliente`, `id_empresa`, `id_pessoa_insert`, `data_insert`, qtd_dias_pagto, BoletoReferente, id_endereco  FROM `boletos` WHERE codigo = ". $_GET['id']; 
    */
    
$sql = "SELECT `codigo` , `valor_boleto` , DATE_FORMAT( `data_vencimento` , '%d%m%y' ) AS data_vencimento, `numero_documento` , `numero_parcela` , `carteira` , `id_cliente` , `id_empresa` , `id_pessoa_insert` , `data_insert` , qtd_dias_pagto, BoletoReferente, id_endereco
FROM `boletos`
INNER JOIN remessa_boletos_itens r ON r.IdBoleto = boletos.codigo
WHERE r.IdRemessa = $IdRemessa";
    
    $rs =  mysqli_query($con, $sql);
	
    while($dados = mysqli_fetch_array($rs)){
        //echo "<b>Codigo:</b> ".$dados['codigo']." <b>valor:</b> ".$dados['valor_boleto']."<br/>";
		$dias_de_prazo_para_pagamento = $dados['qtd_dias_pagto'];
		$data_venc = $dados['data_vencimento']; 
		//$data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400));  // Prazo de X dias OU informe data: "13/04/2006"; 
		$valor_cobrado = $dados['valor_boleto']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal
		$valor_cobrado = str_replace(",", ".",$valor_cobrado);
		$valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', '');
				
		$dadosboleto["nosso_numero"] = $dados['codigo'];  // Nosso numero sem o DV - REGRA: Máximo de 11 caracteres!
		$dadosboleto["numero_documento"] = $dadosboleto["nosso_numero"];	// Num do pedido ou do documento = Nosso numero
		$dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA
		$dadosboleto["data_documento"] = date("dmy"); // Data de emissão do Boleto
		$dadosboleto["data_processamento"] = date("dmy"); // Data de processamento do boleto (opcional)
		$dadosboleto["valor_boleto"] = $valor_boleto; 	// Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula
		$referente = $dados["BoletoReferente"];
		$dadosboleto["carteira"] = $dados['carteira'];  // Código da Carteira: pode ser 06 ou 03
		
	//busca dados do cliente
		$sql_cli = "SELECT frnNome  FROM fornecedores  WHERE frnCod = ".$dados['id_cliente']."  ORDER BY frnNome";
		
		$rs_cli =  mysqli_query($con, $sql_cli);
		$dados_cli = mysqli_fetch_array($rs_cli);	
		
	  //Busca endereço extra do cliente
	  if($dados['id_endereco'] >0){
		$sql_endereco_extra = "SELECT IdPessoa, Endereco,  Numero,  Bairro, Cidade, UF, CEP FROM enderecos_pessoa WHERE IdEndereco = ". $dados['id_endereco'] ;
   		$rs_end_extra =  mysqli_query($con, $sql_endereco_extra); 
		$dados_endereco = mysqli_fetch_array($rs_end_extra);	
		$cep = $dados_endereco['CEP'];
		//Monta endereço	
		$endereco_cliente = $dados_endereco['Endereco']." ".$dados_endereco['Numero']." ".$dados_endereco['Bairro']." ".$dados_endereco['Cidade']."-".$dados_endereco['UF']; 
	  }else{
		  
		  //Busca endereço principal
		$sql_endereco_principal = "SELECT frnTipo, frnRestricao, frnEndereco, frnBairro, Num, frnCep, Sigla, MunNome, EndPontoRef, frnFone, frnPais, 
		frnCelular, frnPessoaContato, frnEndComplemento FROM `fornecedores`, cidades, uf 
		WHERE frnCod = ".$dados['id_cliente'] ." and MunId = IdCidade AND CodUf = UfId";		  		  
		
   		$rs_end_principal =  mysqli_query($con, $sql_endereco_principal); 
		$dados_endereco_principal = mysqli_fetch_array($rs_end_principal);	
		$cep = $dados_endereco_principal['frnCep'];
		//Monta endereço		
		$endereco_cliente = $dados_endereco_principal['frnEndereco']." ".$dados_endereco_principal['Num']." ".$dados_endereco_principal['frnBairro']." 
		 	".$dados_endereco_principal['MunNome']."-".$dados_endereco_principal['Sigla']; 
		
	  }
	$prefixo_cep = substr($cep, 0, 5);
	$sufixo_cep = substr($cep, 5, 3);

	// DADOS DO SEU CLIENTE
	$endereco_cliente = substr($endereco_cliente, 0, 40);
	$dadosboleto["sacado"] = $dados_cli['frnNome'];
	$dadosboleto["endereco1"] = $endereco_cliente;
	$dadosboleto["endereco2"] = "";
	
	// INFORMACOES PARA O CLIENTE
	$fone = $dados_empresa['Fones'];
	
	//$dadosboleto["demonstrativo1"] = "Pagamento de Compra na Loja Nonononono";
	$dadosboleto["demonstrativo1"] = $referente;
	$dadosboleto["demonstrativo2"] = "";
	
	if($taxa_boleto >0 ){
		$dadosboleto["demonstrativo2"] = "Taxa bancária - R$ ".number_format($taxa_boleto, 2, ',', '');
	}
	//$dadosboleto["demonstrativo3"] = "BoletoPhp - http://www.boletophp.com.br";
	$dadosboleto["demonstrativo3"] = "";
	//$dadosboleto["instrucoes1"] = "- Sr. Caixa, cobrar multa de 2% após o vencimento";
	$dadosboleto["instrucoes1"] = "" ;
	if($dados_conta["PercJurosDia"] != ""){
		$vr_juro_dia = ($dados_conta["PercJurosDia"] / 100 * $valor_cobrado) / 30 ;
		$vr_juro_dia = number_format($vr_juro_dia, 2, ',', '');
		$dadosboleto["instrucoes1"] = "* * VALORES EXPRESSOS EM REAIS **** * <br/>MORA DIA/COM.PERMANC .............. ".$vr_juro_dia ;
	}
	
	$dadosboleto["instrucoes2"] = "";
	if($dados_conta["MultaAtraso"] != ""){
		$vr_juro_dia = ($dados_conta["PercJurosDia"] / 100 * $valor_cobrado) / 30 ;
		$vr_multa = $dados_conta["MultaAtraso"] / 100 * $valor_cobrado; 
		$vr_multa = number_format($vr_multa, 2, ',', '');
		$dadosboleto["instrucoes2"] = "APÓS ".$data_venc." MULTA DE ............................. ".$vr_multa ;
	}
	
	//$dadosboleto["instrucoes2"] = "- Receber até 10 dias após o vencimento";
	$dadosboleto["instrucoes3"] = "";
	$email = $dados_empresa['EmailComercial'] ;
	$dadosboleto["instrucoes4"] = "- Em caso de dúvidas entre em contato conosco: $email / ".$fone;
	
	// DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE
	$dadosboleto["quantidade"] = "001";
	$dadosboleto["valor_unitario"] = $valor_boleto;
	$dadosboleto["aceite"] = "";		
	$dadosboleto["especie"] = "R$";
	//$dadosboleto["especie_doc"] = "DS";
	$dadosboleto["especie_doc"] = "DM";
	
	// ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- //
	
	// DADOS DA SUA CONTA - Bradesco
	$dadosboleto["agencia"] =  $dados_conta['Agencia']; // Num da agencia, sem digito
	$dadosboleto["agencia_dv"] = $dados_conta['AgenciaDV']; // Digito do Num da agencia
	$dadosboleto["conta"] = $dados_conta['Numero']; 	// Num da conta, sem digito
	$dadosboleto["conta_dv"] = $dados_conta['ContaDV'];; 	// Digito do Num da conta
	
	// DADOS PERSONALIZADOS - Bradesco
	$dadosboleto["conta_cedente"] = $dados_conta['ContaCedente']; // ContaCedente do Cliente, sem digito (Somente Números)
	$dadosboleto["conta_cedente_dv"] =  $dados_conta['ContaCedenteDV']; // Digito da ContaCedente do Cliente
	//echo "CARTEIRA ".$dadosboleto["carteira"] = $dados['carteira'];  // Código da Carteira: pode ser 06 ou 03
	
	// SEUS DADOS
	$dadosboleto["identificacao"] = $dados_empresa['frnNome'];
	$dadosboleto["cpf_cnpj"] = $dados_empresa['frnCliCnpjCpf'];
	$dadosboleto["endereco"] = $dados_empresa['frnEndereco'];
	$dadosboleto["cidade_uf"] = $dados_empresa['MunNome']."/".$dados_empresa['Sigla'];
	$dadosboleto["cedente"] = $dados_empresa['frnNome'];
	
	
	$arrayTipo01 = array(
	
			"IdentificacaoRegistro" => "1",  // PADRAO
			"AgenciaDebito" => NULL,
			"DigitoAgenciaDebito" => NULL,
			"RazaoContaCorrente" => NULL,
			"ContaCorrente" => NULL,
			"DigitoContaCorrente" => NULL,
			"IdentificacaoEmpresaCedente" => "0".$dados['carteira'].$dadosboleto["agencia"].$dadosboleto["conta_cedente"].$dadosboleto["conta_cedente_dv"], 
			"ControleParticipante" => $dados['codigo'],//verificar
			"CodBancoDebitadoCamaraCompensacao" => "237",  // PADRAO
			"Zeros" => "0",  // PADRAO
			"IdentificacaoTitulo" => $dadosboleto["nosso_numero"], 
			"DigitoAutoCoferencia" => digitoVerificador_nossonumero($dadosboleto["nosso_numero"]) ,//verificar
			"DescontoBonificacao" => "53", 
			"CodEmissaoPapeletaCobranca" => "2",//confirmar
			"IdentificacaoEmitePapeletaDebito" => "N",
			"IdentificacaoOperacaoBanco" => NULL,  // PADRAO
			"IndicadorRateioCredito" => "R",
			"EnderecamentoAvisoDebitoAutomatico" => "2", //verificar com a agil locacoes
			"Branco" => NULL,  // PADRAO
			"IdentificacaoOcorrencia" => "1",
			"NumeroDocumento" => $dadosboleto["numero_documento"],
			"DataVencimentoTitulo" => $dados['data_vencimento'] ,// MODIFICAR FORMTO: PARA "230214"
			"ValorTitulo" => $dados['valor_boleto'], //PRENCHER SEM PONTO E SEM VÍGULA
			"BancoEncarregadoCobranca" => "0",
			"AgenciaDepositaria" => "0",
			"EspecieTitulo" => "99",
			"Identificacao" => "A", //verificar
			"DataEmissaoTitulo" => $dadosboleto["data_processamento"] , //COLOCAR FORMATO "010314"
			"Instrucao1" => "06", //VERIFICAR COM AGIL
			"Instrucao2" => "5", //NUMERO DE DOAS A PROTESTAR, CONFIRMAR
			"ValorCobradoDiaAtraso" => "15",//ALIMENTAR VALOR COBRADO DIA ATRASO, PARAMETRO BANCO DO SISTEMA
			"DataConcessaoDesconto" => NULL, //VERIFICAR
			"ValorDesconto" => NULL, //VERIFICAR
			"ValorIOF" => NULL,//SÓ PARA SEGURADORA
			"ValorAbatimentoConcedidoCancelado" => NULL, //VERIFICAR
			"IdentificacaoTipoInscricaoSacado" => "1",//PEGAR PELO CADASTRO DO CLIENTE
			"NumeroInscricaoSacado" => $dadosboleto["cpf_cnpj"], 
			"NomeSacado" => $dadosboleto["sacado"],
			"EnderecoCompleto" => $dadosboleto["endereco1"],
			"Mensagem1" => "",//LIVRE 12 CARACTERES
			"Cep" => $prefixo_cep,   
			"SufixoCEP" => $sufixo_cep,//PEGAR CEP DO CLIENTE 77021036
			"SacadorAvalistaOuMensagem2" => "",//DEVE SER OPCIONAL, VERIFICAR
			"NumeroSequencialRegistro" => $dados['codigo']
		);
	
	$obj->objTipo01->setCampos($arrayTipo01);
	$value = $obj->objTipo01->getRegistro();
//	$obj->save("01", $value);
	$obj->save($num_seq_nome_arq, $value);
			
    }
}



//FORA DO WHILE DOS BOLETOS (REGISTRO) 

/************** TRAILLER **************/

$arrayTrailler = array(
		"IdentificacaoRegistro" => "9",  // PADRAO
		"Branco" => NULL,  // PADRAO
		"NumeroSequencialRegistro" => $dados['codigo']//COUNT DO BOLETOS
	);

$obj->objTrailler->setCampos($arrayTrailler);
$value = $obj->objTrailler->getRegistro();
//$obj->save("01", $value);
$obj->save($num_seq_nome_arq, $value);

//insere o registro do arquivo da remssa
$data_insert =  date("Y-m-d H:i");
$sql = "UPDATE `remessa_boletos` SET `DHGeracaoArq`= '$data_insert' WHERE Id = ".$_GET['id_remessa'];
//$sql_insert = "INSERT INTO `remessa_boletos`(SeqArquivo, `CodBanco`, `DHRemessa`, `CodEmpresa`, `IdPessoaInsert`) VALUES ($SeqArquivo, 237,'$data_insert',$codigo_empresa, $id_pessoa)";
mysqli_query($con, $sql);
$arq = "CB".date('d').date('m').$num_seq_nome_arq.".Rem";
echo "<a href=".$arq." target=_blank >Download arquivo remessa!</a>";

?>
