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)"
|
dhl_label: "DHL Label (CSV)"
|
||||||
dhls: DHL
|
dhls: DHL
|
||||||
sysmocom_value_based: sysmocom Value Based
|
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|
|
initializer "sysmocom_shipping_calculators" do |app|
|
||||||
app.config.spree.calculators.shipping_methods += [
|
app.config.spree.calculators.shipping_methods += [
|
||||||
# ActiveSupport magic to search a model...
|
# ActiveSupport magic to search a model...
|
||||||
Spree::Calculator::SysmocomValueCalculator
|
Spree::Calculator::SysmocomValueCalculator,
|
||||||
|
Spree::Calculator::SysmocomMailValueCalculator
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
||||||
# s.homepage = 'http://www.rubyonrails.org'
|
# s.homepage = 'http://www.rubyonrails.org'
|
||||||
# s.rubyforge_project = 'actionmailer'
|
# s.rubyforge_project = 'actionmailer'
|
||||||
|
|
||||||
s.files = `git ls-files`.split("\n")
|
#s.files = `git ls-files`.split("\n")
|
||||||
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
#s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
||||||
s.require_path = 'lib'
|
s.require_path = 'lib'
|
||||||
s.requirements << 'none'
|
s.requirements << 'none'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue