From acd9d39e115a07d43e37fe1225ee9df0422f79da Mon Sep 17 00:00:00 2001 From: Bryan Mahoney Date: Sat, 26 Apr 2014 07:46:26 -0400 Subject: [PATCH 1/8] Quick support to filter out domestic orders from shipstation --- app/controllers/spree/shipstation_controller.rb | 2 +- app/models/spree/shipment_decorator.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/spree/shipstation_controller.rb b/app/controllers/spree/shipstation_controller.rb index 70011bf..b9c6b4e 100644 --- a/app/controllers/spree/shipstation_controller.rb +++ b/app/controllers/spree/shipstation_controller.rb @@ -6,7 +6,7 @@ class ShipstationController < Spree::StoreController include Spree::DateParamHelper def export - @shipments = Spree::Shipment.exportable + @shipments = Spree::Shipment.exportable.international .between(date_param(:start_date), date_param(:end_date)) .page(params[:page]) diff --git a/app/models/spree/shipment_decorator.rb b/app/models/spree/shipment_decorator.rb index fa736cc..866e5ae 100644 --- a/app/models/spree/shipment_decorator.rb +++ b/app/models/spree/shipment_decorator.rb @@ -5,6 +5,10 @@ def self.between(from, to) joins(:order).where('(spree_shipments.updated_at > ? AND spree_shipments.updated_at < ?) OR (spree_orders.updated_at > ? AND spree_orders.updated_at < ?)',from, to, from, to) end + def self.international + where('spree_addresses.country_id = ?', ::Spree::Country.find_by_name('Canada').id).joins(:address) + end + private def send_shipped_email Spree::ShipmentMailer.shipped_email(self).deliver if Spree::Config.send_shipped_email From 9f39e012467c965d771db570e0f6711bcdb0196e Mon Sep 17 00:00:00 2001 From: David Ang Date: Thu, 1 May 2014 05:29:40 +0800 Subject: [PATCH 2/8] bump up spree version to 2.3 --- spree_shipstation.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spree_shipstation.gemspec b/spree_shipstation.gemspec index e7c53e0..90a7cf5 100644 --- a/spree_shipstation.gemspec +++ b/spree_shipstation.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_core', '~> 1.3' + s.add_dependency 'spree_core', '~> 2.3.0.beta' s.add_development_dependency 'capybara', '~> 1.1.2' s.add_development_dependency 'coffee-rails' From 9dc9eb87b6560c8c4ef650b661370af649e54866 Mon Sep 17 00:00:00 2001 From: David Ang Date: Thu, 1 May 2014 23:36:53 +0800 Subject: [PATCH 3/8] remove international option --- app/controllers/spree/shipstation_controller.rb | 2 +- app/models/spree/shipment_decorator.rb | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/app/controllers/spree/shipstation_controller.rb b/app/controllers/spree/shipstation_controller.rb index b9c6b4e..70011bf 100644 --- a/app/controllers/spree/shipstation_controller.rb +++ b/app/controllers/spree/shipstation_controller.rb @@ -6,7 +6,7 @@ class ShipstationController < Spree::StoreController include Spree::DateParamHelper def export - @shipments = Spree::Shipment.exportable.international + @shipments = Spree::Shipment.exportable .between(date_param(:start_date), date_param(:end_date)) .page(params[:page]) diff --git a/app/models/spree/shipment_decorator.rb b/app/models/spree/shipment_decorator.rb index 866e5ae..fa736cc 100644 --- a/app/models/spree/shipment_decorator.rb +++ b/app/models/spree/shipment_decorator.rb @@ -5,10 +5,6 @@ def self.between(from, to) joins(:order).where('(spree_shipments.updated_at > ? AND spree_shipments.updated_at < ?) OR (spree_orders.updated_at > ? AND spree_orders.updated_at < ?)',from, to, from, to) end - def self.international - where('spree_addresses.country_id = ?', ::Spree::Country.find_by_name('Canada').id).joins(:address) - end - private def send_shipped_email Spree::ShipmentMailer.shipped_email(self).deliver if Spree::Config.send_shipped_email From 921950e63147f6200d357ca4ac5879ab1a54a7eb Mon Sep 17 00:00:00 2001 From: Jordan Moncharmont Date: Wed, 16 Jul 2014 21:12:49 +0200 Subject: [PATCH 4/8] make scope activerecord 4.1 compatible --- app/models/spree/shipment_decorator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/spree/shipment_decorator.rb b/app/models/spree/shipment_decorator.rb index fa736cc..94a7826 100644 --- a/app/models/spree/shipment_decorator.rb +++ b/app/models/spree/shipment_decorator.rb @@ -1,5 +1,5 @@ Spree::Shipment.class_eval do - scope :exportable, joins(:order).where('spree_shipments.state != ?', 'pending') + scope :exportable, -> { joins(:order).where('spree_shipments.state != ?', 'pending') } def self.between(from, to) joins(:order).where('(spree_shipments.updated_at > ? AND spree_shipments.updated_at < ?) OR (spree_orders.updated_at > ? AND spree_orders.updated_at < ?)',from, to, from, to) From 0f03a2c7aa423e9294cd1da56b96e7a18227ba22 Mon Sep 17 00:00:00 2001 From: Marc Leglise Date: Tue, 28 Oct 2014 13:55:50 -0700 Subject: [PATCH 5/8] Bump spree_core dependency to 2.4.0.beta --- spree_shipstation.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spree_shipstation.gemspec b/spree_shipstation.gemspec index 8a3bc6b..298b76c 100644 --- a/spree_shipstation.gemspec +++ b/spree_shipstation.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_core', '~> 2.3.0.beta' + s.add_dependency 'spree_core', '~> 2.4.0.beta' s.add_development_dependency 'capybara', '~> 1.1.2' s.add_development_dependency 'coffee-rails' From 340acb8c18b40cb8687eff63853e28c278bd2290 Mon Sep 17 00:00:00 2001 From: Marc Leglise Date: Fri, 21 Nov 2014 14:32:37 -0800 Subject: [PATCH 6/8] =?UTF-8?q?ShipmentNotice.locate:=20find=20order?= =?UTF-8?q?=E2=80=99s=20first=20shipment.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix for old Spree where each order only had 1 shipment. --- lib/spree/shipment_notice.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/spree/shipment_notice.rb b/lib/spree/shipment_notice.rb index 2dbc0bd..6f7cd84 100644 --- a/lib/spree/shipment_notice.rb +++ b/lib/spree/shipment_notice.rb @@ -17,7 +17,7 @@ def apply def locate if Spree::Config.shipstation_number == :order order = Spree::Order.find_by_number(@number) - @shipment = order.try(:shipment) + @shipment = order.try(:shipments).try(:first) else @shipment = Spree::Shipment.find_by_number(@number) end From 980654ce0ef70d5a2c728d9ad282f09ad83eb909 Mon Sep 17 00:00:00 2001 From: Marc Leglise Date: Fri, 21 Nov 2014 14:51:10 -0800 Subject: [PATCH 7/8] ShipmentNotice.update: call shipment.ship! instead of manually setting values. --- lib/spree/shipment_notice.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/spree/shipment_notice.rb b/lib/spree/shipment_notice.rb index 6f7cd84..48ee962 100644 --- a/lib/spree/shipment_notice.rb +++ b/lib/spree/shipment_notice.rb @@ -27,9 +27,10 @@ def update @shipment.update_attribute(:tracking, @tracking) unless @shipment.shipped? - @shipment.reload.update_attribute(:state, 'shipped') - @shipment.inventory_units.each &:ship! - @shipment.touch :shipped_at + @shipment.ship! + # @shipment.reload.update_attribute(:state, 'shipped') + # @shipment.inventory_units.each &:ship! + # @shipment.touch :shipped_at end true From 05c2ed8e12d30c438211861ab3fc3fb1542c4236 Mon Sep 17 00:00:00 2001 From: Marc Leglise Date: Fri, 21 Nov 2014 14:53:00 -0800 Subject: [PATCH 8/8] ShipmentNotice.update: reload before calling ship! --- lib/spree/shipment_notice.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/spree/shipment_notice.rb b/lib/spree/shipment_notice.rb index 48ee962..570026d 100644 --- a/lib/spree/shipment_notice.rb +++ b/lib/spree/shipment_notice.rb @@ -27,7 +27,7 @@ def update @shipment.update_attribute(:tracking, @tracking) unless @shipment.shipped? - @shipment.ship! + @shipment.reload.ship! # @shipment.reload.update_attribute(:state, 'shipped') # @shipment.inventory_units.each &:ship! # @shipment.touch :shipped_at