correios_gem 1.4.2 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/correios_gem.gemspec +29 -0
  3. data/lib/SRO/requests/track_shippings.rb +31 -45
  4. data/lib/{credentials.rb → auxiliars/credentials.rb} +0 -0
  5. data/lib/auxiliars/environments.rb +94 -0
  6. data/lib/auxiliars/exception.rb +5 -0
  7. data/lib/auxiliars/helper.rb +404 -0
  8. data/lib/correios_gem.rb +22 -24
  9. data/lib/pricefier/requests/calculate_deadline.rb +27 -45
  10. data/lib/pricefier/requests/calculate_price.rb +34 -53
  11. data/lib/pricefier/requests/calculate_price_deadline.rb +49 -63
  12. data/lib/pricefier/requests/calculate_price_fac.rb +21 -46
  13. data/lib/pricefier/requests/list_services.rb +26 -42
  14. data/lib/reverse_logistics/requests/calculate_ticket_number_check_digit.rb +10 -21
  15. data/lib/reverse_logistics/requests/cancel_shipping.rb +13 -23
  16. data/lib/reverse_logistics/requests/create_shippings.rb +22 -36
  17. data/lib/reverse_logistics/requests/create_shippings_with_collection.rb +17 -33
  18. data/lib/reverse_logistics/requests/request_ticket_numbers.rb +13 -35
  19. data/lib/reverse_logistics/requests/track_shipping.rb +18 -39
  20. data/lib/reverse_logistics/requests/track_shippings_by_date.rb +19 -45
  21. data/lib/sigep/auxiliars/shipping_xml.rb +100 -0
  22. data/lib/sigep/requests/calculate_label_number_check_digit.rb +13 -27
  23. data/lib/sigep/requests/cancel_shipping.rb +12 -25
  24. data/lib/sigep/requests/check_card_status.rb +11 -27
  25. data/lib/sigep/requests/check_service_availability.rb +12 -39
  26. data/lib/sigep/requests/create_shippings.rb +20 -24
  27. data/lib/sigep/requests/request_label_numbers.rb +11 -17
  28. data/lib/sigep/requests/request_shippings_xml.rb +14 -53
  29. data/lib/sigep/requests/search_available_additional_services.rb +12 -20
  30. data/lib/sigep/requests/search_customer.rb +15 -37
  31. data/lib/sigep/requests/search_zip_code.rb +11 -16
  32. data/lib/sigep/requests/track_shippings.rb +19 -51
  33. metadata +22 -19
  34. data/lib/SRO/client.rb +0 -25
  35. data/lib/SRO/helper.rb +0 -118
  36. data/lib/SRO/requests/track_shippings_list.rb +0 -144
  37. data/lib/correios_exception.rb +0 -11
  38. data/lib/pricefier/client.rb +0 -20
  39. data/lib/pricefier/helper.rb +0 -72
  40. data/lib/pricefier/requests/calculate_deadline_with_date.rb +0 -102
  41. data/lib/pricefier/requests/calculate_deadline_with_restrictions.rb +0 -102
  42. data/lib/pricefier/requests/calculate_price_deadline_with_date.rb +0 -142
  43. data/lib/pricefier/requests/calculate_price_deadline_with_restrictions.rb +0 -142
  44. data/lib/pricefier/requests/calculate_price_with_date.rb +0 -125
  45. data/lib/pricefier/requests/list_services_star.rb +0 -87
  46. data/lib/reverse_logistics/client.rb +0 -34
  47. data/lib/reverse_logistics/helper.rb +0 -95
  48. data/lib/sigep/client.rb +0 -29
  49. data/lib/sigep/helper.rb +0 -234
@@ -1,15 +1,16 @@
1
+ require 'nokogiri'
2
+ require 'savon'
3
+
4
+ require_relative 'auxiliars/environments'
5
+ require_relative 'auxiliars/helper'
6
+ require_relative 'auxiliars/credentials'
7
+
1
8
  # Pricefier
2
9
  require_relative 'pricefier/requests/calculate_deadline'
3
- require_relative 'pricefier/requests/calculate_deadline_with_date'
4
- require_relative 'pricefier/requests/calculate_deadline_with_restrictions'
5
10
  require_relative 'pricefier/requests/calculate_price'
6
11
  require_relative 'pricefier/requests/calculate_price_deadline'
