diff --git a/.gitignore b/.gitignore index 27fc9c8..8708354 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ vendor bin build composer.lock -coverage.clover \ No newline at end of file +coverage.clover +.idea diff --git a/README.md b/README.md index a817d64..7b10372 100644 --- a/README.md +++ b/README.md @@ -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 \ No newline at end of file diff --git a/composer.json b/composer.json index 65f6416..4623f05 100644 --- a/composer.json +++ b/composer.json @@ -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" } } diff --git a/index.php b/index.php index e0199f7..ae0cabd 100755 --- a/index.php +++ b/index.php @@ -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 "Bradesco"; echo "
"; echo "SICOOB"; +echo "
"; +echo "Caixa Economica Federal"; +echo "
"; +echo "Banco do Brasil"; echo "
"; if (!$_GET['banco']) {return;} @@ -72,9 +76,9 @@ "digitoConta" => 2, "carteira" => [ "carteira" => 23, - "banco" => 237, + "banco" => 104, "nome" => "09", - "arquivo" => "Bradesco (Com Registro)" + "arquivo" => "CAIXA (Com Registro)" ] ] ], @@ -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" => "WAASNCAR@ASasdASDS.COM.BR", + "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, + ] ] ] ] diff --git a/sequenceDiagram.png b/sequenceDiagram.png new file mode 100644 index 0000000..a2cebbc Binary files /dev/null and b/sequenceDiagram.png differ diff --git a/src/Builder/BBCnab400Builder.php b/src/Builder/BBCnab400Builder.php index c145024..a6885d8 100755 --- a/src/Builder/BBCnab400Builder.php +++ b/src/Builder/BBCnab400Builder.php @@ -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; @@ -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']); @@ -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')); @@ -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(''); @@ -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']); @@ -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'); @@ -159,7 +161,7 @@ protected function header() protected function trailler() { $trailler = new Trailler(); - $trailler->setSequencialRegistro(123); + $trailler->setSequencialRegistro(''); $this->trailler = $trailler; return $this; } @@ -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; } - - - } diff --git a/src/Builder/BradescoCnab400Builder.php b/src/Builder/BradescoCnab400Builder.php index 90726c6..176f433 100755 --- a/src/Builder/BradescoCnab400Builder.php +++ b/src/Builder/BradescoCnab400Builder.php @@ -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; @@ -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']); @@ -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); @@ -188,7 +203,4 @@ public function montarArquivo(string $path) return $fullpath; } - - - } diff --git a/src/Builder/Builder.php b/src/Builder/Builder.php index efe4757..b6f12cb 100755 --- a/src/Builder/Builder.php +++ b/src/Builder/Builder.php @@ -11,7 +11,7 @@ class Builder /** * arquivo que contem os dados da geracao do boleto */ - const CONFIG_FILE = "src/config/params.yml"; + const CONFIG_FILE = "/../config/params.yml"; /** * Builder constructor. @@ -20,8 +20,9 @@ class Builder */ public function __construct(int $bancoIdentificador) { - if (!file_exists(self::CONFIG_FILE)) { - throw new \Exception('Arquivo de configuração nao localizado: {self::CONFIG_FILE}'); + $fileValidator = dirname(__FILE__) . self::CONFIG_FILE; + if (!file_exists($fileValidator)) { + throw new \Exception("Arquivo de configuração nao localizado: {$fileValidator}"); } $this->carregarDadosBoletoBanco($bancoIdentificador); @@ -33,25 +34,26 @@ 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(self::CONFIG_FILE)['cnab400']['bradesco']; + $this->dadosBoleto = Yaml::parseFile($fileValidator)['cnab400']['bradesco']; break; case BancoEnum::SICOOB: - $this->dadosBoleto = Yaml::parseFile(self::CONFIG_FILE)['cnab400']['sicoob']; + $this->dadosBoleto = Yaml::parseFile($fileValidator)['cnab400']['sicoob']; break; case BancoEnum::BANCO_DO_BRASIL: - $this->dadosBoleto = Yaml::parseFile(self::CONFIG_FILE)['cnab400']['bb']; + $this->dadosBoleto = Yaml::parseFile($fileValidator)['cnab400']['bb']; break; case BancoEnum::CEF: - $this->dadosBoleto = Yaml::parseFile(self::CONFIG_FILE)['cnab400']['cef']; + $this->dadosBoleto = Yaml::parseFile($fileValidator)['cnab400']['cef']; break; default: - throw new \Exception("Dados de boleto do banco não localizado {self::CONFIG_FILE}"); + throw new \Exception("Dados de boleto do banco não localizado {$fileValidator}"); break; } } @@ -64,7 +66,9 @@ protected function concatenarDados() $args = func_get_args(); $output = ''; - foreach ($args as $key => $dado) { $output .= "{$dado}"; } + foreach ($args as $dado) { + $output .= "{$dado}"; + } return isset($output) ? $output : ""; } @@ -90,10 +94,14 @@ protected function removerAcentos($string) // muda pra locale que trabalha os acentos setlocale(LC_CTYPE, 'pt_BR.utf-8'); // retira os acentos. - $acentosRemovidos = preg_replace('#[`^~\'´"]#', null, iconv(mb_detect_encoding($string), 'ASCII//TRANSLIT', $string)); + $acentosRemovidos = preg_replace( + '#[`^~\'´"]#', + null, + iconv(mb_detect_encoding($string), 'ASCII//TRANSLIT', $string) + ); // retorna a locale para a que era anterior a manipulação da string. setlocale(LC_CTYPE, $locale); - return $acentosRemovidos; + return strtoupper($acentosRemovidos); } /** @@ -102,7 +110,9 @@ protected function removerAcentos($string) */ protected function getSeqConvenio($arrConvenio) { - foreach($arrConvenio as $key => $value) return $key; + foreach ($arrConvenio as $key => $value) { + return $key; + }; } diff --git a/src/Builder/CEFCnab400Builder.php b/src/Builder/CEFCnab400Builder.php index a4ea460..ec78346 100755 --- a/src/Builder/CEFCnab400Builder.php +++ b/src/Builder/CEFCnab400Builder.php @@ -2,12 +2,11 @@ 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; -use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\Bradesco\File; -use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\Bradesco\Trailler; +use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\CEF\Detalhe; +use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\CEF\Header; +use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\CEF\File; +use Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\CEF\Trailler; class CEFCnab400Builder extends Builder { @@ -52,7 +51,7 @@ public function build() protected function transacao() { $seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']); - $convenioBancario = $this->detalhesBoleto['convenios'][$seqConvenio]; +// $convenioBancario = $this->detalhesBoleto['convenios'][$seqConvenio]; $documentosArrecadacao = $this->detalhesBoleto['transacoes'][$seqConvenio]; $arrTransacoes = []; @@ -73,7 +72,7 @@ protected function transacao() */ protected function header() { - $seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']); +// $seqConvenio = $this->getSeqConvenio($this->detalhesBoleto['convenios']); $header = new Header(); @@ -136,7 +135,4 @@ public function montarArquivo(string $path) return $fullpath; } - - - } diff --git a/src/Builder/SicoobCnab400Builder.php b/src/Builder/SicoobCnab400Builder.php index 4cafab0..8bcec6c 100755 --- a/src/Builder/SicoobCnab400Builder.php +++ b/src/Builder/SicoobCnab400Builder.php @@ -36,7 +36,7 @@ public function __construct(array $detalhesDoBoleto) * funcao para geracao do arquivo de remessa do cnab400 do boleto sicoob * @return string [caminho completo do arquivo de remessa] */ - public function build($path) + public function build() { return $this ->detalhe() @@ -66,9 +66,10 @@ protected function detalhe() $detalhe->setDataEmissao((new \DateTime($documento['dataEmissao']))->format('dmy')); /** dados do convenio */ - $detalhe->setTipoInscricaoBeneficiario(strlen($convenioBancario['orgao']['pessoa']['cpfCnpj']) > 11 ? "02" : "01"); + $detalhe->setTipoInscricaoBeneficiario( + strlen($convenioBancario['orgao']['pessoa']['cpfCnpj']) > 11 ? "02" : "01" + ); $detalhe->setCpfcnpjBeneficiario($convenioBancario['orgao']['pessoa']['cpfCnpj']); - $detalhe->setPrefixoCooperativa($convenioBancario['agencia']); $detalhe->setDigitoVerificadorPrefixoCooperativa($convenioBancario['digitoAgencia']); $detalhe->setContaCorrente($convenioBancario['conta']); @@ -107,8 +108,8 @@ protected function header() $header = new Header(); - $header->setCodigoCliente(substr($convenioBancario['cedente'],0,-1)); - $header->setDigitoVerificadorCodigo(substr($convenioBancario['cedente'],-1)); + $header->setCodigoCliente(substr($convenioBancario['cedente'], 0, -1)); + $header->setDigitoVerificadorCodigo(substr($convenioBancario['cedente'], -1)); $header->setSequencialRegistro(1); $header->setPrefixoCooperativa($convenioBancario['agencia']); @@ -116,7 +117,11 @@ protected function header() $header->setConvenioLider($convenioBancario['convenio']); - $header->setNomeBeneficiario(mb_strtoupper(mb_substr($this->detalhesBoleto['convenios'][$seqConvenio]['orgao']['descricao'], 0, 30))); + $header->setNomeBeneficiario( + mb_strtoupper( + mb_substr($this->detalhesBoleto['convenios'][$seqConvenio]['orgao']['descricao'], 0, 30) + ) + ); $header->setSequencialRemessa($this->detalhesBoleto['totalRemessas']); $header->setDataGeracao((new \DateTime())->format('dmy')); @@ -172,5 +177,4 @@ public function montarArquivo($path) return $fullpath; } - } diff --git a/src/Cnab/Cnab400/BB/Detalhe.php b/src/Cnab/Cnab400/BB/Detalhe.php index 0f08d4f..e8de466 100755 --- a/src/Cnab/Cnab400/BB/Detalhe.php +++ b/src/Cnab/Cnab400/BB/Detalhe.php @@ -2,6 +2,8 @@ namespace Umbrella\Ya\RemessaBoleto\Cnab\Cnab400\BB; +use Zend_Controller_Front; + class Detalhe { @@ -62,7 +64,12 @@ class Detalhe */ public function getIdentificacaoRegistro(): string { - return str_pad(substr($this->identificacaoRegistro,0,1),1,' ',STR_PAD_LEFT); + return str_pad( + substr($this->identificacaoRegistro, 0, 1), + 1, + ' ', + STR_PAD_LEFT + ); } /** @@ -70,7 +77,7 @@ public function getIdentificacaoRegistro(): string */ public function setIdentificacaoRegistro(string $identificacaoRegistro) { - $this->identificacaoRegistro = substr($identificacaoRegistro,0,1); + $this->identificacaoRegistro = str_pad(substr($identificacaoRegistro, 0, 1), 1, ' ', STR_PAD_LEFT); } /** @@ -86,7 +93,7 @@ public function getNumeroPrestacao(): string */ public function setNumeroPrestacao(string $numeroPrestacao) { - $this->numeroPrestacao = str_pad($numeroPrestacao,2,'0',STR_PAD_LEFT); + $this->numeroPrestacao = str_pad(substr($numeroPrestacao, 0, 2), 2, '0', STR_PAD_LEFT); } /** @@ -102,7 +109,7 @@ public function getGrupoValor(): string */ public function setGrupoValor(string $grupoValor) { - $this->grupoValor = str_pad($grupoValor,2,'0',STR_PAD_LEFT); + $this->grupoValor = str_pad(substr($grupoValor, 0, 2), 2, '0', STR_PAD_LEFT); } /** @@ -118,7 +125,7 @@ public function getNumBanco(): string */ public function setNumBanco(string $numBanco) { - $this->numBanco = str_pad($numBanco,3,'0',STR_PAD_LEFT); + $this->numBanco = str_pad(substr($numBanco, 0, 3), 3, '0', STR_PAD_LEFT); } /** @@ -134,7 +141,7 @@ public function getPrefixoAgenciaCobradora(): string */ public function setPrefixoAgenciaCobradora(string $prefixoAgenciaCobradora) { - $this->prefixoAgenciaCobradora = str_pad($prefixoAgenciaCobradora,4,' ',STR_PAD_LEFT); + $this->prefixoAgenciaCobradora = str_pad(substr($prefixoAgenciaCobradora, 0, 4), 4, ' ', STR_PAD_LEFT); } /** @@ -150,7 +157,7 @@ public function getPrefixoAgenciaDVCobranca(): string */ public function setPrefixoAgenciaDVCobranca(string $prefixoAgenciaDVCobranca) { - $this->prefixoAgenciaDVCobranca = str_pad($prefixoAgenciaDVCobranca,1,' ',STR_PAD_LEFT); + $this->prefixoAgenciaDVCobranca = str_pad(substr($prefixoAgenciaDVCobranca, 0, 1), 1, ' ', STR_PAD_LEFT); } /** @@ -166,7 +173,7 @@ public function getComplementoRegistroBranco1(): string */ public function setComplementoRegistroBranco1(string $complementoRegistroBranco1) { - $this->complementoRegistroBranco1 = str_pad($complementoRegistroBranco1,3,' ',STR_PAD_LEFT); + $this->complementoRegistroBranco1 = str_pad(substr($complementoRegistroBranco1,0, 3), 3, ' ', STR_PAD_LEFT); } /** @@ -182,7 +189,7 @@ public function getComplementoRegistroBranco2(): string */ public function setComplementoRegistroBranco2(string $complementoRegistroBranco2) { - $this->complementoRegistroBranco2 = str_pad($complementoRegistroBranco2,3,' ',STR_PAD_LEFT); + $this->complementoRegistroBranco2 = str_pad(substr($complementoRegistroBranco2, 0, 3), 3, ' ', STR_PAD_LEFT); } /** @@ -198,7 +205,7 @@ public function getComplementoRegistroBranco3(): string */ public function setComplementoRegistroBranco3(string $complementoRegistroBranco3) { - $this->complementoRegistroBranco3 = str_pad($complementoRegistroBranco3,1,' ',STR_PAD_LEFT); + $this->complementoRegistroBranco3 = str_pad(substr($complementoRegistroBranco3, 0, 1), 1, ' ', STR_PAD_LEFT); } /** @@ -214,7 +221,7 @@ public function getTipoInscricaoCedente() */ public function setTipoInscricaoCedente($tipoInscricaoCedente) { - $this->tipoInscricaoCedente = str_pad($tipoInscricaoCedente,2,'0',STR_PAD_LEFT); + $this->tipoInscricaoCedente = str_pad(substr($tipoInscricaoCedente, 0, 2), 2, '0', STR_PAD_LEFT); } /** @@ -230,7 +237,7 @@ public function getNumeroCPFCNPJCedente() */ public function setNumeroCPFCNPJCedente($numeroCPFCNPJCedente) { - $this->numeroCPFCNPJCedente = str_pad($numeroCPFCNPJCedente,14,'0',STR_PAD_LEFT); + $this->numeroCPFCNPJCedente = str_pad($numeroCPFCNPJCedente, 14, '0', STR_PAD_LEFT); } /** @@ -246,7 +253,7 @@ public function getPrefixoAgencia() */ public function setPrefixoAgencia($prefixoAgencia) { - $this->prefixoAgencia = str_pad($prefixoAgencia,4,'0',STR_PAD_LEFT); + $this->prefixoAgencia = str_pad(substr($prefixoAgencia, 0, 4), 4, '0', STR_PAD_LEFT); } /** @@ -262,7 +269,7 @@ public function getPrefixoAgenciaDV() */ public function setPrefixoAgenciaDV($prefixoAgenciaDV) { - $this->prefixoAgenciaDV = str_pad($prefixoAgenciaDV,1,'0',STR_PAD_LEFT); + $this->prefixoAgenciaDV = str_pad(substr($prefixoAgenciaDV, 0, 1), 1, '0', STR_PAD_LEFT); } /** @@ -278,7 +285,7 @@ public function getContaCorrenteCedente() */ public function setContaCorrenteCedente($contaCorrenteCedente) { - $this->contaCorrenteCedente = str_pad($contaCorrenteCedente,8,'0',STR_PAD_LEFT); + $this->contaCorrenteCedente = str_pad(substr($contaCorrenteCedente, 0, 8), 8, '0', STR_PAD_LEFT); } /** @@ -294,7 +301,7 @@ public function getContaCorrenteDVCedente() */ public function setContaCorrenteDVCedente($contaCorrenteDVCedente) { - $this->contaCorrenteDVCedente = str_pad($contaCorrenteDVCedente,1,'0',STR_PAD_LEFT); + $this->contaCorrenteDVCedente = str_pad(substr($contaCorrenteDVCedente, 0, 1), 1, '0', STR_PAD_LEFT); } /** @@ -310,7 +317,7 @@ public function getConvenioCobrancaCedente() */ public function setConvenioCobrancaCedente($convenioCobrancaCedente) { - $this->convenioCobrancaCedente = str_pad($convenioCobrancaCedente,7,'0',STR_PAD_LEFT); + $this->convenioCobrancaCedente = str_pad(substr($convenioCobrancaCedente, 0, 7), 7, '0', STR_PAD_LEFT); } /** @@ -326,7 +333,7 @@ public function getCodigoControleEmpresa() */ public function setCodigoControleEmpresa($codigoControleEmpresa) { - $this->codigoControleEmpresa = str_pad($codigoControleEmpresa, 25, ' ', STR_PAD_RIGHT); + $this->codigoControleEmpresa = str_pad(substr($codigoControleEmpresa, 0, 25), 25, ' ', STR_PAD_RIGHT); } /** @@ -342,7 +349,7 @@ public function getNossoNumero() */ public function setNossoNumero($nossoNumero) { - $this->nossoNumero = str_pad($nossoNumero,17,'0',STR_PAD_LEFT); + $this->nossoNumero = str_pad(substr($nossoNumero, 0, 17), 17, '0', STR_PAD_LEFT); } /** @@ -358,7 +365,7 @@ public function getMsgSacadorAvalista() */ public function setMsgSacadorAvalista($msgSacadorAvalista) { - $this->msgSacadorAvalista = str_pad($msgSacadorAvalista,1,' ',STR_PAD_LEFT); + $this->msgSacadorAvalista = str_pad(substr($msgSacadorAvalista, 0,1), 1, ' ', STR_PAD_LEFT); } /** @@ -374,7 +381,7 @@ public function getPrefixoTitulo() */ public function setPrefixoTitulo($prefixoTitulo) { - $this->prefixoTitulo = str_pad($prefixoTitulo,3,'0',STR_PAD_LEFT); + $this->prefixoTitulo = str_pad(substr($prefixoTitulo, 0, 3), 3, ' ', STR_PAD_LEFT); } /** @@ -390,7 +397,7 @@ public function getVariacaoCarteira() */ public function setVariacaoCarteira($variacaoCarteira) { - $this->variacaoCarteira = str_pad($variacaoCarteira,3,'0',STR_PAD_LEFT); + $this->variacaoCarteira = str_pad(substr($variacaoCarteira, 0, 3), 3, '0', STR_PAD_LEFT); } /** @@ -406,7 +413,7 @@ public function getContaCaucao() */ public function setContaCaucao($contaCaucao) { - $this->contaCaucao = str_pad($contaCaucao,1,'0',STR_PAD_LEFT); + $this->contaCaucao = str_pad(substr($contaCaucao, 0, 1), 1, '0', STR_PAD_LEFT); } /** @@ -422,7 +429,7 @@ public function getNumeroBordero() */ public function setNumeroBordero($numeroBordero) { - $this->numeroBordero = str_pad($numeroBordero,6,'0',STR_PAD_LEFT); + $this->numeroBordero = str_pad(substr($numeroBordero, 0, 6), 6, '0', STR_PAD_LEFT); } /** @@ -438,7 +445,7 @@ public function getTipoCobranca() */ public function setTipoCobranca($tipoCobranca) { - $this->tipoCobranca = str_pad($tipoCobranca,5,' ',STR_PAD_LEFT); + $this->tipoCobranca = str_pad(substr($tipoCobranca, 0, 5), 5, ' ', STR_PAD_LEFT); } /** @@ -454,7 +461,7 @@ public function getCarteiraCobranca() */ public function setCarteiraCobranca($carteiraCobranca) { - $this->carteiraCobranca = str_pad($carteiraCobranca,2,'0',STR_PAD_LEFT); + $this->carteiraCobranca = str_pad(substr($carteiraCobranca, 0, 2), 2, '0', STR_PAD_LEFT); } /** @@ -470,7 +477,7 @@ public function getComando() */ public function setComando($comando) { - $this->comando = str_pad($comando,2,'0',STR_PAD_LEFT); + $this->comando = str_pad(substr($comando, 0, 2), 2, '0', STR_PAD_LEFT); } /** @@ -486,7 +493,7 @@ public function getNumTituloCedente() */ public function setNumTituloCedente($numTituloCedente) { - $this->numTituloCedente = str_pad($numTituloCedente,10,' ',STR_PAD_LEFT); + $this->numTituloCedente = str_pad(substr($numTituloCedente, 0, 10), 10, ' ', STR_PAD_LEFT); } /** @@ -502,7 +509,7 @@ public function getDtVencimento() */ public function setDtVencimento($dtVencimento) { - $this->dtVencimento = str_pad($dtVencimento,6,'0',STR_PAD_LEFT); + $this->dtVencimento = str_pad(substr($dtVencimento, 0, 6), 6, '0', STR_PAD_LEFT); } /** @@ -518,7 +525,9 @@ public function getVlTitulo() */ public function setVlTitulo($vlTitulo) { - $this->vlTitulo = str_pad($vlTitulo,13,' ',STR_PAD_LEFT); + $vlTitulo = str_replace($vlTitulo, '.', ''); + + $this->vlTitulo = str_pad(substr($vlTitulo, 0, 13), 13, '0', STR_PAD_LEFT); } /** @@ -534,7 +543,7 @@ public function getEspecieTitulo() */ public function setEspecieTitulo($especieTitulo) { - $this->especieTitulo = str_pad(substr($especieTitulo,0,2),2,' ',STR_PAD_LEFT); + $this->especieTitulo = str_pad(substr($especieTitulo, 0, 2), 2, ' ', STR_PAD_LEFT); } /** @@ -550,7 +559,7 @@ public function getAceiteTitulo() */ public function setAceiteTitulo($aceiteTitulo) { - $this->aceiteTitulo = str_pad(substr($aceiteTitulo,0,1),1,' ',STR_PAD_LEFT); + $this->aceiteTitulo = str_pad(substr($aceiteTitulo, 0, 1), 1, ' ', STR_PAD_LEFT); } /** @@ -566,7 +575,7 @@ public function getDtEmissaoTitulo() */ public function setDtEmissaoTitulo($dtEmissaoTitulo) { - $this->dtEmissaoTitulo = str_pad($dtEmissaoTitulo,6,' ',STR_PAD_LEFT); + $this->dtEmissaoTitulo = str_pad(substr($dtEmissaoTitulo, 0, 6), 6, ' ', STR_PAD_LEFT); } /** @@ -582,7 +591,7 @@ public function getInstrucaoCodificada1() */ public function setInstrucaoCodificada1($instrucaoCodificada1) { - $this->instrucaoCodificada1 = str_pad($instrucaoCodificada1,2,' ',STR_PAD_LEFT); + $this->instrucaoCodificada1 = str_pad(substr($instrucaoCodificada1, 0, 2), 2, ' ', STR_PAD_LEFT); } /** @@ -598,7 +607,7 @@ public function getInstrucaoCodificada2() */ public function setInstrucaoCodificada2($instrucaoCodificada2) { - $this->instrucaoCodificada2 = str_pad($instrucaoCodificada2,2,' ',STR_PAD_LEFT); + $this->instrucaoCodificada2 = str_pad(substr($instrucaoCodificada2, 0, 2), 2, ' ', STR_PAD_LEFT); } /** @@ -614,7 +623,7 @@ public function getJurisMoraDia() */ public function setJurisMoraDia($jurisMoraDia) { - $this->jurisMoraDia = str_pad($jurisMoraDia,13,' ',STR_PAD_LEFT); + $this->jurisMoraDia = str_pad($jurisMoraDia, 13, ' ', STR_PAD_LEFT); } /** @@ -630,7 +639,7 @@ public function getDtLimiteConcessaoDesconto() */ public function setDtLimiteConcessaoDesconto($dtLimiteConcessaoDesconto) { - $this->dtLimiteConcessaoDesconto = str_pad($dtLimiteConcessaoDesconto,6,' ',STR_PAD_LEFT); + $this->dtLimiteConcessaoDesconto = str_pad($dtLimiteConcessaoDesconto, 6, ' ', STR_PAD_LEFT); } /** @@ -646,7 +655,7 @@ public function getVlDesconto() */ public function setVlDesconto($vlDesconto) { - $this->vlDesconto = str_pad($vlDesconto,13,'0',STR_PAD_LEFT); + $this->vlDesconto = str_pad($vlDesconto, 13, '0', STR_PAD_LEFT); } /** @@ -662,7 +671,7 @@ public function getVlIOF() */ public function setVlIOF($vlIOF) { - $this->vlIOF = str_pad($vlIOF,13,'0',STR_PAD_LEFT); + $this->vlIOF = str_pad($vlIOF, 13, '0', STR_PAD_LEFT); } /** @@ -678,7 +687,7 @@ public function getVlAbatimento() */ public function setVlAbatimento($vlAbatimento) { - $this->vlAbatimento = str_pad($vlAbatimento,13,'0',STR_PAD_LEFT); + $this->vlAbatimento = str_pad($vlAbatimento, 13, '0', STR_PAD_LEFT); } /** @@ -694,7 +703,7 @@ public function getTipoOperacaoSacado() */ public function setTipoOperacaoSacado($tipoOperacaoSacado) { - $this->tipoOperacaoSacado = str_pad($tipoOperacaoSacado,2,' ',STR_PAD_LEFT); + $this->tipoOperacaoSacado = str_pad($tipoOperacaoSacado, 2, ' ', STR_PAD_LEFT); } /** @@ -710,7 +719,7 @@ public function getCpfCnpjSacado() */ public function setCpfCnpjSacado($cpfCnpjSacado) { - $this->cpfCnpjSacado = str_pad($cpfCnpjSacado,14,' ',STR_PAD_LEFT); + $this->cpfCnpjSacado = str_pad($cpfCnpjSacado, 14, ' ', STR_PAD_LEFT); } /** @@ -726,7 +735,7 @@ public function getNomeSacado() */ public function setNomeSacado($nomeSacado) { - $this->nomeSacado = str_pad(substr($nomeSacado,0,37),37,' ',STR_PAD_LEFT); + $this->nomeSacado = str_pad(substr($nomeSacado, 0, 37), 37, ' ', STR_PAD_LEFT); } /** @@ -742,7 +751,7 @@ public function getEnderecoSacado() */ public function setEnderecoSacado($enderecoSacado) { - $this->enderecoSacado = str_pad(substr($enderecoSacado,0,40),40,' ',STR_PAD_LEFT); + $this->enderecoSacado = str_pad(substr($enderecoSacado, 0, 40), 40, ' ', STR_PAD_LEFT); } /** @@ -758,7 +767,7 @@ public function getBairroSacado() */ public function setBairroSacado($bairroSacado) { - $this->bairroSacado = str_pad(substr($bairroSacado,0,12),12,' ',STR_PAD_LEFT); + $this->bairroSacado = str_pad(substr($bairroSacado, 0, 12), 12, ' ', STR_PAD_LEFT); } /** @@ -774,7 +783,7 @@ public function getCepSacado() */ public function setCepSacado($cepSacado) { - $this->cepSacado = str_pad(substr($cepSacado,0,8),8,' ',STR_PAD_LEFT); + $this->cepSacado = str_pad(substr($cepSacado, 0, 8), 8, ' ', STR_PAD_LEFT); } /** @@ -790,7 +799,7 @@ public function getCidadeSacado() */ public function setCidadeSacado($cidadeSacado) { - $this->cidadeSacado = str_pad(substr($cidadeSacado,0,15),15,' ',STR_PAD_LEFT); + $this->cidadeSacado = str_pad(substr($cidadeSacado, 0, 15), 15, ' ', STR_PAD_LEFT); } /** @@ -806,7 +815,7 @@ public function getUfCidadeSacado() */ public function setUfCidadeSacado($ufCidadeSacado) { - $this->ufCidadeSacado = str_pad(substr($ufCidadeSacado,0,2),2,' ',STR_PAD_LEFT); + $this->ufCidadeSacado = str_pad(substr($ufCidadeSacado, 0, 2), 2, ' ', STR_PAD_LEFT); } /** @@ -822,7 +831,12 @@ public function getObsMensagemSacadorAvalista() */ public function setObsMensagemSacadorAvalista($obsMensagemSacadorAvalista) { - $this->obsMensagemSacadorAvalista = str_pad(substr($obsMensagemSacadorAvalista,0,40),40,' ',STR_PAD_LEFT); + $this->obsMensagemSacadorAvalista = str_pad( + substr($obsMensagemSacadorAvalista, 0, 40), + 40, + ' ', + STR_PAD_LEFT + ); } /** @@ -838,7 +852,7 @@ public function getNumDiasProtesto() */ public function setNumDiasProtesto($numDiasProtesto) { - $this->numDiasProtesto = str_pad($numDiasProtesto,2,' ',STR_PAD_LEFT); + $this->numDiasProtesto = str_pad($numDiasProtesto, 2, ' ', STR_PAD_LEFT); } /** @@ -854,7 +868,7 @@ public function getSequencialRegistro() */ public function setSequencialRegistro($sequencialRegistro) { - $this->sequencialRegistro = str_pad(substr($sequencialRegistro,0,6),6,'0',STR_PAD_LEFT); + $this->sequencialRegistro = str_pad(substr($sequencialRegistro, 0, 6), 6, '0', STR_PAD_LEFT); } /** @@ -901,7 +915,7 @@ public function getDetalhesToString() . $this->getVlIOF() . $this->getVlAbatimento() . $this->getTipoOperacaoSacado() - . $this->getNumeroCPFCNPJCedente() + . $this->getCpfCnpjSacado() . $this->getNomeSacado() . $this->getComplementoRegistroBranco2() . $this->getEnderecoSacado() @@ -914,13 +928,13 @@ public function getDetalhesToString() . $this->getComplementoRegistroBranco3() . $this->getSequencialRegistro() ; - + echo "