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.
- checksums.yaml +4 -4
- data/correios_gem.gemspec +29 -0
- data/lib/SRO/requests/track_shippings.rb +31 -45
- data/lib/{credentials.rb → auxiliars/credentials.rb} +0 -0
- data/lib/auxiliars/environments.rb +94 -0
- data/lib/auxiliars/exception.rb +5 -0
- data/lib/auxiliars/helper.rb +404 -0
- data/lib/correios_gem.rb +22 -24
- data/lib/pricefier/requests/calculate_deadline.rb +27 -45
- data/lib/pricefier/requests/calculate_price.rb +34 -53
- data/lib/pricefier/requests/calculate_price_deadline.rb +49 -63
- data/lib/pricefier/requests/calculate_price_fac.rb +21 -46
- data/lib/pricefier/requests/list_services.rb +26 -42
- data/lib/reverse_logistics/requests/calculate_ticket_number_check_digit.rb +10 -21
- data/lib/reverse_logistics/requests/cancel_shipping.rb +13 -23
- data/lib/reverse_logistics/requests/create_shippings.rb +22 -36
- data/lib/reverse_logistics/requests/create_shippings_with_collection.rb +17 -33
- data/lib/reverse_logistics/requests/request_ticket_numbers.rb +13 -35
- data/lib/reverse_logistics/requests/track_shipping.rb +18 -39
- data/lib/reverse_logistics/requests/track_shippings_by_date.rb +19 -45
- data/lib/sigep/auxiliars/shipping_xml.rb +100 -0
- data/lib/sigep/requests/calculate_label_number_check_digit.rb +13 -27
- data/lib/sigep/requests/cancel_shipping.rb +12 -25
- data/lib/sigep/requests/check_card_status.rb +11 -27
- data/lib/sigep/requests/check_service_availability.rb +12 -39
- data/lib/sigep/requests/create_shippings.rb +20 -24
- data/lib/sigep/requests/request_label_numbers.rb +11 -17
- data/lib/sigep/requests/request_shippings_xml.rb +14 -53
- data/lib/sigep/requests/search_available_additional_services.rb +12 -20
- data/lib/sigep/requests/search_customer.rb +15 -37
- data/lib/sigep/requests/search_zip_code.rb +11 -16
- data/lib/sigep/requests/track_shippings.rb +19 -51
- metadata +22 -19
- data/lib/SRO/client.rb +0 -25
- data/lib/SRO/helper.rb +0 -118
- data/lib/SRO/requests/track_shippings_list.rb +0 -144
- data/lib/correios_exception.rb +0 -11
- data/lib/pricefier/client.rb +0 -20
- data/lib/pricefier/helper.rb +0 -72
- data/lib/pricefier/requests/calculate_deadline_with_date.rb +0 -102
- data/lib/pricefier/requests/calculate_deadline_with_restrictions.rb +0 -102
- data/lib/pricefier/requests/calculate_price_deadline_with_date.rb +0 -142
- data/lib/pricefier/requests/calculate_price_deadline_with_restrictions.rb +0 -142
- data/lib/pricefier/requests/calculate_price_with_date.rb +0 -125
- data/lib/pricefier/requests/list_services_star.rb +0 -87
- data/lib/reverse_logistics/client.rb +0 -34
- data/lib/reverse_logistics/helper.rb +0 -95
- data/lib/sigep/client.rb +0 -29
- data/lib/sigep/helper.rb +0 -234
@@ -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 ReverseLogistics
|
10
|
-
class CreateShippingsWithCollection <
|
11
|
-
HELPER = Helper.new
|
12
|
-
CLIENT = Client.new
|
13
|
-
|
3
|
+
class CreateShippingsWithCollection < Helper
|
14
4
|
def initialize(data = {})
|
15
5
|
@credentials = Correios.credentials
|
16
|
-
|
17
6
|
@show_request = data[:show_request]
|
7
|
+
|
18
8
|
@receiver = data[:receiver]
|
19
9
|
@service_code = data[:service_code]
|
20
10
|
@shippings = data[:shippings]
|
@@ -24,16 +14,15 @@ module Correios
|
|
24
14
|
def request
|
25
15
|
puts xml if @show_request == true
|
26
16
|
begin
|
27
|
-
format_response(
|
28
|
-
|
29
|
-
|
17
|
+
format_response(ReverseLogistics.client.call(
|
18
|
+
:solicitar_postagem_simultanea,
|
19
|
+
soap_action: '',
|
20
|
+
xml: xml
|
21
|
+
).to_hash)
|
30
22
|
rescue Savon::SOAPFault => error
|
31
|
-
|
23
|
+
generate_soap_fault_exception(error)
|
32
24
|
rescue Savon::HTTPError => error
|
33
|
-
|
34
|
-
generate_exception("Unauthorized (#{error.http.code}).")
|
35
|
-
end
|
36
|
-
generate_exception("Unknown HTTP error (#{error.http.code}).")
|
25
|
+
generate_http_exception(error.http.code)
|
37
26
|
end
|
38
27
|
end
|
39
28
|
|
@@ -41,7 +30,7 @@ module Correios
|
|
41
30
|
|
42
31
|
def xml
|
43
32
|
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
|
44
|
-
xml['soap'].Envelope(
|
33
|
+
xml['soap'].Envelope(ReverseLogistics.namespaces) do
|
45
34
|
xml['soap'].Body do
|
46
35
|
xml['ns1'].solicitarPostagemSimultanea do
|
47
36
|
parent_namespace = xml.parent.namespace
|
@@ -69,7 +58,7 @@ module Correios
|
|
69
58
|
goods = shipping[:goods] || []
|
70
59
|
objects = shipping[:objects] || [{}]
|
71
60
|
xml.coletas_solicitadas do
|
72
|
-
xml.tipo
|
61
|
+
xml.tipo reverse_shipping_type(shipping[:type])
|
73
62
|
xml.id_cliente shipping[:code]
|
74
63
|
xml.valor_declarado shipping[:declared_value]
|
75
64
|
xml.descricao shipping[:description]
|
@@ -86,7 +75,7 @@ module Correios
|
|
86
75
|
xml.ddd_celular sender[:cellphone][0, 2]
|
87
76
|
xml.celular sender[:cellphone][2, sender[:phone].length - 1]
|
88
77
|
xml.email sender[:email]
|
89
|
-
xml.sms
|
78
|
+
xml.sms bool_to_string(sender[:send_sms])
|
90
79
|
xml.identificacao sender[:document]
|
91
80
|
xml.logradouro sender_address[:street]
|
92
81
|
xml.numero sender_address[:number]
|
@@ -116,32 +105,27 @@ module Correios
|
|
116
105
|
|
117
106
|
def format_response(response)
|
118
107
|
response = response[:solicitar_postagem_simultanea_response][:solicitar_postagem_simultanea]
|
119
|
-
|
108
|
+
generate_revese_logistics_exception(response)
|
120
109
|
|
121
110
|
shippings = response[:resultado_solicitacao]
|
122
111
|
shippings = [shippings] if shippings.is_a?(Hash)
|
123
112
|
|
124
|
-
|
125
|
-
shippings.each do |shipping|
|
126
|
-
formatted_shippings << format_shipping(shipping)
|
127
|
-
end
|
128
|
-
|
129
|
-
{ shippings: formatted_shippings }
|
113
|
+
{ shippings: shippings.map {|s| format_shipping(s)} }
|
130
114
|
end
|
131
115
|
|
132
116
|
def format_shipping(shipping)
|
133
117
|
if shipping[:codigo_erro].to_i.zero?
|
134
118
|
{
|
135
|
-
type:
|
119
|
+
type: inverse_reverse_shipping_type(shipping[:tipo]),
|
136
120
|
code: shipping[:id_cliente],
|
137
121
|
ticket_number: shipping[:numero_coleta],
|
138
122
|
label_number: shipping[:numero_etiqueta],
|
139
123
|
object_id: shipping[:id_obj],
|
140
|
-
deadline:
|
124
|
+
deadline: string_to_date(shipping[:prazo])
|
141
125
|
}
|
142
126
|
else
|
143
127
|
{
|
144
|
-
type:
|
128
|
+
type: inverse_reverse_shipping_type(shipping[:tipo]),
|
145
129
|
code: shipping[:id_cliente],
|
146
130
|
error: shipping[:descricao_erro]
|
147
131
|
}
|
@@ -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 ReverseLogistics
|
10
|
-
class RequestTicketNumbers <
|
11
|
-
HELPER = Helper.new
|
12
|
-
CLIENT = Client.new
|
13
|
-
|
3
|
+
class RequestTicketNumbers < Helper
|
14
4
|
def initialize(data = {})
|
15
5
|
@credentials = Correios.credentials
|
16
|
-
|
17
6
|
@show_request = data[:show_request]
|
7
|
+
|
18
8
|
@ticket_type = data[:ticket_type]
|
19
9
|
@service = data[:service]
|
20
10
|
@amount = data[:amount]
|
@@ -24,16 +14,15 @@ module Correios
|
|
24
14
|
def request
|
25
15
|
puts xml if @show_request == true
|
26
16
|
begin
|
27
|
-
format_response(
|
28
|
-
|
29
|
-
|
17
|
+
format_response(ReverseLogistics.client.call(
|
18
|
+
:solicitar_range,
|
19
|
+
soap_action: '',
|
20
|
+
xml: xml
|
21
|
+
).to_hash)
|
30
22
|
rescue Savon::SOAPFault => error
|
31
|
-
|
23
|
+
generate_soap_fault_exception(error)
|
32
24
|
rescue Savon::HTTPError => error
|
33
|
-
|
34
|
-
generate_exception("Unauthorized (#{error.http.code}).")
|
35
|
-
end
|
36
|
-
generate_exception("Unknown HTTP error (#{error.http.code}).")
|
25
|
+
generate_http_exception(error.http.code)
|
37
26
|
end
|
38
27
|
end
|
39
28
|
|
@@ -41,15 +30,15 @@ module Correios
|
|
41
30
|
|
42
31
|
def xml
|
43
32
|
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
|
44
|
-
xml['soap'].Envelope(
|
33
|
+
xml['soap'].Envelope(ReverseLogistics.namespaces) do
|
45
34
|
xml['soap'].Body do
|
46
35
|
xml['ns1'].solicitarRange do
|
47
36
|
parent_namespace = xml.parent.namespace
|
48
37
|
xml.parent.namespace = nil
|
49
38
|
|
50
39
|
xml.codAdministrativo @credentials.administrative_code
|
51
|
-
xml.tipo
|
52
|
-
xml.servico
|
40
|
+
xml.tipo ticket_type(@ticket_type)
|
41
|
+
xml.servico reverse_shipping_service(@service)
|
53
42
|
xml.quantidade @amount
|
54
43
|
|
55
44
|
xml.parent.namespace = parent_namespace
|
@@ -61,7 +50,7 @@ module Correios
|
|
61
50
|
|
62
51
|
def format_response(response)
|
63
52
|
response = response[:solicitar_range_response][:solicitar_range]
|
64
|
-
|
53
|
+
generate_revese_logistics_exception(response)
|
65
54
|
|
66
55
|
initial_number = response[:faixa_inicial].to_i
|
67
56
|
final_number = response[:faixa_final].to_i
|
@@ -74,17 +63,6 @@ module Correios
|
|
74
63
|
|
75
64
|
{ ticket_numbers: ticket_numbers }
|
76
65
|
end
|
77
|
-
|
78
|
-
def service(service)
|
79
|
-
case service
|
80
|
-
when :pac
|
81
|
-
'LR'
|
82
|
-
when :sedex
|
83
|
-
'LS'
|
84
|
-
when :e_sedex
|
85
|
-
'LV'
|
86
|
-
end
|
87
|
-
end
|
88
66
|
end
|
89
67
|
end
|
90
68
|
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 ReverseLogistics
|
10
|
-
class TrackShipping <
|
11
|
-
HELPER = Helper.new
|
12
|
-
CLIENT = Client.new
|
13
|
-
|
3
|
+
class TrackShipping < Helper
|
14
4
|
def initialize(data = {})
|
15
5
|
@credentials = Correios.credentials
|
16
|
-
|
17
6
|
@show_request = data[:show_request]
|
7
|
+
|
18
8
|
@ticket_number = data[:ticket_number]
|
19
9
|
@type = data[:type]
|
20
10
|
@result_type = data[:result_type]
|
@@ -24,16 +14,15 @@ module Correios
|
|
24
14
|
def request
|
25
15
|
puts xml if @show_request == true
|
26
16
|
begin
|
27
|
-
format_response(
|
28
|
-
|
29
|
-
|
17
|
+
format_response(ReverseLogistics.client.call(
|
18
|
+
:acompanhar_pedido,
|
19
|
+
soap_action: '',
|
20
|
+
xml: xml
|
21
|
+
).to_hash)
|
30
22
|
rescue Savon::SOAPFault => error
|
31
|
-
|
23
|
+
generate_soap_fault_exception(error)
|
32
24
|
rescue Savon::HTTPError => error
|
33
|
-
|
34
|
-
generate_exception("Unauthorized (#{error.http.code}).")
|
35
|
-
end
|
36
|
-
generate_exception("Unknown HTTP error (#{error.http.code}).")
|
25
|
+
generate_http_exception(error.http.code)
|
37
26
|
end
|
38
27
|
end
|
39
28
|
|
@@ -41,7 +30,7 @@ module Correios
|
|
41
30
|
|
42
31
|
def xml
|
43
32
|
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
|
44
|
-
xml['soap'].Envelope(
|
33
|
+
xml['soap'].Envelope(ReverseLogistics.namespaces) do
|
45
34
|
xml['soap'].Body do
|
46
35
|
xml['ns1'].acompanharPedido do
|
47
36
|
parent_namespace = xml.parent.namespace
|
@@ -49,8 +38,8 @@ module Correios
|
|
49
38
|
|
50
39
|
xml.codAdministrativo @credentials.administrative_code
|
51
40
|
xml.numeroPedido @ticket_number
|
52
|
-
xml.tipoSolicitacao
|
53
|
-
xml.tipoBusca
|
41
|
+
xml.tipoSolicitacao reverse_shipping_type(@type)
|
42
|
+
xml.tipoBusca reverse_tracking_result_type(@result_type)
|
54
43
|
|
55
44
|
xml.parent.namespace = parent_namespace
|
56
45
|
end
|
@@ -61,7 +50,7 @@ module Correios
|
|
61
50
|
|
62
51
|
def format_response(response)
|
63
52
|
response = response[:acompanhar_pedido_response][:acompanhar_pedido]
|
64
|
-
|
53
|
+
generate_revese_logistics_exception(response)
|
65
54
|
|
66
55
|
events = response[:coleta][:historico]
|
67
56
|
events = [events] if events.is_a?(Hash)
|
@@ -69,24 +58,14 @@ module Correios
|
|
69
58
|
objects = response[:coleta][:objeto]
|
70
59
|
objects = [objects] if objects.is_a?(Hash)
|
71
60
|
|
72
|
-
formatted_events = []
|
73
|
-
events.each do |event|
|
74
|
-
formatted_events << format_event(event)
|
75
|
-
end
|
76
|
-
|
77
|
-
formatted_objects = []
|
78
|
-
objects.each do |object|
|
79
|
-
formatted_objects << format_object(object)
|
80
|
-
end
|
81
|
-
|
82
61
|
{
|
83
62
|
ticket_number: response[:coleta][:numero_pedido],
|
84
|
-
type:
|
63
|
+
type: inverse_reverse_shipping_type(
|
85
64
|
response[:tipo_solicitacao]
|
86
65
|
),
|
87
66
|
code: response[:coleta][:controle_cliente],
|
88
|
-
events:
|
89
|
-
objects:
|
67
|
+
events: events.map {|e| format_event(e)},
|
68
|
+
objects: objects.map {|o| format_object(o)}
|
90
69
|
}
|
91
70
|
end
|
92
71
|
|
@@ -94,7 +73,7 @@ module Correios
|
|
94
73
|
{
|
95
74
|
status: event[:status],
|
96
75
|
description: event[:descricao_status],
|
97
|
-
time:
|
76
|
+
time: string_to_time(
|
98
77
|
event[:data_atualizacao], event[:hora_atualizacao]
|
99
78
|
),
|
100
79
|
note: event[:observacao]
|
@@ -110,7 +89,7 @@ module Correios
|
|
110
89
|
last_event: {
|
111
90
|
status: object[:ultimo_status],
|
112
91
|
description: object[:descricao_status],
|
113
|
-
time:
|
92
|
+
time: string_to_time(
|
114
93
|
object[:data_ultima_atualizacao], object[:hora_ultima_atualizacao]
|
115
94
|
)
|
116
95
|
}
|
@@ -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 ReverseLogistics
|
10
|
-
class TrackShippingsByDate <
|
11
|
-
HELPER = Helper.new
|
12
|
-
CLIENT = Client.new
|
13
|
-
|
3
|
+
class TrackShippingsByDate < Helper
|
14
4
|
def initialize(data = {})
|
15
5
|
@credentials = Correios.credentials
|
16
|
-
|
17
6
|
@show_request = data[:show_request]
|
7
|
+
|
18
8
|
@type = data[:type]
|
19
9
|
@date = data[:date]
|
20
10
|
super()
|
@@ -23,16 +13,15 @@ module Correios
|
|
23
13
|
def request
|
24
14
|
puts xml if @show_request == true
|
25
15
|
begin
|
26
|
-
format_response(
|
27
|
-
|
28
|
-
|
16
|
+
format_response(ReverseLogistics.client.call(
|
17
|
+
:acompanhar_pedido_por_data,
|
18
|
+
soap_action: '',
|
19
|
+
xml: xml
|
20
|
+
).to_hash)
|
29
21
|
rescue Savon::SOAPFault => error
|
30
|
-
|
22
|
+
generate_soap_fault_exception(error)
|
31
23
|
rescue Savon::HTTPError => error
|
32
|
-
|
33
|
-
generate_exception("Unauthorized (#{error.http.code}).")
|
34
|
-
end
|
35
|
-
generate_exception("Unknown HTTP error (#{error.http.code}).")
|
24
|
+
generate_http_exception(error.http.code)
|
36
25
|
end
|
37
26
|
end
|
38
27
|
|
@@ -40,15 +29,15 @@ module Correios
|
|
40
29
|
|
41
30
|
def xml
|
42
31
|
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
|
43
|
-
xml['soap'].Envelope(
|
32
|
+
xml['soap'].Envelope(ReverseLogistics.namespaces) do
|
44
33
|
xml['soap'].Body do
|
45
34
|
xml['ns1'].acompanharPedidoPorData do
|
46
35
|
parent_namespace = xml.parent.namespace
|
47
36
|
xml.parent.namespace = nil
|
48
37
|
|
49
38
|
xml.codAdministrativo @credentials.administrative_code
|
50
|
-
xml.tipoSolicitacao
|
51
|
-
xml.data
|
39
|
+
xml.tipoSolicitacao reverse_shipping_type(@type)
|
40
|
+
xml.data date_to_string(@date)
|
52
41
|
|
53
42
|
xml.parent.namespace = parent_namespace
|
54
43
|
end
|
@@ -59,21 +48,16 @@ module Correios
|
|
59
48
|
|
60
49
|
def format_response(response)
|
61
50
|
response = response[:acompanhar_pedido_por_data_response][:acompanhar_pedido_por_data]
|
62
|
-
|
51
|
+
generate_revese_logistics_exception(response)
|
63
52
|
|
64
53
|
shippings = response[:coleta]
|
65
54
|
shippings = [shippings] if shippings.is_a?(Hash)
|
66
55
|
|
67
|
-
formatted_shippings = []
|
68
|
-
shippings.each do |shipping|
|
69
|
-
formatted_shippings << format_shippping(shipping)
|
70
|
-
end
|
71
|
-
|
72
56
|
{
|
73
|
-
type:
|
57
|
+
type: inverse_reverse_shipping_type(
|
74
58
|
response[:tipo_solicitacao]
|
75
59
|
),
|
76
|
-
shippings:
|
60
|
+
shippings: shippings.map {|s| format_shippping(s)}
|
77
61
|
}
|
78
62
|
end
|
79
63
|
|
@@ -84,21 +68,11 @@ module Correios
|
|
84
68
|
objects = shipping[:objeto]
|
85
69
|
objects = [objects] if objects.is_a?(Hash)
|
86
70
|
|
87
|
-
formatted_events = []
|
88
|
-
events.each do |event|
|
89
|
-
formatted_events << format_event(event)
|
90
|
-
end
|
91
|
-
|
92
|
-
formatted_objects = []
|
93
|
-
objects.each do |object|
|
94
|
-
formatted_objects << format_object(object)
|
95
|
-
end
|
96
|
-
|
97
71
|
{
|
98
72
|
ticket_number: shipping[:numero_pedido],
|
99
73
|
code: shipping[:controle_cliente],
|
100
|
-
events:
|
101
|
-
objects:
|
74
|
+
events: events.map {|e| format_event(e)},
|
75
|
+
objects: objects.map {|o| format_object(o)}
|
102
76
|
}
|
103
77
|
end
|
104
78
|
|
@@ -106,7 +80,7 @@ module Correios
|
|
106
80
|
{
|
107
81
|
status: event[:status],
|
108
82
|
description: event[:descricao_status],
|
109
|
-
time:
|
83
|
+
time: string_to_time(
|
110
84
|
event[:data_atualizacao], event[:hora_atualizacao]
|
111
85
|
),
|
112
86
|
note: event[:observacao]
|
@@ -122,7 +96,7 @@ module Correios
|
|
122
96
|
last_event: {
|
123
97
|
status: object[:ultimo_status],
|
124
98
|
description: object[:descricao_status],
|
125
|
-
time:
|
99
|
+
time: string_to_time(
|
126
100
|
object[:data_ultima_atualizacao], object[:hora_ultima_atualizacao]
|
127
101
|
)
|
128
102
|
}
|
@@ -0,0 +1,100 @@
|
|
1
|
+
module Correios
|
2
|
+
module Sigep
|
3
|
+
def self.shipping_xml(data)
|
4
|
+
helper = Helper.new
|
5
|
+
credentials = Correios.credentials
|
6
|
+
sender = data[:sender]
|
7
|
+
sender_address = sender[:address]
|
8
|
+
shippings = data[:shippings]
|
9
|
+
|
10
|
+
Nokogiri::XML::Builder.new(encoding: 'ISO-8859-1') do |xml|
|
11
|
+
xml.correioslog do
|
12
|
+
xml.tipo_arquivo 'Postagem'
|
13
|
+
xml.versao_arquivo '2.3'
|
14
|
+
xml.plp do
|
15
|
+
xml.id_plp
|
16
|
+
xml.valor_global
|
17
|
+
xml.mcu_unidade_postagem
|
18
|
+
xml.nome_unidade_postagem
|
19
|
+
xml.cartao_postagem credentials.card
|
20
|
+
end
|
21
|
+
xml.remetente do
|
22
|
+
xml.numero_contrato credentials.contract
|
23
|
+
xml.numero_diretoria sender[:board_id]
|
24
|
+
xml.codigo_administrativo credentials.administrative_code
|
25
|
+
xml.nome_remetente sender[:name]
|
26
|
+
xml.logradouro_remetente sender_address[:street]
|
27
|
+
xml.numero_remetente sender_address[:number]
|
28
|
+
xml.complemento_remetente sender_address[:additional]
|
29
|
+
xml.bairro_remetente sender_address[:neighborhood]
|
30
|
+
xml.cep_remetente sender_address[:zip_code]
|
31
|
+
xml.cidade_remetente sender_address[:city]
|
32
|
+
xml.uf_remetente sender_address[:state]
|
33
|
+
xml.telefone_remetente sender[:phone]
|
34
|
+
xml.fax_remetente sender[:fax]
|
35
|
+
xml.email_remetente sender[:email]
|
36
|
+
end
|
37
|
+
xml.forma_pagamento helper.payment_method(data[:payment_method])
|
38
|
+
shippings.each do |shipping|
|
39
|
+
receiver = shipping[:receiver]
|
40
|
+
receiver_address = receiver[:address]
|
41
|
+
object = shipping[:object]
|
42
|
+
invoice = shipping[:invoice] || {}
|
43
|
+
additional_services = shipping[:additional_services] || []
|
44
|
+
notes = shipping[:notes] || []
|
45
|
+
|
46
|
+
xml.objeto_postal do
|
47
|
+
xml.numero_etiqueta shipping[:label_number]
|
48
|
+
xml.codigo_objeto_cliente shipping[:code]
|
49
|
+
xml.codigo_servico_postagem shipping[:service_code]
|
50
|
+
xml.cubagem 0
|
51
|
+
xml.peso object[:weight]
|
52
|
+
xml.rt1 notes[0]
|
53
|
+
xml.rt2 notes[1]
|
54
|
+
xml.destinatario do
|
55
|
+
xml.nome_destinatario receiver[:name]
|
56
|
+
xml.telefone_destinatario receiver[:phone]
|
57
|
+
xml.celular_destinatario receiver[:cellphone]
|
58
|
+
xml.email_destinatario receiver[:email]
|
59
|
+
xml.logradouro_destinatario receiver_address[:street]
|
60
|
+
xml.complemento_destinatario receiver_address[:additional]
|
61
|
+
xml.numero_end_destinatario receiver_address[:number]
|
62
|
+
end
|
63
|
+
xml.nacional do
|
64
|
+
xml.bairro_destinatario receiver_address[:neighborhood]
|
65
|
+
xml.cidade_destinatario receiver_address[:city]
|
66
|
+
xml.uf_destinatario receiver_address[:state]
|
67
|
+
xml.cep_destinatario receiver_address[:zip_code]
|
68
|
+
xml.codigo_usuario_postal
|
69
|
+
xml.centro_custo_cliente shipping[:cost_center]
|
70
|
+
xml.numero_nota_fiscal invoice[:number]
|
71
|
+
xml.serie_nota_fiscal invoice[:serie]
|
72
|
+
xml.valor_nota_fiscal invoice[:value]
|
73
|
+
xml.natureza_nota_fiscal invoice[:kind]
|
74
|
+
xml.descricao_objeto shipping[:description]
|
75
|
+
xml.valor_a_cobrar shipping[:additional_value]
|
76
|
+
end
|
77
|
+
xml.servico_adicional do
|
78
|
+
additional_services.each do |additional_service|
|
79
|
+
xml.codigo_servico_adicional additional_service
|
80
|
+
end
|
81
|
+
xml.valor_declarado shipping[:declared_value]
|
82
|
+
end
|
83
|
+
xml.dimensao_objeto do
|
84
|
+
xml.tipo_objeto helper.object_type(object[:type])
|
85
|
+
xml.dimensao_altura object[:height] || 0
|
86
|
+
xml.dimensao_largura object[:width] || 0
|
87
|
+
xml.dimensao_comprimento object[:length] || 0
|
88
|
+
xml.dimensao_diametro object[:diameter] || 0
|
89
|
+
end
|
90
|
+
xml.data_postagem_sara
|
91
|
+
xml.status_processamento 0
|
92
|
+
xml.numero_comprovante_postagem
|
93
|
+
xml.valor_cobrado
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end.to_xml.encode(Encoding::UTF_8)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|