7
- require_relative 'pricefier/requests/calculate_price_deadline_with_date'
8
- require_relative 'pricefier/requests/calculate_price_deadline_with_restrictions'
9
12
  require_relative 'pricefier/requests/calculate_price_fac'
10
- require_relative 'pricefier/requests/calculate_price_with_date'
11
13
  require_relative 'pricefier/requests/list_services'
12
- require_relative 'pricefier/requests/list_services_star'
13
14
 
14
15
  # Reverse Logistics
15
16
  require_relative 'reverse_logistics/requests/calculate_ticket_number_check_digit'
@@ -35,9 +36,6 @@ require_relative 'sigep/requests/track_shippings'
35
36
 
36
37
  # SRO
37
38
  require_relative 'SRO/requests/track_shippings'
38
- require_relative 'SRO/requests/track_shippings_list'
39
-
40
- require_relative 'credentials'
41
39
 
42
40
  module Correios
43
41
  def self.test
@@ -54,31 +52,31 @@ module Correios
54
52
 
55
53
  module Pricefier
56
54
  def self.calculate_deadline(data = {})
57
- CalculateDeadline.new(data).request
55
+ CalculateDeadline.new(data).request('CalcPrazo')
58
56
  end
59
57
 
60
58
  def self.calculate_deadline_with_date(data = {})
61
- CalculateDeadlineWithDate.new(data).request
59
+ CalculateDeadline.new(data).request('CalcPrazoData')
62
60
  end
63
61
 
64
62
  def self.calculate_deadline_with_restrictions(data = {})
65
- CalculateDeadlineWithRestrictions.new(data).request
66
- end
67
-
68
- def self.calculate_price(data = {})
69
- CalculatePrice.new(data).request
63
+ CalculateDeadline.new(data).request('CalcPrazoRestricao')
70
64
  end
71
65
 
72
66
  def self.calculate_price_deadline(data = {})
73
- CalculatePriceDeadline.new(data).request
67
+ CalculatePriceDeadline.new(data).request('CalcPrecoPrazo')
74
68
  end
75
69
 
76
70
  def self.calculate_price_deadline_with_date(data = {})
77
- CalculatePriceDeadlineWithDate.new(data).request
71
+ CalculatePriceDeadline.new(data).request('CalcPrecoPrazoData')
78
72
  end
79
73
 
80
74
  def self.calculate_price_deadline_with_restrictions(data = {})
81
- CalculatePriceDeadlineWithRestrictions.new(data).request
75
+ CalculatePriceDeadline.new(data).request('CalcPrecoPrazoRestricao')
76
+ end
77
+
78
+ def self.calculate_price(data = {})
79
+ CalculatePrice.new(data).request('CalcPreco')
82
80
  end
83
81
 
84
82
  def self.calculate_price_fac(data = {})
@@ -86,15 +84,15 @@ module Correios
86
84
  end
87
85
 
88
86
  def self.calculate_price_with_date(data = {})
89
- CalculatePriceWithDate.new(data).request
87
+ CalculatePriceWithDate.new(data).request('CalcPrecoData')
90
88
  end
91
89
 
92
90
  def self.list_services(data = {})
93
- ListServices.new(data).request
91
+ ListServices.new(data).request('ListaServicos')
94
92
  end
95
93
 
96
94
  def self.list_services_star(data = {})
97
- ListServicesSTAR.new(data).request
95
+ ListServices.new(data).request('ListaServicosSTAR')
98
96
  end
99
97
  end
100
98
 
@@ -176,11 +174,11 @@ module Correios
176
174
 
177
175
  module SRO
178
176
  def self.track_shippings(data = {})
179
- TrackShippings.new(data).request
177
+ TrackShippings.new(data).request('buscaEventos')
180
178
  end
181
179
 
182
180
  def self.track_shippings_list(data = {})
183
- TrackShippingsList.new(data).request
181
+ TrackShippings.new(data).request('buscaEventosLista')
184
182
  end
185
183
  end
186
184
  end
@@ -1,37 +1,31 @@
1
- require 'savon'
2
- require 'nokogiri'
3
-
4
- require_relative '../client'
5
- require_relative '../helper'
6
- require_relative '../../correios_exception.rb'
7
-
8
1
  module Correios
9
2
  module Pricefier
10
- class CalculateDeadline < CorreiosException
11
- HELPER = Helper.new
12
- CLIENT = Client.new
13
-
3
+ class CalculateDeadline < Helper
14
4
  def initialize(data = {})
15
5
  @show_request = data[:show_request]
