commit old uncommitted chnges from Holger (mail value based calculator)
This commit is contained in:
parent
9fbc21d25a
commit
3274db3d7e
|
@ -0,0 +1,47 @@
|
|||
# AGPLv3 sysmocom s.f.m.c. GmbH
|
||||
|
||||
module Spree
|
||||
class Calculator::SysmocomMailValueCalculator < Calculator
|
||||
|
||||
def self.description
|
||||
I18n.t(:sysmocom_mail_value_based)
|
||||
end
|
||||
|
||||
def total_value_no_tax(o)
|
||||
item_total = o.line_items.map(&:amount).sum
|
||||
item_total
|
||||
end
|
||||
|
||||
def extract_iso_code(o)
|
||||
if o.kind_of?(Spree::Shipment)
|
||||
return o.address.country.iso
|
||||
end
|
||||
return o.ship_address.country.iso
|
||||
end
|
||||
|
||||
def compute(object)
|
||||
# This could be more than an order but not right now
|
||||
shipping_value = total_value_no_tax(object)
|
||||
iso_code = extract_iso_code(object)
|
||||
|
||||
base = 6.5
|
||||
if iso_code == 'DE'
|
||||
base = 4.6
|
||||
end
|
||||
|
||||
# We need to add insurance..
|
||||
if shipping_value < 30
|
||||
# Plain registered letter
|
||||
return base
|
||||
elsif shipping_value > 300
|
||||
# Stops making sense to send it..
|
||||
return 200
|
||||
end
|
||||
|
||||
return base + (((shipping_value.round / 100) + 1) * 1.5)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -4,3 +4,4 @@ en:
|
|||
dhl_label: "DHL Label (CSV)"
|
||||
dhls: DHL
|
||||
sysmocom_value_based: sysmocom Value Based
|
||||
sysmocom_mail_value_based: sysmocom Mail Value Based
|
||||
|
|
|
@ -20,7 +20,8 @@ module SysmocomDhl
|
|||
initializer "sysmocom_shipping_calculators" do |app|
|
||||
app.config.spree.calculators.shipping_methods += [
|
||||
# ActiveSupport magic to search a model...
|
||||
Spree::Calculator::SysmocomValueCalculator
|
||||
Spree::Calculator::SysmocomValueCalculator,
|
||||
Spree::Calculator::SysmocomMailValueCalculator
|
||||
]
|
||||
end
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|||
# s.homepage = 'http://www.rubyonrails.org'
|
||||
# s.rubyforge_project = 'actionmailer'
|
||||
|
||||
s.files = `git ls-files`.split("\n")
|
||||
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
||||
#s.files = `git ls-files`.split("\n")
|
||||
#s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
||||
s.require_path = 'lib'
|
||||
s.requirements << 'none'
|
||||
|
||||
|
|
Loading…
Reference in New Issue