OSDN Git Service

t#30322:create provider license import func
[pettanr/pettanr.git] / app / models / provider_license.rb
1 class ProviderLicense < ActiveRecord::Base
2   belongs_to :provider
3   
4   validates :provider_id, :presence => true, :numericality => true, :existence => true
5   validates :providers_license_id, :presence => true, :numericality => true
6   validates :demanders_license_id, :presence => true, :numericality => true
7   
8   def self.exist_license pid, plid
9     ProviderLicense.find_by_provider_id_and_providers_license_id(pid, plid) != nil
10   end
11   
12   def self.import pid, providers_licenses
13     res = []
14     ProviderLicense.transaction do
15       providers_licenses.each do |providers_license|
16         if ProviderLicense.exist_license(pid, providers_license['id'])
17         else
18           if demander_license = License.find_by_name(providers_license['name'])
19             pl = ProviderLicense.new :provider_id => pid, :providers_license_id => providers_license['id'], :demanders_license_id => demander_license.id
20             unless pl.save
21               res << providers_license
22             end
23           else
24             res << providers_license
25           end
26         end
27       end
28       raise ActiveRecord::Rollback if res.any?
29     end
30     res
31   end
32   
33 end