Skip to content

Commit

Permalink
Merge pull request #3 from viniciuseneas/a-remessa-bb
Browse files Browse the repository at this point in the history
[UPDATE] CNAB400BB atualizações para funcionamento correto para geração do arquivo
  • Loading branch information
phlllpe authored Jun 13, 2018
2 parents 2525641 + 3fd2ce3 commit 1cb6982
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 60 deletions.
52 changes: 24 additions & 28 deletions src/Builder/BBCnab400Builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

class BBCnab400Builder extends Builder
{

/**
* Dados configurados no arquivo "src/config/params.yml"
* @var array
Expand Down Expand Up @@ -38,8 +37,7 @@ public function build()
return $this
->detalhes()
->header()
->trailler()
;
->trailler();
}

/**
Expand All @@ -48,12 +46,12 @@ public function build()
*/
protected function detalhes()
{
$seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']);
$convenioBancario = $this->detalhesBoleto['convenios'][$seqConvenio];
$documentosArrecadacao = $this->detalhesBoleto['transacoes'][$seqConvenio];

$seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']);
$convenioBancario = $this->detalhesBoleto['convenios'][$seqConvenio];
$documentosArrecadacao = $this->detalhesBoleto['transacoes'][$seqConvenio];
$arrDetalhes = [];
foreach ($documentosArrecadacao['dam'] as $key => $documento) {

foreach ($documentosArrecadacao['dam'] as $documento) {
$detalhe = new Detalhe;

$detalhe->setIdentificacaoRegistro(7);
Expand All @@ -69,12 +67,9 @@ protected function detalhes()
$detalhe->setNumeroPrestacao('00');
$detalhe->setGrupoValor('00');
$detalhe->setComplementoRegistroBranco1('');
$detalhe->setMsgSacadorAvalista(' ');
$detalhe->setMsgSacadorAvalista('');
$detalhe->setPrefixoTitulo('');

/** @TODO: variação da carteira... */
$detalhe->setVariacaoCarteira('019');

$detalhe->setVariacaoCarteira($convenioBancario['variacaoCarteira']);
$detalhe->setContaCaucao('0');
$detalhe->setNumeroBordero('000000');
$detalhe->setTipoCobranca('');
Expand All @@ -83,15 +78,14 @@ protected function detalhes()
$detalhe->setNumTituloCedente('');
$detalhe->setDtVencimento((new \DateTime($documento['dataVencimento']))->format('dmy'));
$detalhe->setVlTitulo($documento['valor']);
$detalhe->setEspecieTitulo('26');
$detalhe->setNumBanco('001');
$detalhe->setPrefixoAgenciaCobradora('0000');
$detalhe->setPrefixoAgenciaDVCobranca(' ');
$detalhe->setEspecieTitulo('');
$detalhe->setPrefixoAgenciaDVCobranca('');
$detalhe->setEspecieTitulo('12');
$detalhe->setAceiteTitulo('N');
$detalhe->setDtEmissaoTitulo((new \DateTime($documento['dataEmissao']))->format('dmy'));
$detalhe->setInstrucaoCodificada1('00');
$detalhe->setInstrucaoCodificada2('00');
$detalhe->setInstrucaoCodificada2('');
$detalhe->setJurisMoraDia('');
$detalhe->setDtLimiteConcessaoDesconto('');
$detalhe->setVlDesconto('');
Expand All @@ -106,13 +100,14 @@ protected function detalhes()
$detalhe->setCepSacado($documento['pessoa']['cep']);
$detalhe->setCidadeSacado($this->removerAcentos($documento['pessoa']['municipio']['nome']));
$detalhe->setUfCidadeSacado($this->removerAcentos($documento['pessoa']['municipio']['uf']['sigla']));
$detalhe->setObsMensagemSacadorAvalista(''); /***/
$detalhe->setNumDiasProtesto(''); /***/
$detalhe->setObsMensagemSacadorAvalista('');
$detalhe->setNumDiasProtesto('');
$detalhe->setComplementoRegistroBranco3('');

$arrDetalhes[] = $detalhe;
}
$this->detalhes = $arrDetalhes;

return $this;
}

Expand All @@ -122,10 +117,10 @@ protected function detalhes()
*/
protected function header()
{
$seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']);
$convenioBancario = $this->detalhesBoleto['convenios'][$seqConvenio];
$seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']);
$convenioBancario = $this->detalhesBoleto['convenios'][$seqConvenio];

$header = new Header();
$header = new Header();

$header->setIdRegistroHeader($this->dadosBoleto['identificacao_registro']);
$header->setTipoOperacao($this->dadosBoleto['identificacao_operacao']);
Expand Down Expand Up @@ -182,27 +177,28 @@ public function montarArquivo(string $path)
throw new \Exception("Não foi possivel abrir o arquivo para criar a remessa {$fullpath}");
}

$header = $this->header;
$header = $this->header;
$transacoes = $this->detalhes;
$trailler = $this->trailler;
$trailler = $this->trailler;

$stringHeader = $header->getHeaderToString();
$stringHeader = mb_convert_encoding($header->getHeaderToString() . "\n", 'ISO-8859-1', 'UTF-8');

fwrite($file, $stringHeader . "\n");
fwrite($file, $stringHeader);

$sequencialRegistro = 2;

foreach ($transacoes as $transacao) {
$transacao->setSequencialRegistro($sequencialRegistro++);
$stringTransacao = $transacao->getDetalhesToString();
fwrite($file, $stringTransacao . "\n");
fwrite($file, mb_convert_encoding($stringTransacao . "\n", 'ISO-8859-1', 'UTF-8'));
}

$trailler->setSequencialRegistro($sequencialRegistro);
$stringTrailler = $trailler->getTraillerToString();

fwrite($file, $stringTrailler . "\n");
fwrite($file, mb_convert_encoding($stringTrailler . "\n", 'ISO-8859-1', 'UTF-8'));
fclose($file);

return $fullpath;
}
}
9 changes: 5 additions & 4 deletions src/Builder/Builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class Builder
public function __construct(int $bancoIdentificador)
{
$fileValidator = dirname(__FILE__) . self::CONFIG_FILE;

if (!file_exists($fileValidator)) {
throw new \Exception("Arquivo de configuração nao localizado: {$fileValidator}");
}
Expand All @@ -35,6 +36,7 @@ public function __construct(int $bancoIdentificador)
private function carregarDadosBoletoBanco(int $bancoIdentificador)
{
$fileValidator = dirname(__FILE__) . self::CONFIG_FILE;

switch ($bancoIdentificador) {
case BancoEnum::BRADESCO:
$this->dadosBoleto = Yaml::parseFile($fileValidator)['cnab400']['bradesco'];
Expand Down Expand Up @@ -63,7 +65,7 @@ private function carregarDadosBoletoBanco(int $bancoIdentificador)
*/
protected function concatenarDados()
{
$args = func_get_args();
$args = func_get_args();
$output = '';

foreach ($args as $dado) {
Expand All @@ -80,7 +82,8 @@ protected function concatenarDados()
protected function parseInteger($string)
{
$retorno = preg_replace("/[^0-9]/", '', trim($string));
return (int) $retorno;

return (int)$retorno;
}

/**
Expand Down Expand Up @@ -114,6 +117,4 @@ protected function getSeqConvenio($arrConvenio)
return $key;
};
}


}
19 changes: 9 additions & 10 deletions src/Cnab/Cnab400/BB/Detalhe.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

class Detalhe
{

private $identificacaoRegistro = '7';
private $numeroPrestacao = '00';
private $grupoValor = '00';
Expand Down Expand Up @@ -62,7 +61,7 @@ class Detalhe
/**
* @return string
*/
public function getIdentificacaoRegistro(): string
public function getIdentificacaoRegistro()
{
return str_pad(
substr($this->identificacaoRegistro, 0, 1),
Expand All @@ -83,7 +82,7 @@ public function setIdentificacaoRegistro(string $identificacaoRegistro)
/**
* @return string
*/
public function getNumeroPrestacao(): string
public function getNumeroPrestacao()
{
return $this->numeroPrestacao;
}
Expand All @@ -99,7 +98,7 @@ public function setNumeroPrestacao(string $numeroPrestacao)
/**
* @return string
*/
public function getGrupoValor(): string
public function getGrupoValor()
{
return $this->grupoValor;
}
Expand All @@ -115,7 +114,7 @@ public function setGrupoValor(string $grupoValor)
/**
* @return string
*/
public function getNumBanco(): string
public function getNumBanco()
{
return $this->numBanco;
}
Expand All @@ -131,7 +130,7 @@ public function setNumBanco(string $numBanco)
/**
* @return string
*/
public function getPrefixoAgenciaCobradora(): string
public function getPrefixoAgenciaCobradora()
{
return $this->prefixoAgenciaCobradora;
}
Expand All @@ -147,7 +146,7 @@ public function setPrefixoAgenciaCobradora(string $prefixoAgenciaCobradora)
/**
* @return string
*/
public function getPrefixoAgenciaDVCobranca(): string
public function getPrefixoAgenciaDVCobranca()
{
return $this->prefixoAgenciaDVCobranca;
}
Expand All @@ -163,7 +162,7 @@ public function setPrefixoAgenciaDVCobranca(string $prefixoAgenciaDVCobranca)
/**
* @return string
*/
public function getComplementoRegistroBranco1(): string
public function getComplementoRegistroBranco1()
{
return $this->complementoRegistroBranco1;
}
Expand All @@ -179,7 +178,7 @@ public function setComplementoRegistroBranco1(string $complementoRegistroBranco1
/**
* @return string
*/
public function getComplementoRegistroBranco2(): string
public function getComplementoRegistroBranco2()
{
return $this->complementoRegistroBranco2;
}
Expand All @@ -195,7 +194,7 @@ public function setComplementoRegistroBranco2(string $complementoRegistroBranco2
/**
* @return string
*/
public function getComplementoRegistroBranco3(): string
public function getComplementoRegistroBranco3()
{
return $this->complementoRegistroBranco3;
}
Expand Down
8 changes: 3 additions & 5 deletions src/Cnab/Cnab400/BB/Header.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

class Header
{

private $idRegistroHeader;
private $tipoOperacao;
private $tipoOperacaoExtenso;
Expand Down Expand Up @@ -285,7 +284,7 @@ public function setNomeCedente($nomeCedente)
/**
* @return string
*/
public function getIdBanco(): string
public function getIdBanco()
{
return $this->idBanco;
}
Expand All @@ -294,7 +293,7 @@ public function getIdBanco(): string
* @param string $idBanco
* @return Header
*/
public function setIdBanco(string $idBanco): Header
public function setIdBanco(string $idBanco)
{
$this->idBanco = str_pad(
mb_substr($idBanco, 0, 18),
Expand Down Expand Up @@ -473,7 +472,6 @@ public function getHeaderToString()
. $this->getComplementoRegistroBranco2()
. $this->getNumeroConvenioLider()
. $this->getComplementoRegistroBranco3()
. $this->getSequencialRegistro()
;
. $this->getSequencialRegistro();
}
}
3 changes: 1 addition & 2 deletions src/Cnab/Cnab400/BB/Trailler.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@

class Trailler
{

private $identificacaoRegistro = '9';
private $sequencialRegistro = '0';

/**
* @return string
*/
public function getSequencialRegistro(): string
public function getSequencialRegistro()
{
return $this->sequencialRegistro;
}
Expand Down
19 changes: 11 additions & 8 deletions src/RemessaFactory.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?php


namespace Umbrella\Ya\RemessaBoleto;

use Umbrella\Ya\RemessaBoleto\Enum\BancoEnum;
Expand All @@ -12,7 +11,6 @@

class RemessaFactory
{

/**
* Caminho da pasta onde salva o arquivo
* @var string
Expand Down Expand Up @@ -43,8 +41,7 @@ public function create(string $path, int $bancoIdentificador, array $dadosArreca
->configure($bancoIdentificador, $dadosArrecadacao)
->build()
->createFile()
->remessaFile
;
->remessaFile;
} catch (\Exception $e) {
var_dump($e);
exit;
Expand All @@ -69,15 +66,16 @@ private function path(string $path)
);
}
$this->path = rtrim($path, "/");

return $this;
}

/**
* define a classe que gera o arquivo
* @param int $bancoIdentificador
* @param array $dadosArrecadacao
* @return $this
* @throws \Exception
* @param int $bancoIdentificador
* @param array $dadosArrecadacao
* @return RemessaFactory
*/
private function configure(int $bancoIdentificador, array $dadosArrecadacao)
{
Expand All @@ -103,6 +101,7 @@ private function configure(int $bancoIdentificador, array $dadosArrecadacao)
);
break;
}

return $this;
}

Expand All @@ -128,12 +127,16 @@ private function build()
private function createFile()
{
$this->remessaFile = $this->cnabBuilder->montarArquivo($this->path);

return $this;
}

/**
* Validar dados do boleto
* @return RemessaFactory
* @param $identificadorBanco
* @param $dadosArrecadacao
* @return $this
* @throws \Exception
*/
private function validarDadosBoleto($identificadorBanco, $dadosArrecadacao)
{
Expand Down
Loading

0 comments on commit 1cb6982

Please sign in to comment.