Skip to content

Commit

Permalink
Merge pull request #1 from r4faelaugusto/remessa-bancodobrasil
Browse files Browse the repository at this point in the history
Remessa bancodobrasil
  • Loading branch information
phlllpe authored Jun 7, 2018
2 parents 5b60abe + 6fbd3d2 commit 2dffce2
Show file tree
Hide file tree
Showing 23 changed files with 580 additions and 209 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ vendor
bin
build
composer.lock
coverage.clover
coverage.clover
.idea
16 changes: 12 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
## Biblioteca ainda em versão alpha. Não usar em ambiente de produção.

# ya-arquivo-remessa

Biblioteca para geração de arquivos de remessa.
### Versão 0.3

* Biblioteca para geração de arquivos de remessa.


| Banco | Carteira | done? |
|------------- | -------------| -------------|
| Bradesco | 09 | X
| Bradesco | 09 | X |
| Banco do Brasil | 17 | X |
| SICOOB |
| CEF |


![](https://raw.githubusercontent.com/r4faelaugusto/ya-arquivo-remessa/remessa-bancodobrasil/sequenceDiagram.png)
> Diagrama de sequencia
4 changes: 4 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,9 @@
"respect/validation": "^1.1",
"phpunit/phpunit": "^6.1",
"symfony/yaml": "^3.4"
},
"require-dev": {
"squizlabs/php_codesniffer": "3.*",
"phpmd/phpmd" : "@stable"
}
}
92 changes: 89 additions & 3 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,16 @@

use \Exception;
use \Throwable;
use Umbrella\Ya\RemessaBoleto\Cnab\RemessaFactory;
use Umbrella\Ya\RemessaBoleto\RemessaFactory;
use Umbrella\Ya\RemessaBoleto\Enum\BancoEnum;

echo "<a href='?banco=" . BancoEnum::BRADESCO ."'>Bradesco</a>";
echo "<br/>";
echo "<a href='?banco=" . BancoEnum::SICOOB . "'>SICOOB</a>";
echo "<br/>";
echo "<a href='?banco=" . BancoEnum::CEF . "'>Caixa Economica Federal</a>";
echo "<br/>";
echo "<a href='?banco=" . BancoEnum::BANCO_DO_BRASIL . "'>Banco do Brasil</a>";
echo "<hr>";

if (!$_GET['banco']) {return;}
Expand Down Expand Up @@ -72,9 +76,9 @@
"digitoConta" => 2,
"carteira" => [
"carteira" => 23,
"banco" => 237,
"banco" => 104,
"nome" => "09",
"arquivo" => "Bradesco (Com Registro)"
"arquivo" => "CAIXA (Com Registro)"
]
]
],
Expand Down Expand Up @@ -162,6 +166,88 @@
"tipoPessoa" => null,
"passaporte" => null,
]
],
1 => [
"dam" => 1201076,
"tipoDocumento" => 2,
"tipoOrigem" => 2,
"taxa" => [
"taxa" => 273,
"convenioBancario" => [
"convenioBancario" => 229,
"cedente" => "0000002",
"orgao" => 1707,
"carteira" => 23,
"convenio" => "492XX31",
"agencia" => "3XX9",
"digitoAgencia" => 7,
"conta" => 16065,
"digitoConta" => 2
],
"valorFixo" => false,
],
"isPago" => false,
"nossoNumero" => "00000000668",
"numeroDocumento" => 668,
"linhaDigitavel" => "29993739019000000006868001606505874730000020000",
"representacaoNumerica" => null,
"valor" => "200.00",
"desconto" => "0.00",
"multa" => null,
"juros" => null,
"correcaoMonetaria" => "0.00",
"dataEmissao" => "2018-02-22 00:00:00",
"dataVencimento" => "2018-03-24",
"baixa" => false,
"pessoa" => [
"pessoa" => 3723770,
"municipio" => [
"nome" => "",
"uf" => [ "sigla" => "PB" ]
],
"nome" => "SERG DE OLIVE",
"cpfCnpj" => "59123788768",
"identidade" => "038123234",
"orgaoEmissor" => "SSP",
"ufEmissor" => 100133,
"dtEmissao" => null,
"dtNascimento" => "1959-01-28",
"sexo" => "M",
"mae" => null,
"pai" => null,
"nacionalidade" => 105,
"endereco" => "AVENIDA DAS AMERICAS",
"numero" => "700",
"complemento" => "BLOCO 4",
"bairro" => "BARRA DA TIJUCA",
"distrito" => null,
"cep" => "22640100",
"email" => "[email protected]",
"dddTelefone" => "11",
"telefone" => "33051172",
"dddFax" => null,
"fax" => null,
"dtCadastro" => "2018-02-22 09:18:48",
"tipoLogradouro" => null,
"pais" => null,
"estadoCivil" => null,
"pessoaJunta" => null,
"municipioNaturalidade" => null,
"ufNaturalidade" => null,
"emancipado" => null,
"motivoEmancipacao" => null,
"caixaPostal" => null,
"ddiTelefone" => null,
"ddiFax" => null,
"nire" => null,
"registroCartorio" => null,
"anoRegistroCartorio" => null,
"cartorio" => null,
"nomeComarca" => null,
"tipoDocumento" => null,
"tipoPessoa" => null,
"passaporte" => null,
]
]
]
]
Expand Down
Binary file added sequenceDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 23 additions & 24 deletions src/Builder/BBCnab400Builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace Umbrella\Ya\RemessaBoleto\Builder;

