lib/brcobranca/remessa/cnab400/base.rb in brcobranca-9.2.4 vs lib/brcobranca/remessa/cnab400/base.rb in brcobranca-10.0.0

- old
+ new

@@ -1,6 +1,7 @@ -# -*- encoding: utf-8 -*- +# frozen_string_literal: true + module Brcobranca module Remessa module Cnab400 class Base < Brcobranca::Remessa::Base validates_presence_of :carteira, message: 'não pode estar em branco.' @@ -52,11 +53,12 @@ # Registro detalhe do arquivo remessa # # Este metodo deve ser sobrescrevido na classe do banco # def monta_detalhe(_pagamento, _sequencial) - raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' + raise Brcobranca::NaoImplementado, + 'Sobreescreva este método na classe referente ao banco que você esta criando' end # Gera o arquivo com os registros # # @return [String] @@ -67,52 +69,63 @@ contador = 1 ret = [monta_header] pagamentos.each do |pagamento| contador += 1 ret << monta_detalhe(pagamento, contador) - if pagamento.codigo_multa.to_i > 0 && self.respond_to?(:monta_detalhe_multa) + if pagamento.codigo_multa.to_i.positive? && respond_to?(:monta_detalhe_multa) contador += 1 ret << monta_detalhe_multa(pagamento, contador) end + + # Adiciona registro de desconto adicional + if pagamento.valor_segundo_desconto.to_f.positive? && respond_to?(:monta_descontos_adicionais) + contador += 1 + ret << monta_descontos_adicionais(pagamento, contador) + end end ret << monta_trailer(contador + 1) - remittance = ret.join("\n").to_ascii.upcase + remittance = ret.join("\n").remove_accents.upcase remittance << "\n" - remittance.encode(remittance.encoding, universal_newline: true).encode(remittance.encoding, crlf_newline: true) + remittance.encode(remittance.encoding, universal_newline: true).encode(remittance.encoding, + crlf_newline: true) end # Informacoes referentes a conta do cedente # # Este metodo deve ser sobrescrevido na classe do banco # def info_conta - raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' + raise Brcobranca::NaoImplementado, + 'Sobreescreva este método na classe referente ao banco que você esta criando' end # Numero do banco na camara de compensacao # # Este metodo deve ser sobrescrevido na classe do banco # def cod_banco - raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' + raise Brcobranca::NaoImplementado, + 'Sobreescreva este método na classe referente ao banco que você esta criando' end # Nome por extenso do banco cobrador # # Este metodo deve ser sobrescrevido na classe do banco # def nome_banco - raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' + raise Brcobranca::NaoImplementado, + 'Sobreescreva este método na classe referente ao banco que você esta criando' end # Complemento do registro header # # Este metodo deve ser sobrescrevido na classe do banco # def complemento - raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' + raise Brcobranca::NaoImplementado, + 'Sobreescreva este método na classe referente ao banco que você esta criando' end end end end end