6
+
16
7
  @service_codes = data[:service_codes]
17
8
  @source_zip_code = data[:source_zip_code]
18
9
  @target_zip_code = data[:target_zip_code]
10
+ @reference_date = data[:reference_date]
19
11
  super()
20
12
  end
21
13
 
22
- def request
14
+ def request(method)
15
+ @method = method
16
+ @method_snake = method.underscore
17
+
23
18
  puts xml if @show_request == true
24
19
  begin
25
- format_response(CLIENT.client.call(:calc_prazo,
26
- soap_action: 'http://tempuri.org/CalcPrazo',
27
- xml: xml).to_hash)
20
+ format_response(Pricefier.client.call(
21
+ @method_snake.to_sym,
22
+ soap_action: "http://tempuri.org/#{@method}",
23
+ xml: xml
24
+ ).to_hash)
28
25
  rescue Savon::SOAPFault => error
29
- generate_exception(error)
26
+ generate_soap_fault_exception(error)
30
27
  rescue Savon::HTTPError => error
31
- if error.http.code == 401
32
- generate_exception("Unauthorized (#{error.http.code}).")
33
- end
34
- generate_exception("Unknown HTTP error (#{error.http.code}).")
28
+ generate_http_exception(error.http.code)
35
29
  end
36
30
  end
37
31
 
@@ -39,12 +33,15 @@ module Correios
39
33
 
40
34
  def xml
41
35
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
42
- xml['soap'].Envelope(HELPER.namespaces) do
36
+ xml['soap'].Envelope(Pricefier.namespaces) do
43
37
  xml['soap'].Body do
44
- xml['ns1'].CalcPrazo do
45
- xml.nCdServico HELPER.format_service_codes(@service_codes)
38
+ xml['ns1'].send(@method) do
39
+ xml.nCdServico array_to_string_comma(@service_codes)
46
40
  xml.sCepOrigem @source_zip_code
47
41
  xml.sCepDestino @target_zip_code
42
+ if @method != 'CalcPrazo'
43
+ xml.sDtCalculo date_to_string(@reference_date)
44
+ end
48
45
  end
49
46
  end
50
47
  end
@@ -52,46 +49,31 @@ module Correios
52
49
  end
53
50
 
54
51
  def format_response(response)
55
- response = response[:calc_prazo_response][:calc_prazo_result]
52
+ response = response["#{@method_snake}_response".to_sym]["#{@method_snake}_result".to_sym]
56
53
 
57
54
  services = response[:servicos][:c_servico]
58
55
  services = [services] if services.is_a?(Hash)
59
56
 
60
- formatted_services = []
61
- services.each do |service|
62
- formatted_services << format_service(service)
63
- end
64
-
65
- {
66
- services: formatted_services
67
- }
57
+ { services: services.map { |s| format_service(s) } }
68
58
  end
69
59
 
70
60
  def format_service(service)
71
61
  if [0, 10, 11].include?(service[:erro].to_i)
72
62
  {
73
63
  code: service[:codigo],
74
- delivery_at_home: HELPER.convert_string_to_bool(
75
- service[:entrega_domiciliar]
76
- ),
77
- delivery_on_saturdays: HELPER.convert_string_to_bool(
78
- service[:entrega_sabado]
79
- ),
64
+ delivery_at_home: string_to_bool(service[:entrega_domiciliar]),
65
+ delivery_on_saturdays: string_to_bool(service[:entrega_sabado]),
80
66
  note: service[:obs_fim],
81
67
  deadline: {
82
68
  days: service[:prazo_entrega].to_i,
83
- date: HELPER.convert_string_to_date(
84
- service[:data_max_entrega]
85
- ),
69
+ date: string_to_date(service[:data_max_entrega])
86
70
  }
87
71
  }
88
72
  else
89
73
  {
90
74
  code: service[:codigo],
91
- error: {
92
- code: service[:erro],
93
- description: service[:msg_erro]
94
- }
75
+ error: { code: service[:erro],
76
+ description: service[:msg_erro] }
95
77
  }
96
78
  end
97
79
  end
@@ -1,20 +1,10 @@
1
- require 'savon'
2
- require 'nokogiri'
3
-
4
- require_relative '../client'
5
- require_relative '../helper'
6
- require_relative '../../correios_exception.rb'
7
-
8
1
  module Correios
9
2
  module Pricefier