use \DateTime;
use Umbrella\Ya\RemessaBoleto\Enum\BancoEnum;
use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\BB\Detalhe;
use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\BB\Header;
Expand Down Expand Up @@ -54,16 +53,14 @@ protected function detalhes()
$documentosArrecadacao = $this->detalhesBoleto['transacoes'][$seqConvenio];

$arrDetalhes = [];
$sequencial = 2;

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

$detalhe->setIdentificacaoRegistro(7);
$detalhe->setTipoInscricaoCedente(strlen($convenioBancario['orgao']['pessoa']['cpfCnpj']) > 11 ? "02" : "01");
$detalhe->setNumeroCPFCNPJCedente($convenioBancario['orgao']['pessoa']['cpfCnpj']);
$detalhe->setTipoInscricaoCedente("02");
$detalhe->setNumeroCPFCNPJCedente($convenioBancario['orgao']['pessoa']['cnpj']);
$detalhe->setPrefixoAgencia($convenioBancario['agencia']);
$detalhe->setPrefixoAgenciaDV($convenioBancario['digitoAgencia']);
$detalhe->setPrefixoAgenciaDV(mb_strtoupper($convenioBancario['digitoAgencia']));
$detalhe->setContaCorrenteCedente($convenioBancario['conta']);
$detalhe->setContaCorrenteDVCedente($convenioBancario['digitoConta']);
$detalhe->setConvenioCobrancaCedente($convenioBancario['convenio']);
Expand All @@ -74,11 +71,14 @@ protected function detalhes()
$detalhe->setComplementoRegistroBranco1('');
$detalhe->setMsgSacadorAvalista(' ');
$detalhe->setPrefixoTitulo('');
$detalhe->setVariacaoCarteira($documento['carteira']['nome']);

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

