Sha256: f09c0f8e8d4bbf517a6c34d1ff76403b2b9dd617a89f748262283f4e99d0240b

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 KB

Contents

module Bbrcobranca
  module Boleto
    class SantanderAdimplere < Base
      attr_writer :codigo_barras, :nosso_numero_dv

      def codigo_barras
        instance_variable_get("@codigo_barras").remove(/\D/) rescue nil
      end

      def nosso_numero_dv
        instance_variable_get("@nosso_numero_dv").remove(/\D/) rescue nil
      end

      def logotipo
        if Bbrcobranca.configuration.gerador == :rghost_carne
          File.join(
            brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "santander_carne.eps"
          )
        else
          File.join(brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "santander.eps")
        end
      end

      validates_presence_of :convenio, message: 'não pode estar em branco.'
      validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
      validates_length_of :convenio, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
      validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'

      def initialize(campos = {})
        campos = { carteira: '102' }.merge!(campos)
        super(campos)
      end

      def banco
        '033'
      end

      def conta_corrente=(valor)
        @conta_corrente = valor.to_s.rjust(9, '0') if valor
      end

      def convenio=(valor)
        @convenio = valor.to_s.rjust(7, '0') if valor
      end

      def nosso_numero=(valor)
        @nosso_numero = valor.to_s.rjust(8, '0') if valor
      end

      def nosso_numero_boleto
        if nosso_numero_dv
          "#{nosso_numero}-#{nosso_numero_dv}"
        else
          nosso_numero
        end
      end

      def agencia_conta_boleto
        "#{agencia}/#{convenio}"
      end

      def codigo_barras_segunda_parte
        "9#{convenio}00000#{nosso_numero}#{nosso_numero_dv}0#{carteira}"
      end

      private

      def brcobranca_path
        @brcobranca_path ||= Gem::Specification.find_by_name("bbrcobranca").gem_dir
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bbrcobranca-0.0.1 lib/bbrcobranca/boleto/santander_adimplere.rb