Sha256: 1ac4be47c3f77bdaabeb0795e358718ccfa3eec16aa3823b2e061494cf5f4b99

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

module Msip
  module Concerns
    module Models
      module Trelacion
        extend ActiveSupport::Concern

        include Msip::Basica
        included do
          self.table_name = 'msip_trelacion'
          has_many :persona_trelacion, foreign_key: "id_trelacion", 
            validate: true, class_name: 'Msip::PersonaTrelacion'
         
          # no puede usarse cuando es la misma
          #belongs_to :invtrelacion, foreign_key: "inverso", 
          #validate: true, class_name: 'Msip::Trelacion'

          validates :id, presence: true, allow_blank: false, 
            length: { maximum: 2} 
          validates_uniqueness_of :id, case_sensitive: false
          validates :inverso, presence: true, allow_blank: false, 
            length: { maximum: 2} 
          validates :observaciones, length: { maximum: 200}

          validate :inverso_existe

          def inverso_existe
            if (inverso.present? && inverso != id &&
                Msip::Trelacion.where(id: inverso).take == nil)
              errors.add :inverso, "no existe relacion con ese código"
            end
          end

          def id=(val)
            self[:id] = val.upcase.squish if val
          end

          def inverso=(val)
            self[:inverso] = val.upcase.squish if val
          end

        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
msip-2.2.0.alfa3 lib/msip/concerns/models/trelacion.rb
msip-2.2.0.alfa2 lib/msip/concerns/models/trelacion.rb
msip-2.2a2 lib/msip/concerns/models/trelacion.rb