Sha256: 61bccb40c5852c2418b5f00828d647441ea819791ace95576d726d5a6f6b2d92

Contents?: true

Size: 1.83 KB

Versions: 14

Compression:

Stored size: 1.83 KB

Contents

# -*- encoding: utf-8 -*-
require 'unidecoder'

module Brcobranca
  module Remessa
    class Base
      # pagamentos da remessa (cada pagamento representa um registro detalhe no arquivo)
      attr_accessor :pagamentos
      # empresa mae (razao social)
      attr_accessor :empresa_mae
      # agencia (sem digito verificador)
      attr_accessor :agencia
      # numero da conta corrente
      attr_accessor :conta_corrente
      # digito verificador da conta corrente
      attr_accessor :digito_conta
      # carteira do cedente
      attr_accessor :carteira
      # sequencial remessa (num. sequencial que nao pode ser repetido nem zerado)
      attr_accessor :sequencial_remessa
      # aceite (A = ACEITO/N = NAO ACEITO)
      attr_accessor :aceite

      # Validações do Rails 3
      include ActiveModel::Validations

      validates_presence_of :pagamentos, :empresa_mae, message: 'não pode estar em branco.'

      validates_each :pagamentos do |record, attr, value|
        if value.is_a? Array
          record.errors.add(attr, 'não pode estar vazio.') if value.empty?
          value.each do |pagamento|
            if pagamento.is_a? Brcobranca::Remessa::Pagamento
              if pagamento.invalid?
                pagamento.errors.full_messages.each { |msg| record.errors.add(attr, msg) }
              end
            else
              record.errors.add(attr, 'cada item deve ser um objeto Pagamento.')
            end
          end
        else
          record.errors.add(attr, 'deve ser uma coleção (Array).')
        end
      end

      # Nova instancia da classe
      #
      # @param campos [Hash]
      #
      def initialize(campos = {})
        campos = { aceite: 'N' }.merge!(campos)
        campos.each do |campo, valor|
          send "#{campo}=", valor
        end

        yield self if block_given?
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
brcobranca-6.3.0 lib/brcobranca/remessa/base.rb
brcobranca-6.2.2 lib/brcobranca/remessa/base.rb
brcobranca-6.2.1 lib/brcobranca/remessa/base.rb
brcobranca-6.2.0 lib/brcobranca/remessa/base.rb
brcobranca-6.1.12 lib/brcobranca/remessa/base.rb
brcobranca-6.1.11 lib/brcobranca/remessa/base.rb
brcobranca-6.1.10 lib/brcobranca/remessa/base.rb
brcobranca-6.1.9 lib/brcobranca/remessa/base.rb
brcobranca-6.1.8 lib/brcobranca/remessa/base.rb
brcobranca-6.1.7 lib/brcobranca/remessa/base.rb
brcobranca-6.1.6 lib/brcobranca/remessa/base.rb
brcobranca-6.1.5 lib/brcobranca/remessa/base.rb
brcobranca-6.1.4 lib/brcobranca/remessa/base.rb
brcobranca-6.1.3 lib/brcobranca/remessa/base.rb