65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
module OrbitModel
 | 
						|
 | 
						|
  module Approval
 | 
						|
 | 
						|
    def self.included(base)
 | 
						|
      base.extend ClassMethods
 | 
						|
      base.class_eval do
 | 
						|
        field :is_checked, :type => Boolean, :default => false
 | 
						|
        field :is_pending, :type => Boolean, :default => true 
 | 
						|
        field :is_rejected, :type => Boolean, :default => false 
 | 
						|
        field :not_checked_reason
 | 
						|
        class_variable_defined?(:@@can_display) ? \
 | 
						|
        class_variable_set(:@@can_display, class_variable_get(:@@can_display).merge({is_checked: true, is_rejected: false, is_pending: false})) : \
 | 
						|
        class_variable_set(:@@can_display, {is_checked: true, is_rejected: false, is_pending: false})
 | 
						|
        send :include, InstanceMethods
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    module InstanceMethods
 | 
						|
 | 
						|
      def de_pending
 | 
						|
        self.is_pending = false
 | 
						|
      end
 | 
						|
 | 
						|
      def de_pending!
 | 
						|
        de_pending
 | 
						|
        self.save!
 | 
						|
      end
 | 
						|
 | 
						|
      def is_checked?
 | 
						|
        !self.is_pending && self.is_checked && (self.is_rejected == false)
 | 
						|
      end
 | 
						|
      
 | 
						|
      def is_pending?
 | 
						|
        self.is_pending
 | 
						|
      end
 | 
						|
      
 | 
						|
      def is_rejected?
 | 
						|
        !self.is_pending && self.is_rejected && (self.is_rejected == true)
 | 
						|
      end
 | 
						|
      
 | 
						|
      def proc_check(check,not_pass_info = "")
 | 
						|
        self.is_checked = true
 | 
						|
        if check == "true"
 | 
						|
          self.is_rejected = false
 | 
						|
        elsif check == "false"
 | 
						|
          self.is_rejected = true
 | 
						|
          self.not_checked_reason = not_pass_info
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
    end
 | 
						|
 | 
						|
    module ClassMethods
 | 
						|
 | 
						|
      define_method(:can_display) do
 | 
						|
        where(class_variable_get(:@@can_display))
 | 
						|
      end unless method_defined? :can_display
 | 
						|
 | 
						|
    end
 | 
						|
    
 | 
						|
  end
 | 
						|
 | 
						|
end
 |