10
- class CalculatePrice < CorreiosException
11
- HELPER = Helper.new
12
- CLIENT = Client.new
13
-
3
+ class CalculatePrice < Helper
14
4
  def initialize(data = {})
15
5
  @credentials = Correios.credentials
16
-
17
6
  @show_request = data[:show_request]
7
+
18
8
  @service_codes = data[:service_codes]
19
9
  @source_zip_code = data[:source_zip_code]
20
10
  @target_zip_code = data[:target_zip_code]
@@ -22,22 +12,25 @@ module Correios
22
12
  @own_hands = data[:own_hands]
23
13
  @receipt_notification = data[:receipt_notification]
24
14
  @declared_value = data[:declared_value]
15
+ @reference_date = data[:reference_date]
25
16
  super()
26
17
  end
27
18
 
28
- def request
19
+ def request(method)
20
+ @method = method
21
+ @method_snake = method.underscore
22
+
29
23
  puts xml if @show_request == true
30
24
  begin
31
- format_response(CLIENT.client.call(:calc_preco,
32
- soap_action: 'http://tempuri.org/CalcPreco',
33
- xml: xml).to_hash)
25
+ format_response(Pricefier.client.call(
26
+ @method_snake.to_sym,
27
+ soap_action: "http://tempuri.org/#{@method}",
28
+ xml: xml
29
+ ).to_hash)
34
30
  rescue Savon::SOAPFault => error
35
- generate_exception(error)
31
+ generate_soap_fault_exception(error)
36
32
  rescue Savon::HTTPError => error
37
- if error.http.code == 401
38
- generate_exception("Unauthorized (#{error.http.code}).")
39
- end
40
- generate_exception("Unknown HTTP error (#{error.http.code}).")
33
+ generate_http_exception(error.http.code)
41
34
  end
42
35
  end
43
36
 
@@ -45,25 +38,26 @@ module Correios
45
38
 
46
39
  def xml
47
40
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
48
- xml['soap'].Envelope(HELPER.namespaces) do
41
+ xml['soap'].Envelope(Pricefier.namespaces) do
49
42
  xml['soap'].Body do
50
- xml['ns1'].CalcPreco do
43
+ xml['ns1'].send(@method) do
51
44
  xml.nCdEmpresa @credentials.administrative_code
52
45
  xml.sDsSenha @credentials.sigep_password
53
- xml.nCdServico HELPER.format_service_codes(@service_codes)
46
+ xml.nCdServico array_to_string_comma(@service_codes)
54
47
  xml.sCepOrigem @source_zip_code
55
48
  xml.sCepDestino @target_zip_code
56
- xml.nCdFormato HELPER.object_type(@object[:type])
57
- xml.nVlPeso @object[:weight].to_f/1000
49
+ xml.nCdFormato pricefier_object_type(@object[:type])
50
+ xml.nVlPeso @object[:weight].to_f / 1000
58
51
  xml.nVlComprimento @object[:length] || 0
59
52
  xml.nVlAltura @object[:height] || 0
60
53
  xml.nVlLargura @object[:width] || 0
61
54
  xml.nVlDiametro @object[:diameter] || 0
62
- xml.sCdMaoPropria HELPER.convert_bool_to_string(@own_hands)
63
- xml.sCdAvisoRecebimento HELPER.convert_bool_to_string(
64
- @receipt_notification
65
- )
55
+ xml.sCdMaoPropria bool_to_string(@own_hands)
56
+ xml.sCdAvisoRecebimento bool_to_string(@receipt_notification)
66
57
  xml.nVlValorDeclarado @declared_value || 0
58
+ if @method == 'CalcPrecoData'
59
+ xml.sDtCalculo date_to_string(@reference_date)
60
+ end
67
61
  end
68
62
  end
69
63
  end
@@ -71,19 +65,12 @@ module Correios
71
65
  end
72
66
 
73
67
  def format_response(response)
74
- response = response[:calc_preco_response][:calc_preco_result]
68
+ response = response["#{@method_snake}_response".to_sym]["#{@method_snake}_result".to_sym]
75
69
 
76
70
  services = response[:servicos][:c_servico]
77
71
  services = [services] if services.is_a?(Hash)
78
72
 
79
- formatted_services = []
80
- services.each do |service|
81
- formatted_services << format_service(service)
82
- end
83
-
84
- {
85
- services: formatted_services
86
- }
73
+ { services: services.map { |s| format_service(s) } }
87
74
  end
88
75
 
89
76
  def format_service(service)
