spree_correios_shipping 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +1 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +270 -0
- data/LICENSE +26 -0
- data/README.md +45 -0
- data/Rakefile +29 -0
- data/Versionfile +14 -0
- data/app/assets/javascripts/spree/backend/product_packages/edit.js.coffee +4 -0
- data/app/assets/javascripts/spree/backend/product_packages/index.js.coffee +28 -0
- data/app/assets/javascripts/spree/backend/product_packages/new.js.coffee +7 -0
- data/app/controllers/spree/admin/correios_shipping_settings_controller.rb +18 -0
- data/app/controllers/spree/admin/product_packages_controller.rb +12 -0
- data/app/controllers/spree/checkout_controller_decorator.rb +9 -0
- data/app/models/spree/calculator/shipping/correios/base.rb +165 -0
- data/app/models/spree/calculator/shipping/correios/e_sedex.rb +16 -0
- data/app/models/spree/calculator/shipping/correios/e_sedex_express.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/e_sedex_grupo1.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/e_sedex_grupo2.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/e_sedex_grupo3.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/e_sedex_prioritario.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/overweight.rb +25 -0
- data/app/models/spree/calculator/shipping/correios/pac.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/pac_com_contrato.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex10.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_a_cobrar.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_a_cobrar_com_contrato.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_com_contrato1.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_com_contrato2.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_com_contrato3.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_com_contrato4.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_com_contrato5.rb +17 -0
- data/app/models/spree/calculator/shipping/correios/sedex_hoje.rb +17 -0
- data/app/models/spree/product_package.rb +9 -0
- data/app/models/spree/stock/splitter/correios_package.rb +51 -0
- data/app/models/spree/stock/splitter/correios_weight.rb +31 -0
- data/app/models/spree/stock_location_decorator.rb +10 -0
- data/app/overrides/spree/admin/shared/sub_menu/_configuration/add_correios_shipping_settings_tab.html.erb.deface +3 -0
- data/app/views/spree/admin/correios_shipping_settings/edit.html.erb +28 -0
- data/app/views/spree/admin/product_packages/_form.html.erb +31 -0
- data/app/views/spree/admin/product_packages/edit.html.erb +20 -0
- data/app/views/spree/admin/product_packages/index.html.erb +49 -0
- data/app/views/spree/admin/product_packages/new.html.erb +14 -0
- data/app/views/spree/admin/shared/_correios_tabs.html.erb +11 -0
- data/config/locales/en.yml +7 -0
- data/config/locales/pt-BR.yml +19 -0
- data/config/routes.rb +7 -0
- data/db/migrate/20150303111955_create_product_packages.rb +11 -0
- data/lib/generators/spree_correios_shipping/install/install_generator.rb +19 -0
- data/lib/spree/correios_shipping_configuration.rb +10 -0
- data/lib/spree/shipping_error.rb +3 -0
- data/lib/spree_correios_shipping/engine.rb +69 -0
- data/lib/spree_correios_shipping/version.rb +3 -0
- data/lib/spree_correios_shipping.rb +3 -0
- data/script/rails +7 -0
- data/spec/spec_helper.rb +44 -0
- data/spree_correios_shipping.gemspec +30 -0
- metadata +201 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class ESedexExpress < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"e-Sedex Express - 81035"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:e_sedex_express
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class ESedexGrupo1 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"e-Sedex Grupo 1 - 81868"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:e_sedex_grupo_1
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class ESedexGrupo2 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"e-Sedex Grupo 2 - 81833"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:e_sedex_grupo_2
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class ESedexGrupo3 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"e-Sedex Grupo 3 - 81850"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:e_sedex_grupo_3
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class ESedexPrioritario < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"e-Sedex Prioritario - 81027"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:e_sedex_prioritario
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class Overweight < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Acima de 30kg"
|
8
|
+
end
|
9
|
+
|
10
|
+
def available?(package)
|
11
|
+
package_weight > 30 ? true : false
|
12
|
+
end
|
13
|
+
|
14
|
+
def compute_package(package)
|
15
|
+
0.00
|
16
|
+
end
|
17
|
+
|
18
|
+
def deliver_time(package)
|
19
|
+
nil
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class Pac < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Pac sem contrato - 41106"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:pac
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class PacComContrato < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Pac com contrato - 41068"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:pac_com_contrato
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class Sedex < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex sem contrato - 40010"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class Sedex10 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex 10 sem contrato - 40215"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_10
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexACobrar < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex a cobrar sem contrato - 40045"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_a_cobrar
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexACobrarComContrato < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex a cobrar com contrato - 40126"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_a_cobrar_com_contrato
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexComContrato1 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex com Contrato 1 - 40096"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_com_contrato_1
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexComContrato2 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex com Contrato 2 - 40436"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_com_contrato_2
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexComContrato3 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex com Contrato 3 - 40444"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_com_contrato_3
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexComContrato4 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex com Contrato 4 - 40568"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_com_contrato_4
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexComContrato5 < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex com Contrato 5 - 40606"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_com_contrato_5
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Calculator::Shipping
|
3
|
+
module Correios
|
4
|
+
class SedexHoje < Spree::Calculator::Shipping::Correios::Base
|
5
|
+
|
6
|
+
def self.description
|
7
|
+
"Sedex hoje sem contrato - 40290"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.service_code
|
11
|
+
:sedex_hoje
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Spree
|
2
|
+
module Stock
|
3
|
+
module Splitter
|
4
|
+
class CorreiosPackage < Spree::Stock::Splitter::Base
|
5
|
+
attr_reader :packer, :next_splitter
|
6
|
+
|
7
|
+
def available_product_packages
|
8
|
+
ProductPackage.all
|
9
|
+
end
|
10
|
+
|
11
|
+
def split(packages)
|
12
|
+
packages.each do |package|
|
13
|
+
removed_contents = reduce package
|
14
|
+
packages << build_package(removed_contents) unless removed_contents.empty?
|
15
|
+
end
|
16
|
+
return_next packages
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
def reduce(package)
|
21
|
+
removed = []
|
22
|
+
while package.weight > self.threshold.to_f
|
23
|
+
break if package.contents.size == 1
|
24
|
+
removed << package.contents.shift
|
25
|
+
end
|
26
|
+
removed
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def organize_packages(packages)
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def boxes_volume
|
35
|
+
boxes_array = available_product_packages.inject([]) { |arr, box| arr << (box.widht * box.height * box.depth) }
|
36
|
+
boxes_array.sort
|
37
|
+
end
|
38
|
+
|
39
|
+
def total_package_volume(package)
|
40
|
+
package.contents.inject(0.0) { |volume, item| volume += (item.width * item.height * item.depth ) }
|
41
|
+
end
|
42
|
+
|
43
|
+
def package_fits_inside_box(package)
|
44
|
+
package_volume = total_package_volume(package)
|
45
|
+
box = boxes_volume.detect { |box| package_volume <= box }
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Spree
|
2
|
+
module Stock
|
3
|
+
module Splitter
|
4
|
+
class CorreiosWeight < Spree::Stock::Splitter::Base
|
5
|
+
attr_reader :packer, :next_splitter
|
6
|
+
|
7
|
+
cattr_accessor :threshold do
|
8
|
+
Spree::CorreiosShipping::Config[:max_shipping_weight]
|
9
|
+
end
|
10
|
+
|
11
|
+
def split(packages)
|
12
|
+
packages.each do |package|
|
13
|
+
removed_contents = reduce package
|
14
|
+
packages << build_package(removed_contents) unless removed_contents.empty?
|
15
|
+
end
|
16
|
+
return_next packages
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
def reduce(package)
|
21
|
+
removed = []
|
22
|
+
while package.weight > self.threshold.to_f
|
23
|
+
break if package.contents.size == 1
|
24
|
+
removed << package.contents.shift
|
25
|
+
end
|
26
|
+
removed
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Spree::StockLocation.class_eval do
|
2
|
+
validates_presence_of :address1, :city, :zipcode, :country_id
|
3
|
+
validate :state_id_or_state_name_is_present
|
4
|
+
|
5
|
+
def state_id_or_state_name_is_present
|
6
|
+
if state_id.nil? && state_name.nil?
|
7
|
+
errors.add(:state_name, "can't be blank")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<% content_for :page_title do %>
|
2
|
+
<%= Spree.t(:correios_shipping_settings) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= render 'spree/admin/shared/correios_tabs', current: 'Correios Settings' %>
|
6
|
+
|
7
|
+
<%= form_tag admin_correios_shipping_settings_path, :method => :put do %>
|
8
|
+
<fieldset class="no-border-top">
|
9
|
+
<div data-hook="admin_correios_shipping_settings_form_fields">
|
10
|
+
<div class="row">
|
11
|
+
<div class="col-md-12" data-hook="preferences_fields">
|
12
|
+
<% @preferences.each do |key|
|
13
|
+
type = @config.preference_type(key) %>
|
14
|
+
|
15
|
+
<%= label_tag(key, t(key, scope: :correios_shipping) + ': ') + tag(:br) if type != :boolean %>
|
16
|
+
<%= preference_field_tag(key,@config[key], :type => type) %>
|
17
|
+
<%= label_tag(key, t(key, scope: :correios_shipping)) + tag(:br) if type == :boolean %>
|
18
|
+
|
19
|
+
<% end %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</fieldset>
|
24
|
+
<div class="form-actions" data-hook="buttons">
|
25
|
+
<%= button Spree.t('actions.update') %>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
28
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div data-hook="admin_product_package_form_fields" class="row">
|
2
|
+
|
3
|
+
<div class="col-md-3">
|
4
|
+
<div data-hook="length" class="form-group">
|
5
|
+
<%= f.label Spree.t(:length) %>
|
6
|
+
<%= f.text_field :length, class: 'form-control' %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="col-md-3">
|
11
|
+
<div data-hook="width" class="form-group">
|
12
|
+
<%= f.label Spree.t(:width) %>
|
13
|
+
<%= f.text_field :width, class: 'form-control' %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="col-md-3">
|
18
|
+
<div data-hook="height" class="form-group">
|
19
|
+
<%= f.label Spree.t(:height) %>
|
20
|
+
<%= f.text_field :height, class: 'form-control' %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="col-md-3">
|
25
|
+
<div data-hook="weight" class="form-group">
|
26
|
+
<%= f.label Spree.t(:weight) %>
|
27
|
+
<%= f.text_field :weight, class: 'form-control' %>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
</div>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<% content_for :page_title do %>
|
2
|
+
<%= Spree.t(:product_packages) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= render :partial => 'spree/admin/shared/correios_tabs', :locals => { :current => 'Product Packages' } %>
|
6
|
+
<%= render 'spree/admin/shared/error_messages', :target => @product_package %>
|
7
|
+
|
8
|
+
<%= form_for [:admin, @product_package], :html => { :multipart => true } do |f| %>
|
9
|
+
<div class="well">
|
10
|
+
<fieldset data-hook="edit_product_package">
|
11
|
+
<legend align="center"><%= Spree.t(:edit_package) %></legend>
|
12
|
+
<%= render :partial => 'form', :locals => { :f => f } %>
|
13
|
+
<%= render :partial => 'spree/admin/shared/edit_resource_links' %>
|
14
|
+
</fieldset>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<% content_for :head do %>
|
19
|
+
<%= javascript_include_tag 'spree/backend/product_packages/edit.js' %>
|
20
|
+
<% end %>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<% content_for :head do %>
|
2
|
+
<%= javascript_include_tag 'spree/backend/product_packages/index.js' %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= render 'spree/admin/shared/correios_tabs', current: 'Product Packages' %>
|
6
|
+
<%= render 'spree/admin/shared/error_messages', :target => @product_package %>
|
7
|
+
|
8
|
+
<% content_for :page_title do %>
|
9
|
+
<%= Spree.t(:product_packages) %>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<% content_for :page_actions do %>
|
13
|
+
<%= button_link_to(Spree.t(:new_package), new_admin_product_package_url(@product_package), :id => 'new_product_package_link', :class => 'btn-success spree_add_fields pull-right', icon: 'add') %>
|
14
|
+
<% end %>
|
15
|
+
<div id="product_packages" data-hook></div>
|
16
|
+
|
17
|
+
<% unless @product_packages.any? %>
|
18
|
+
<div class="no-objects-found alert alert-info">
|
19
|
+
<%= Spree.t(:no_product_package_found) %>,
|
20
|
+
<%= link_to(Spree.t(:add_one), spree.new_admin_product_package_path(@product_package)) if can? :create, Spree::Product %>!
|
21
|
+
</div>
|
22
|
+
<% else %>
|
23
|
+
<table class="table">
|
24
|
+
<thead data-hook="option_header">
|
25
|
+
<tr data-hook="product_packages_header">
|
26
|
+
<th><%= Spree.t(:length) %></th>
|
27
|
+
<th><%= Spree.t(:width) %></th>
|
28
|
+
<th><%= Spree.t(:height) %></th>
|
29
|
+
<th><%= Spree.t(:weight) %></th>
|
30
|
+
<th class="actions"></th>
|
31
|
+
</tr>
|
32
|
+
</thead>
|
33
|
+
<tbody id="product_packages" data-hook>
|
34
|
+
<% @product_packages.each do |package| %>
|
35
|
+
<tr id="<%= dom_id(package) %>" data-hook="product_package_row">
|
36
|
+
<td><%= package.length %></td>
|
37
|
+
<td><%= package.width %></td>
|
38
|
+
<td><%= package.height %></td>
|
39
|
+
<td><%= package.weight %></td>
|
40
|
+
<td class="actions actions-2 text-right">
|
41
|
+
<%= link_to_edit package, :no_text => true, :data => {:action => 'edit'} %>
|
42
|
+
|
43
|
+
<%= link_to_delete package, { :url => admin_product_package_url(package), :no_text => true }%>
|
44
|
+
</td>
|
45
|
+
</tr>
|
46
|
+
<% end %>
|
47
|
+
</tbody>
|
48
|
+
</table>
|
49
|
+
<% end %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= render :partial => 'spree/admin/shared/correios_tabs', :locals => { :current => 'Product Packages' } %>
|
2
|
+
<%= render 'spree/admin/shared/error_messages', :target => @product_package %>
|
3
|
+
|
4
|
+
<%= form_for [:admin, @product_package], :html => { :multipart => true } do |f| %>
|
5
|
+
<div class="well">
|
6
|
+
<fieldset data-hook="new_product_package">
|
7
|
+
<legend align="center"><%= Spree.t(:new_package) %></legend>
|
8
|
+
<%= render :partial => 'form', :locals => { :f => f } %>
|
9
|
+
<%= render :partial => 'spree/admin/shared/new_resource_links' %>
|
10
|
+
</fieldset>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<%= javascript_include_tag 'spree/backend/product_packages/new.js' %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% content_for :sidebar do %>
|
2
|
+
<ul class="nav nav-pills nav-stacked" data-hook="admin_correios_settings_tabs">
|
3
|
+
<%= content_tag :li, :class => ('active' if current == 'Correios Settings') do %>
|
4
|
+
<%= link_to_with_icon 'edit', Spree.t(:correios_settings), edit_admin_correios_shipping_settings_path %>
|
5
|
+
<% end if can?(:admin, current_store) %>
|
6
|
+
|
7
|
+
<%= content_tag :li, :class => ('active' if current == 'Product Packages') do %>
|
8
|
+
<%= link_to_with_icon 'gift', Spree.t(:product_packages), admin_product_packages_path %>
|
9
|
+
<% end if can?(:admin, current_store) %>
|
10
|
+
</ul>
|
11
|
+
<% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
pt-BR:
|
2
|
+
or: ou
|
3
|
+
correios_shipping_settings: 'Preferências dos Correios (ECT)'
|
4
|
+
spree:
|
5
|
+
edit_package: Editar Embalagem
|
6
|
+
correios_shipping_settings: 'Preferências dos Correios (ECT)'
|
7
|
+
correios_settings: Preferências
|
8
|
+
product_packages: Embalagens de Produto
|
9
|
+
new_package: Nova Embalagem
|
10
|
+
no_product_package_found: Nenhuma embalagem encontrada
|
11
|
+
length: Comprimento
|
12
|
+
correios_shipping:
|
13
|
+
id_correios: Identificação Correios
|
14
|
+
password_correios: Senha (Fornecida pela ECT)
|
15
|
+
services: Serviços (utilize "_" ao invés de espaços e separe por vírgula). Não altera a menos que tenha certeza do que está fazendo!
|
16
|
+
default_item_weight: Peso do item padrão (quando peso não for fornecido)
|
17
|
+
split_shipments: Permitir criar mais de um pacote para envio (Se o pedido passar das confs máximas da ECT)
|
18
|
+
max_shipping_weight: Peso máximo aceito pela ECT
|
19
|
+
|
data/config/routes.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateProductPackages < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :spree_product_packages do |t|
|
4
|
+
t.integer "length", :default => 0, :null => false
|
5
|
+
t.integer "width", :default => 0, :null => false
|
6
|
+
t.integer "height", :default => 0, :null => false
|
7
|
+
t.integer "weight", :default => 0, :null => false
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|