Archive: ComponentOwl Rails app, DB backups, go redirect script
This commit is contained in:
82
app/models/bmt_order.rb
Normal file
82
app/models/bmt_order.rb
Normal file
@@ -0,0 +1,82 @@
|
||||
class BmtOrder < Order
|
||||
|
||||
require 'cgi'
|
||||
|
||||
attr_accessor :ordernotification
|
||||
attr_writer :product_id, :customer_email, :customer_first_name, :customer_last_name, :customer_company
|
||||
|
||||
def before_validation
|
||||
self.order_attributes ||= ordernotification
|
||||
self.orderable = BmtProduct.find(product_id)
|
||||
self.license_key = license_key_from_attributes
|
||||
|
||||
customer = Customer.find_by_email(customer_email)
|
||||
if customer
|
||||
self.customer = customer
|
||||
else
|
||||
self.customer_attributes = {
|
||||
:first_name => customer_first_name,
|
||||
:last_name => customer_last_name,
|
||||
:email => customer_email,
|
||||
:company => customer_company,
|
||||
:customer_attributes => customer_attributes,
|
||||
:customer_ref => customer_ref
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def xml_response
|
||||
if errors.any?
|
||||
{ :ordernotification => { :errorcode => 1, :errormessage => errors.full_messages.join("\n") } }.to_xml(:root => "response")
|
||||
else
|
||||
{ :ordernotification => "" }.to_xml(:root => "response")
|
||||
end
|
||||
end
|
||||
|
||||
def license_key_from_attributes
|
||||
if order_attributes[:orderitem][:registrationkeys].is_a?(Hash)
|
||||
order_attributes[:orderitem][:registrationkeys][:keydata]
|
||||
else
|
||||
order_attributes[:orderitem][:registrationkeys]
|
||||
end
|
||||
end
|
||||
|
||||
def customer_ref
|
||||
if order_attributes
|
||||
@customer_ref ||= order_attributes[:orderparameters]
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def product_id
|
||||
@product_id ||= orderable ? orderable.bmtID : order_attributes[:orderitem][:productid]
|
||||
end
|
||||
|
||||
alias :bmtID :product_id
|
||||
|
||||
def customer_email
|
||||
@customer_email ||= order_attributes[:customer][:billing][:email]
|
||||
end
|
||||
|
||||
def customer_first_name
|
||||
@customer_first_name ||= order_attributes[:customer][:billing][:firstname]
|
||||
end
|
||||
|
||||
def customer_last_name
|
||||
@customer_last_name ||= order_attributes[:customer][:billing][:lastname]
|
||||
end
|
||||
|
||||
def customer_company
|
||||
@customer_company ||= order_attributes[:customer][:billing][:company]
|
||||
end
|
||||
|
||||
def customer_attributes
|
||||
if order_attributes
|
||||
@customer_attributes ||= order_attributes[:customer]
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user