@@ -92,29 +79,23 @@ module Correios
92
79
  code: service[:codigo],
93
80
  prices: {
94
81
  additional_serivces: {
95
- own_hands: HELPER.convert_string_to_float(
96
- service[:valor_mao_propria]
97
- ),
98
- receipt_notification: HELPER.convert_string_to_float(
82
+ own_hands: string_to_decimal(service[:valor_mao_propria]),
83
+ receipt_notification: string_to_decimal(
99
84
  service[:valor_aviso_recebimento]
100
85
  ),
101
- declared_value: HELPER.convert_string_to_float(
86
+ declared_value: string_to_decimal(
102
87
  service[:valor_valor_declarado]
103
- ),
88
+ )
104
89
  },
105
- only_shipping: HELPER.convert_string_to_float(
106
- service[:valor_sem_adicionais]
107
- ),
108
- total: HELPER.convert_string_to_float(service[:valor])
90
+ only_shipping: string_to_decimal(service[:valor_sem_adicionais]),
91
+ total: string_to_decimal(service[:valor])
109
92
  }
110
93
  }
111
94
  else
112
95
  {
113
96
  code: service[:codigo],
114
- error: {
115
- code: service[:erro],
116
- description: service[:msg_erro]
117
- }
97
+ error: { code: service[:erro],
98
+ description: service[:msg_erro] }
118
99
  }
119
100
  end
120
101
  end
@@ -1,20 +1,10 @@
1
- require 'savon'
2
- require 'nokogiri'
3
-
4
- require_relative '../client'
5
- require_relative '../helper'
6
- require_relative '../../correios_exception.rb'
7
-
8
1
  module Correios
9
2
  module Pricefier
10
- class CalculatePriceDeadline < CorreiosException
11
- HELPER = Helper.new
12
- CLIENT = Client.new
13
-
3
+ class CalculatePriceDeadline < Helper
14
4
  def initialize(data = {})
15
5
  @credentials = Correios.credentials
16
-
17
6
  @show_request = data[:show_request]
7
+
18
8
  @service_codes = data[:service_codes]
19
9
  @source_zip_code = data[:source_zip_code]
20
10
  @target_zip_code = data[:target_zip_code]
@@ -22,22 +12,25 @@ module Correios
22
12
  @own_hands = data[:own_hands]
23
13
  @receipt_notification = data[:receipt_notification]
24
14
  @declared_value = data[:declared_value]
15
+ @reference_date = data[:reference_date]
25
16
  super()
26
17
  end
27
18
 
28
- def request
19
+ def request(method)
20
+ @method = method
21
+ @method_snake = method.underscore
22
+
29
23
  puts xml if @show_request == true
30
24
  begin
31
- format_response(CLIENT.client.call(:calc_preco,
32
- soap_action: 'http://tempuri.org/CalcPrecoPrazo',
33
- xml: xml).to_hash)
25
+ format_response(Pricefier.client.call(
26
+ @method_snake.to_sym,
27
+ soap_action: "http://tempuri.org/#{@method}",
28
+ xml: xml
29
+ ).to_hash)
34
30
  rescue Savon::SOAPFault => error
35
- generate_exception(error)
31
+ generate_soap_fault_exception(error)
36
32
  rescue Savon::HTTPError => error
37
- if error.http.code == 401
38
- generate_exception("Unauthorized (#{error.http.code}).")
39
- end
40
- generate_exception("Unknown HTTP error (#{error.http.code}).")
33
+ generate_http_exception(error.http.code)
41
34
  end
42
35
  end
43
36
 
@@ -45,25 +38,26 @@ module Correios
45
38
 
46
39
  def xml
47
40
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
48
- xml['soap'].Envelope(HELPER.namespaces) do
41
+ xml['soap'].Envelope(Pricefier.namespaces) do
49
42
  xml['soap'].Body do
50
- xml['ns1'].CalcPrecoPrazo do
43
+ xml['ns1'].send(@method) do
51
44
  xml.nCdEmpresa @credentials.administrative_code
52
45
  xml.sDsSenha @credentials.sigep_password
53
- xml.nCdServico HELPER.format_service_codes(@service_codes)
46
+ xml.nCdServico array_to_string_comma(@service_codes)
54
47
  xml.sCepOrigem @source_zip_code
55
48
  xml.sCepDestino @target_zip_code
