class Customer < ApplicationRecord #self.primary_key = :customer_id before_create :generate_custom_id has_many :orders has_many :sales validates_presence_of :name, :contact_no, :email validates :contact_no, uniqueness: true validates :email, uniqueness: true paginates_per 50 def self.get_member_account(customer) membership = MembershipSetting.find_by_membership_type("paypar_url") memberaction = MembershipAction.find_by_membership_type("get_all_member_account") merchant_uid = memberaction.merchant_account_id.to_s auth_token = memberaction.auth_token.to_s url = membership.gateway_url.to_s + memberaction.gateway_url.to_s # urltest =self.url_exist?(url) begin response = HTTParty.get(url, :body => { membership_id: customer.membership_id,merchant_uid:merchant_uid,auth_token:auth_token}.to_json, :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }, :timeout => 10 ) rescue Net::OpenTimeout response = { status: false } end return response; end def self.search(search) if search # find(:all, :conditions => ['name LIKE ? OR contact_no LIKE ?', "%#{search}%", "%#{search}%"]) where("name LIKE ? OR contact_no LIKE ?", "%#{search}%", "%#{search}%",) else find(:all) end end # require "net/http" # def self.url_exist?(url_string) # url = URI.parse(url_string) # req = Net::HTTP.new(url.host, url.port) # puts "hhhhhhhhhhhh" # puts req.to_json # req.use_ssl = (url.scheme == 'https') # puts "aaaaaaaaaaaa" # puts req.use_ssl? # path = url.path if url.path.present? # puts "bbbbbbbbbbbbb" # puts path # res = req.request_head(path || '/') # puts "cccccccccccccc" # puts res.to_json # puts "ddddddddd" # puts res.kind_of?(Net::HTTPRedirection) # if res.kind_of?(Net::HTTPRedirection) # url_exist?(res['location']) # Go after any redirect and make sure you can access the redirected URL # else # ! %W(4 5).include?(res.code[0]) # Not from 4xx or 5xx families # end # rescue Errno::ENOENT # false #false if can't find the server # end # def self.search(search) # where("name LIKE ? OR contact_no LIKE ?", "%#{search}%", "%#{search}%",) # end def lastest_invoices sales.where(:customer_id => self.id).order("created_at desc").limit(5) end private def generate_custom_id self.customer_id = SeedGenerator.generate_id(self.class.name, "CUS") end end