Ola, sou novo no forum e novo com boletophp, procurei no forum e não achei nada que me ajudasse então vou postar minha duvida…
Bom estou criando um sistema para gerar boletos em lote por período e parece tudo dar certo menos uma coisa, na linha digital o nosso_numero esta repetindo em todos os boletos ele parece nao fazer o while para buscar o novo nosso_numero, porem o resto das informações é atualizada
periodo.php
<?php
//includes
require 'phpmailer/class.phpmailer.php';
require 'phpmailer/class.smtp.php';
include("e002.php");
$dtinicio = $_POST['from'];
$dtfim = $_POST['to'];
echo "$dtinicio $dtfim";
$novapasta = date("d-m-Y_H-i-s");
mkdir('boletos/'.$novapasta);
$contadorLinha = 0;
$DDMM = GetDDMM();
$RemessaDiaSeq = GetRemDiaSeq("237",$DDMM);
$file = "CB". $RemessaDiaSeq .".REM";
$contadorLinha += 1;
$header = "01REMESSA01COBRANCA" .str_repeat(' ', 7) .GetHeader("237");
$contadorLinha += 1;
$fp = fopen($file, "a");
$db = mysql_connect('localhost','trans853_admin','99691543dtanci');
if (!$db)
{
return "";
}
mysql_select_db("trans853_loginD", $db);
$db = mysql_query("SET NAMES utf8");
$result = mysql_query("SELECT u.id, u.email, r.RecebivelID FROM `usuarios` u INNER JOIN `Sacado` s ON (u.id = s.UsuarioID) INNER JOIN `Recebivel` r ON (s.SacadoID = r.SacadoID) WHERE r.DataVencimento between '".$dtinicio ."' AND '".$dtfim ."' AND r.BoletoFlag = 0");
while($row = mysql_fetch_array($result))
{
$email = $row['email'];
$id = $row['id'];
$usuarioID = $id;
$nossoNumero = $row['RecebivelID'];
$dataVencimento = "";
$valor = "";
$cpf = "";
$nome = "";
$endereco = "";
$numero = "";
$complemento = "";
$enderecoCompleto = "";
$cep = "";
$cidade = "";
$carteira = "";
$agencia = "";
$agenciaDig ="";
$conta = "";
$contaDig = "";
$CNPJ = "";
$RazaoSocial = "";
GetRecebivelPeriodo($usuarioID,$nossoNumero,$dataVencimento,$valor,$cpf,$nome,$endereco,$numero,$complemento,$cep,$enderecoCompleto,$cidade);
//print "Email : " .$email . PHP_EOL;
//print "Nome : " .$nome . PHP_EOL;
$dataVencimento = substr($dataVencimento,8,2) .'/' .substr($dataVencimento,5,2) .'/' .substr($dataVencimento,0,4);
$dataVencimento1 = substr($dataVencimento,0,2) .substr($dataVencimento,3,2) .substr($dataVencimento,8,2);
$cpf1 = str_repeat('0',14-strlen(substr($cpf,0,3) .substr($cpf,4,3) .substr($cpf,8,3) .substr($cpf,12,2))) .substr($cpf,0,3) .substr($cpf,4,3) .substr($cpf,8,3) .substr($cpf,12,2);
if (strlen($nome ) <= 40)
{
$nome1 = substr($nome,0,40) .str_repeat(' ',40-strlen($nome));
}
else
{
$nome1 = substr($nome,0,40);
}
GetCC("237",$carteira,$agencia,$agenciaDig,$conta,$contaDig);
$nossoNumeroDig = Modulo11Base7($carteira .str_repeat('0', 11-strlen($nossoNumero)) .$nossoNumero);
$nossoNumeroBoleto = $carteira ."/" .str_repeat('0', 11-strlen($nossoNumero)) .$nossoNumero ."-" .$nossoNumeroDig;
$detail = GetDetail($carteira,$agencia,$conta,$contaDig,$nossoNumero, $nossoNumeroDig,$dataVencimento1,$valor,$cpf1,$nome1,$enderecoCompleto,$cep) .str_pad($contadorLinha, 6, "0", STR_PAD_LEFT);
$escreve = fwrite($fp, $detail ."\r\n");
$contadorLinha += 1;
print "Nosso Numero Boleto: " .$nossoNumeroBoleto ." " .$contadorLinha . PHP_EOL;
//Boleto
GetCedente($CNPJ,$RazaoSocial);
// DADOS DO BOLETO PARA O SEU CLIENTE
$dias_de_prazo_para_pagamento = 5;
$taxa_boleto = 0;
$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 = "2950,00"; // 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, ',', '');
if ($contadorLinha == 3) $dadosboleto["nosso_numero"] = $nossoNumero;
else $dadosboleto["nosso_numero"] = $nossoNumeroBoleto; // 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"] = $dataVencimento;
$dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto
$dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional)
$dadosboleto["valor_boleto"] = $valor.',00'; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula
// DADOS DO SEU CLIENTE
$dadosboleto["sacado"] = $nome;
$dadosboleto["endereco1"] = $endereco;
$dadosboleto["endereco2"] = $numero;
$dadosboleto["endereco3"] = $complemento;
$dadosboleto["endereco4"] = $cidade;
$dadosboleto["endereco5"] = $cep;
// INFORMACOES PARA O CLIENTE
$dadosboleto["demonstrativo1"] = "Pagamento da mensalidade";
$dadosboleto["demonstrativo2"] = "Mensalidade referente ao cartão SindeCard<br>Taxa bancária - isenta";
$dadosboleto["demonstrativo3"] = "";
$dadosboleto["instrucoes1"] = "- Sr. Caixa, cobrar multa de 2% após o vencimento";
$dadosboleto["instrucoes2"] = "- Receber até 10 dias após o vencimento";
$dadosboleto["instrucoes3"] = "- Em caso de dúvidas entre em contato conosco: financeiro@sindecard.com.br";
$dadosboleto["instrucoes4"] = "- Mora diária R$ 0,58";
// DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE
$dadosboleto["quantidade"] = "";
$dadosboleto["valor_unitario"] = "";
$dadosboleto["aceite"] = "N";
$dadosboleto["especie"] = "R$";
$dadosboleto["especie_doc"] = "DS";
// ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- //
// DADOS DA SUA CONTA - Bradesco
$dadosboleto["agencia"] = $agencia; // Num da agencia, sem digito
$dadosboleto["agencia_dv"] = $agenciaDig; // Digito do Num da agencia
$dadosboleto["conta"] = $conta; // Num da conta, sem digito
$dadosboleto["conta_dv"] = $contaDig; // Digito do Num da conta
// DADOS PERSONALIZADOS - Bradesco
$dadosboleto["conta_cedente"] = $conta; // ContaCedente do Cliente, sem digito (Somente Números)
$dadosboleto["conta_cedente_dv"] = $contaDig; // Digito da ContaCedente do Cliente
$dadosboleto["carteira"] = $carteira; // Código da Carteira: pode ser 06 ou 03
// SEUS DADOS
$dadosboleto["identificacao"] = "BoletoPhp - Código Aberto de Sistema de Boletos";
$dadosboleto["cpf_cnpj"] = $CNPJ;
$dadosboleto["endereco"] = "Coloque o endereço da sua empresa aqui";
$dadosboleto["cidade_uf"] = "Cidade / Estado";
$dadosboleto["cedente"] = $RazaoSocial;
ob_start();
// NÃO ALTERAR!
include_once("include/funcoes_bradesco.php");
include("include/layout_bradesco.php");
$content = ob_get_clean();
$nomeboleto = 'boletos/'.$novapasta.'/bb'.$nossoNumero.'.pdf';
// convert
require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('P','A4','fr', array(0, 0, 0, 0));
/* Abre a tela de impressão */
//$html2pdf->pdf->IncludeJS("print(true);");
$html2pdf->pdf->SetDisplayMode('real');
/* Parametro vuehtml = true desabilita o pdf para desenvolvimento do layout */
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
/* Abrir no navegador */
$html2pdf->Output($nomeboleto, 'F');
/* Salva o PDF no servidor para enviar por email */
//$html2pdf->Output('caminho/boleto.pdf', 'F');
/* Força o download no browser */
//$html2pdf->Output('boleto.pdf', 'D');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
//Email
$mail = new PHPMailer();
$mail->setLanguage('pt');
$from = 'financeiro@sindecard.com.br';
$fromName = 'SINDECARD';
$host = 'mail.sindecard.com.br';
$username = 'financeiro@sindecard.com.br';
$password = 'sindecard';
$port = 25;
$secure = 'false';
$mail->isSMTP();
$mail->Helo = 'www.sindecard.com.br';
$mail->Host = $host;
$mail->SMTPAuth = true;
$mail->Username = $username;
$mail->Password = $password;
$mail->Port = $port;
$mail->SMTPSecure = $secure;
$mail->From = $from;
$mail->FromName = $fromName;
$mail->addReplyTo($from, $fromName);
$mail->addAddress($email, $nome);
$mail->isHTML(true);
$mail->CharSet = 'utf-8';
$mail->WordWrap = 70;
$mail->Subject = 'SindeCard - Boleto';
$mail->Body = 'Ola, <b>'.$nome.'</b> segue em anexo o boleto no vencimento de:'.$dataVencimento;
$mail->AltBody = 'Ola, '.$nome.' segue em anexo o boleto no vencimento de:'.$dataVencimento;
$mail->AddAttachment($nomeboleto);
$send = $mail->send();
UpdBoletoFlag($nossoNumero);
}
$trailler = "9" .str_repeat(' ', 393) .str_pad($contadorLinha, 6, "0", STR_PAD_LEFT);
$escreve = fwrite($fp, $trailler ."\r\n");
fclose($fp);
mysql_close($db);
ele esta gerando os 5 boletos que no caso sao meus 5 registros de teste no banco de dados porem o nosso_numero repete na linha digitavel
Alguém me da essa ajuda ai, obrigado desde ja!