56
- xml.nCdFormato HELPER.object_type(@object[:type])
57
- xml.nVlPeso @object[:weight].to_f/1000
49
+ xml.nCdFormato pricefier_object_type(@object[:type])
50
+ xml.nVlPeso @object[:weight].to_f / 1000
58
51
  xml.nVlComprimento @object[:length] || 0
59
52
  xml.nVlAltura @object[:height] || 0
60
53
  xml.nVlLargura @object[:width] || 0
61
54
  xml.nVlDiametro @object[:diameter] || 0
62
- xml.sCdMaoPropria HELPER.convert_bool_to_string(@own_hands)
63
- xml.sCdAvisoRecebimento HELPER.convert_bool_to_string(
64
- @receipt_notification
65
- )
55
+ xml.sCdMaoPropria bool_to_string(@own_hands)
56
+ xml.sCdAvisoRecebimento bool_to_string(@receipt_notification)
66
57
  xml.nVlValorDeclarado @declared_value || 0
58
+ if @method != 'CalcPrecoPrazo'
59
+ xml.sDtCalculo date_to_string(@reference_date)
60
+ end
67
61
  end
68
62
  end
69
63
  end
@@ -71,65 +65,57 @@ module Correios
71
65
  end
72
66
 
73
67
  def format_response(response)
74
- response = response[:calc_preco_prazo_response][:calc_preco_prazo_result]
68
+ response = response["#{@method_snake}_response".to_sym]["#{@method_snake}_result".to_sym]
75
69
 
76
70
  services = response[:servicos][:c_servico]
77
71
  services = [services] if services.is_a?(Hash)
78
72
 
79
- formatted_services = []
80
- services.each do |service|
81
- formatted_services << format_service(service)
82
- end
83
-
84
- {
85
- services: formatted_services
86
- }
73
+ { services: services.map { |s| format_service(s) } }
87
74
  end
88
75
 
89
76
  def format_service(service)
90
77
  if [0, 10, 11].include?(service[:erro].to_i)
91
- delivery_on_saturdays = HELPER.convert_string_to_bool(
92
- service[:entrega_sabado]
93
- )
94
-
78
+ delivery_on_saturdays = string_to_bool(service[:entrega_sabado])
95
79
  {
96
80
  code: service[:codigo],
97
81
  prices: {
98
- additional_serivces: {
99
- own_hands: HELPER.convert_string_to_float(
100
- service[:valor_mao_propria]
101
- ),
102
- receipt_notification: HELPER.convert_string_to_float(
82
+ additional_services: {
83
+ own_hands: string_to_decimal(service[:valor_mao_propria]),
84
+ receipt_notification: string_to_decimal(
103
85
  service[:valor_aviso_recebimento]
104
86
  ),
105
- declared_value: HELPER.convert_string_to_float(
87
+ declared_value: string_to_decimal(
106
88
  service[:valor_valor_declarado]
107
89
  )
108
90
  },
109
- only_shipping: HELPER.convert_string_to_float(
110
- service[:valor_sem_adicionais]
111
- ),
112
- total: HELPER.convert_string_to_float(service[:valor])
91
+ only_shipping: string_to_decimal(service[:valor_sem_adicionais]),
92
+ total: string_to_decimal(service[:valor])
113
93
  },
114
- delivery_at_home: HELPER.convert_string_to_bool(
115
- service[:entrega_domiciliar]
116
- ),
94
+ delivery_at_home: string_to_bool(service[:entrega_domiciliar]),
117
95
  delivery_on_saturdays: delivery_on_saturdays,
118
96
  deadline: {
119
97
  days: service[:prazo_entrega].to_i,
120
- date: HELPER.calculate_deadline_date(
121
- service[:prazo_entrega].to_i, delivery_on_saturdays
122
- )
98
+ date:
99
+ if @method == 'CalcPrecoPrazo'
100
+ calculate_shipping_deadline(
101
+ service[:prazo_entrega].to_i,
102
+ delivery_on_saturdays
103
+ )
104
+ else
105
+ calculate_shipping_deadline(
106
+ service[:prazo_entrega].to_i,
107
+ delivery_on_saturdays,
108
+ @reference_date
109
+ )
110
+ end
123
111
  },
124
112
  note: service[:obs_fim]
125
113
  }
126
114
  else
127
115
  {
128
116
  code: service[:codigo],
129
- error: {
130
- code: service[:erro],
131
- description: service[:msg_erro]
132
- }
117
+ error: { code: service[:erro],
118
+ description: service[:msg_erro] }
133
119
  }
134
120
  end
135
121
  end