$detalhe->setContaCaucao('0');
$detalhe->setNumeroBordero('000000');
$detalhe->setTipoCobranca('');
$detalhe->setCarteiraCobranca('');
$detalhe->setCarteiraCobranca($convenioBancario['carteira']['nome']);
$detalhe->setComando('01');
$detalhe->setNumTituloCedente('');
$detalhe->setDtVencimento((new \DateTime($documento['dataVencimento']))->format('dmy'));
Expand All @@ -99,13 +99,13 @@ protected function detalhes()
$detalhe->setVlAbatimento('');
$detalhe->setTipoOperacaoSacado(strlen($documento['pessoa']['cpfCnpj']) > 11 ? "02" : "01");
$detalhe->setCpfCnpjSacado($documento['pessoa']['cpfCnpj']);
$detalhe->setNomeSacado($documento['pessoa']['nome']);
$detalhe->setNomeSacado($this->removerAcentos($documento['pessoa']['nome']));
$detalhe->setComplementoRegistroBranco2('');
$detalhe->setEnderecoSacado($documento['pessoa']['endereco']);
$detalhe->setBairroSacado($documento['pessoa']['bairro']);
$detalhe->setEnderecoSacado($this->removerAcentos($documento['pessoa']['endereco']));
$detalhe->setBairroSacado($this->removerAcentos($documento['pessoa']['bairro']));
$detalhe->setCepSacado($documento['pessoa']['cep']);
$detalhe->setCidadeSacado($documento['pessoa']['municipio']['nome']);
$detalhe->setUfCidadeSacado($documento['pessoa']['municipio']['uf']['sigla']);
$detalhe->setCidadeSacado($this->removerAcentos($documento['pessoa']['municipio']['nome']));
$detalhe->setUfCidadeSacado($this->removerAcentos($documento['pessoa']['municipio']['uf']['sigla']));
$detalhe->setObsMensagemSacadorAvalista(''); /***/
$detalhe->setNumDiasProtesto(''); /***/
$detalhe->setComplementoRegistroBranco3('');
Expand All @@ -123,6 +123,8 @@ protected function detalhes()
protected function header()
{
$seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']);
$convenioBancario = $this->detalhesBoleto['convenios'][$seqConvenio];

$header = new Header();

$header->setIdRegistroHeader($this->dadosBoleto['identificacao_registro']);
Expand All @@ -139,12 +141,12 @@ protected function header()
$header->setComplementoRegistroBranco2('');
$header->setComplementoRegistroBranco3('');

$header->setNomeCedente(mb_strtoupper('NOME CEDENTE LTDA'));
$header->setPrefixoAgencia('1234');
$header->setPrefixoAgenciaDV('1');
$header->setContaCorrente('1231231');
$header->setContaCorrenteDV('1');
$header->setNumeroConvenioLider($seqConvenio);
$header->setNomeCedente($this->removerAcentos($convenioBancario['orgao']['pessoa']['nome']));
$header->setPrefixoAgencia($convenioBancario['agencia']);
$header->setPrefixoAgenciaDV($convenioBancario['digitoAgencia']);
$header->setContaCorrente($convenioBancario['conta']);
$header->setContaCorrenteDV($convenioBancario['digitoConta']);
$header->setNumeroConvenioLider($convenioBancario['convenio']);

$header->setSequencialRegistro('1');

Expand All @@ -159,7 +161,7 @@ protected function header()
protected function trailler()
{
$trailler = new Trailler();
$trailler->setSequencialRegistro(123);
$trailler->setSequencialRegistro('');
$this->trailler = $trailler;
return $this;
}
Expand Down Expand Up @@ -199,11 +201,8 @@ public function montarArquivo(string $path)
$trailler->setSequencialRegistro($sequencialRegistro);
$stringTrailler = $trailler->getTraillerToString();

fwrite($file, $stringTrailler);
fwrite($file, $stringTrailler . "\n");
fclose($file);
return $fullpath;
}



}
24 changes: 18 additions & 6 deletions src/Builder/BradescoCnab400Builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace Umbrella\Ya\RemessaBoleto\Builder;

use \DateTime;
use Umbrella\Ya\RemessaBoleto\Enum\BancoEnum;
use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\Bradesco\Transacao;
use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\Bradesco\Header;
Expand Down Expand Up @@ -68,7 +67,15 @@ protected function transacao()
);

$transacao->setIdentificacaoTituloBanco($this->parseInteger(substr($documento['nossoNumero'], 2, 12)));
$transacao->setDigitoAutoConferencia(mb_substr($documento['nossoNumero'], strlen($documento['nossoNumero']) - 1));
$transacao->setDigitoAutoConferencia(
mb_substr(
$documento['nossoNumero'],
strlen(
$documento['nossoNumero']
) - 1
)
);

$transacao->setNumeroDocumento($documento['numeroDocumento']);
$transacao->setValorTitulo(str_replace(['.', ','], '', $documento['valor']));
$transacao->setNumeroInscricaoPagador($documento['pessoa']['cpfCnpj']);
Expand Down Expand Up @@ -128,7 +135,15 @@ protected function header()
$seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']);

$header = new Header();
$header->setRazaoSocial(mb_strtoupper(mb_substr($this->detalhesBoleto['convenios'][$seqConvenio]['orgao']['descricao'], 0, 30)));
$header->setRazaoSocial(
mb_strtoupper(
mb_substr(
$this->detalhesBoleto['convenios'][$seqConvenio]['orgao']['descricao'],
0,
30
)
)
);
$header->setCodigoEmpresa($this->detalhesBoleto['convenios'][$seqConvenio]['convenio']);
$header->setDataGeracao((new \DateTime())->format('dmy'));
$header->setSequencialRegistro(1);
Expand Down Expand Up @@ -188,7 +203,4 @@ public function montarArquivo(string $path)

return $fullpath;
}



}
Loading

0 comments on commit 2dffce2

Please sign in to comment.