camaleon_ecommerce 1.1 → 1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/plugins/ecommerce/admin_product.js.coffee +83 -0
  3. data/app/assets/javascripts/plugins/ecommerce/cart.js +3 -0
  4. data/app/controllers/plugins/ecommerce/admin/coupons_controller.rb +6 -12
  5. data/app/controllers/plugins/ecommerce/admin/orders_controller.rb +2 -8
  6. data/app/controllers/plugins/ecommerce/admin/payment_methods_controller.rb +7 -12
  7. data/app/controllers/plugins/ecommerce/admin/prices_controller.rb +0 -8
  8. data/app/controllers/plugins/ecommerce/admin/settings_controller.rb +0 -8
  9. data/app/controllers/plugins/ecommerce/admin/shipping_methods_controller.rb +6 -14
  10. data/app/controllers/plugins/ecommerce/admin/tax_rates_controller.rb +6 -12
  11. data/app/controllers/plugins/ecommerce/admin_controller.rb +27 -8
  12. data/app/controllers/plugins/ecommerce/front/checkout_controller.rb +42 -75
  13. data/app/controllers/plugins/ecommerce/front/orders_controller.rb +2 -10
  14. data/app/controllers/plugins/ecommerce/front_controller.rb +0 -8
  15. data/app/decorators/plugins/ecommerce/coupon_decorator.rb +0 -8
  16. data/app/decorators/plugins/ecommerce/product_decorator.rb +86 -35
  17. data/app/decorators/plugins/ecommerce/product_item_decorator.rb +27 -3
  18. data/app/decorators/plugins/ecommerce/product_variation_decorator.rb +18 -0
  19. data/app/helpers/plugins/ecommerce/ecommerce_email_helper.rb +11 -13
  20. data/app/helpers/plugins/ecommerce/ecommerce_functions_helper.rb +25 -11
  21. data/app/helpers/plugins/ecommerce/ecommerce_helper.rb +22 -27
  22. data/app/helpers/plugins/ecommerce/ecommerce_payment_helper.rb +1 -56
  23. data/app/models/plugins/ecommerce/attribute.rb +9 -0
  24. data/app/models/plugins/ecommerce/cart.rb +46 -28
  25. data/app/models/plugins/ecommerce/coupon.rb +0 -8
  26. data/app/models/plugins/ecommerce/legacy_cart.rb +50 -0
  27. data/app/models/plugins/ecommerce/legacy_order.rb +48 -0
  28. data/app/models/plugins/ecommerce/order.rb +0 -8
  29. data/app/models/plugins/ecommerce/order_detail.rb +0 -9
  30. data/app/models/plugins/ecommerce/payment_method.rb +0 -8
  31. data/app/models/plugins/ecommerce/product_item.rb +3 -10
  32. data/app/models/plugins/ecommerce/product_variation.rb +9 -0
  33. data/app/models/plugins/ecommerce/shipping_method.rb +0 -8
  34. data/app/models/plugins/ecommerce/tax_rate.rb +0 -8
  35. data/app/services/plugins/ecommerce/cart_service.rb +149 -0
  36. data/app/services/plugins/ecommerce/order_service.rb +26 -0
  37. data/app/services/plugins/ecommerce/product_item_service.rb +29 -0
  38. data/app/services/plugins/ecommerce/product_service.rb +17 -0
  39. data/app/services/plugins/ecommerce/site_service.rb +21 -0
  40. data/app/services/plugins/ecommerce/user_cart_service.rb +12 -0
  41. data/app/services/plugins/ecommerce/user_product_service.rb +29 -0
  42. data/app/services/plugins/ecommerce/util_service.rb +5 -0
  43. data/app/views/plugins/ecommerce/admin/orders/form.html.erb +28 -16
  44. data/app/views/plugins/ecommerce/admin/orders/index.html.erb +7 -1
  45. data/app/views/plugins/ecommerce/admin/payment_methods/form.html.erb +11 -1
  46. data/app/views/plugins/ecommerce/admin/product_attributes.html.erb +95 -0
  47. data/app/views/plugins/ecommerce/admin/products/_variations.html.erb +72 -0
  48. data/app/views/plugins/ecommerce/front/checkout/cart_index.html.erb +5 -5
  49. data/app/views/plugins/ecommerce/front/orders/show.html.erb +96 -89
  50. data/app/views/plugins/ecommerce/partials/_cart_widget.html.erb +3 -3
  51. data/app/views/plugins/ecommerce/partials/checkout/_details.html.erb +1 -1
  52. data/app/views/plugins/ecommerce/partials/checkout/_payments.html.erb +6 -1
  53. data/app/views/plugins/ecommerce/partials/checkout/_products_detail.html.erb +1 -1
  54. data/app/views/plugins/ecommerce/partials/checkout/_user_info.html.erb +26 -22
  55. data/app/views/post_types/commerce/single.html.erb +28 -12
  56. data/config/camaleon_plugin.json +4 -12
  57. data/config/custom_models.rb +10 -0
  58. data/config/locales/en.yml +3 -0
  59. data/config/locales/es.yml +112 -54
  60. data/config/routes.rb +2 -0
  61. data/db/migrate/20160527184747_add_new_cart_structure.rb +7 -4
  62. data/db/migrate/20160620200501_add_product_attributes_structure.rb +21 -0
  63. data/db/migrate/20160825174848_set_cama_post_decorator_class.rb +13 -0
  64. data/db/migrate/20160825232739_migrate_order_data.rb +87 -0
  65. data/lib/ecommerce/version.rb +1 -1
  66. metadata +22 -7
  67. data/app/assets/javascripts/plugins/ecommerce/admin.js +0 -0
  68. data/app/assets/javascripts/plugins/ecommerce/fix_form.js +0 -7
  69. data/config/currency_en.json +0 -154
  70. data/config/currency_es.json +0 -154
data/config/routes.rb CHANGED
@@ -42,6 +42,8 @@ Rails.application.routes.draw do
42
42
  namespace 'plugins' do
43
43
  namespace 'ecommerce' do
44
44
  get 'index' => 'admin#index'
45
+ get 'product_attributes' => 'admin#product_attributes'
46
+ post 'product_attributes' => 'admin#save_product_attributes'
45
47
  resources :orders, controller: 'admin/orders' do
46
48
  get 'mark_accepted'
47
49
  get 'mark_bank_confirmed'
@@ -1,11 +1,13 @@
1
1
  class AddNewCartStructure < ActiveRecord::Migration
2
2
  def change
3
3
  create_table :plugins_ecommerce_orders do |t|
4
- t.string :name, :slug, :kind, :coupon, :the_coupon_amount, :currency_code, :payment_data
4
+ t.string :name, :slug, :kind, :coupon, :the_coupon_amount
5
+ t.string :currency_code, :payment_data
5
6
  t.string :status, default: 'unpaid'
6
7
  t.integer :shipping_method_id, :user_id, :site_id, :payment_method_id, index: true
7
8
  t.timestamp :paid_at, :received_at, :accepted_at, :shipped_at, :closed_at
8
- t.string :cache_the_total, :cache_the_sub_total, :cache_the_tax, :cache_the_weight, :cache_the_discounts, :cache_the_shipping
9
+ t.string :cache_the_total, :cache_the_sub_total, :cache_the_tax
10
+ t.string :cache_the_weight, :cache_the_discounts, :cache_the_shipping
9
11
  t.decimal :amount, :precision => 8, :scale => 2
10
12
  t.text :description
11
13
  t.timestamps null: false
@@ -13,9 +15,10 @@ class AddNewCartStructure < ActiveRecord::Migration
13
15
 
14
16
  create_table :plugins_ecommerce_products do |t|
15
17
  t.integer :qty, :product_id, :order_id, index: true
16
- t.string :cache_the_price, :cache_the_title, :cache_the_tax, :cache_the_sub_total
18
+ t.string :cache_the_price, :cache_the_title, :cache_the_tax
19
+ t.string :cache_the_sub_total
17
20
  end
18
21
 
19
- drop_table :plugins_order_details
22
+ #drop_table :plugins_order_details
20
23
  end
21
24
  end
@@ -0,0 +1,21 @@
1
+ class AddProductAttributesStructure < ActiveRecord::Migration
2
+ def change
3
+ create_table :plugins_ecommerce_attributes do |t|
4
+ t.string :key, :label
5
+ t.integer :parent_id, index: true
6
+ t.integer :site_id, index: true
7
+ t.integer :position, default: 0
8
+ end
9
+
10
+ create_table :plugins_ecommerce_product_variations do |t|
11
+ t.decimal :amount, :precision => 8, :scale => 2
12
+ t.belongs_to :product, index: true
13
+ t.string :photo, :sku
14
+ t.integer :weight
15
+ t.integer :position, :qty, default: 0
16
+ t.string :attribute_ids
17
+ end
18
+
19
+ add_column :plugins_ecommerce_products, :variation_id, :integer
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ class SetCamaPostDecoratorClass < ActiveRecord::Migration
2
+ def change
3
+ CamaleonCms::Site.reset_column_information
4
+ CamaleonCms::PostType.reset_column_information
5
+ CamaleonCms::Site.find_each do |site|
6
+ post_type = site.post_types.where(slug: 'commerce').first
7
+ if post_type
8
+ post_type.set_options(cama_post_decorator_class: 'Plugins::Ecommerce::ProductDecorator')
9
+ post_type.save(validate: false)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,87 @@
1
+ class MigrateOrderData < ActiveRecord::Migration
2
+ def change
3
+ if table_exists?('plugins_order_details') && Plugins::Ecommerce::LegacyOrder.count > 0
4
+ Plugins::Ecommerce::LegacyOrder.reset_column_information
5
+
6
+ CamaleonCms::Meta.where(object_class: 'Plugins::Ecommerce::Order').
7
+ update_all(object_class: 'Plugins::Ecommerce::LegacyOrder')
8
+
9
+ # Plugins::Ecommerce::Order.transaction { Plugins::Ecommerce::Order.destroy_all }
10
+
11
+ product_post_type = CamaleonCms::PostType.where(slug: 'commerce').first
12
+ raise 'Product post type must exist' unless product_post_type
13
+
14
+ Plugins::Ecommerce::LegacyOrder.order(:created_at).find_each do |legacy_order|
15
+ details = legacy_order.decorate.details
16
+ order = Plugins::Ecommerce::Order.new(
17
+ name: legacy_order.name,
18
+ description: legacy_order.description,
19
+ slug: legacy_order.slug,
20
+ status: legacy_order.status,
21
+ created_at: legacy_order.created_at,
22
+ updated_at: legacy_order.updated_at,
23
+ received_at: details.received_at,
24
+ accepted_at: details.accepted_at,
25
+ shipped_at: details.shipped_at,
26
+ closed_at: details.closed_at,
27
+ user_id: legacy_order.user_id,
28
+ # not 100% sure on parent_id -> site_id mapping
29
+ site_id: legacy_order.parent_id,
30
+ # not mapped fields because they are always nil in my orders:
31
+ # count, term_group, term_order
32
+ )
33
+ order.save(validate: false)
34
+
35
+ legacy_order.metas.each do |legacy_meta|
36
+ meta = CamaleonCms::Meta.new(
37
+ object_class: 'Plugins::Ecommerce::Cart',
38
+ objectid: order.id,
39
+ key: legacy_meta.key,
40
+ value: legacy_meta.value,
41
+ )
42
+ meta.save(validate: false)
43
+ end
44
+
45
+ order.reload
46
+ payment_meta = order.get_meta('payment')
47
+ if payment_meta
48
+ order.set_meta('payment_method_id', payment_meta['payment_id'])
49
+ order.payment_method_id = payment_meta['payment_id']
50
+ order.shipping_method_id = payment_meta['shipping_method']
51
+ order.coupon = payment_meta['coupon_code'],
52
+ order.the_coupon_amount = payment_meta['coupon_amount'],
53
+ order.save(validate: false)
54
+ end
55
+
56
+ if order.user
57
+ order.user.set_option('phone', details.phone)
58
+ end
59
+
60
+ order.get_meta('products').each do |key, product|
61
+ p = product_post_type.posts.where(id: product['product_id']).first
62
+ p = Plugins::Ecommerce::ProductDecorator.new(p)
63
+ order.product_items.create(
64
+ product_id: product['product_id'],
65
+ qty: product['qty'],
66
+ cache_the_price: p.the_price,
67
+ cache_the_title: p.title,
68
+ cache_the_tax: '$%.2f' % p.the_tax,
69
+ cache_the_sub_total: '$%.2f' % (product['price'].to_f*product['qty'].to_f),
70
+ )
71
+ end
72
+
73
+ order.reload
74
+ c = Plugins::Ecommerce::CartDecorator.new(order)
75
+ order.update_columns(
76
+ amount: order.total_amount,
77
+ cache_the_total: c.the_price,
78
+ cache_the_sub_total: c.the_sub_total,
79
+ cache_the_tax: c.the_tax_total,
80
+ cache_the_weight: c.the_weight_total,
81
+ cache_the_discounts: c.the_total_discounts,
82
+ cache_the_shipping: c.the_total_shipping,
83
+ )
84
+ end
85
+ end
86
+ end
87
+ end
@@ -1,3 +1,3 @@
1
1
  module Ecommerce
2
- VERSION = '1.1'
2
+ VERSION = '1.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camaleon_ecommerce
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.1'
4
+ version: '1.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-17 00:00:00.000000000 Z
11
+ date: 2016-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -90,9 +90,8 @@ files:
90
90
  - MIT-LICENSE
91
91
  - README.rdoc
92
92
  - Rakefile
93
- - app/assets/javascripts/plugins/ecommerce/admin.js
93
+ - app/assets/javascripts/plugins/ecommerce/admin_product.js.coffee
94
94
  - app/assets/javascripts/plugins/ecommerce/cart.js
95
- - app/assets/javascripts/plugins/ecommerce/fix_form.js
96
95
  - app/assets/javascripts/plugins/ecommerce/jquery.creditCardValidator.js
97
96
  - app/assets/stylesheets/plugins/ecommerce/admin.scss
98
97
  - app/assets/stylesheets/plugins/ecommerce/checkout.css.scss
@@ -113,18 +112,31 @@ files:
113
112
  - app/decorators/plugins/ecommerce/order_decorator.rb
114
113
  - app/decorators/plugins/ecommerce/product_decorator.rb
115
114
  - app/decorators/plugins/ecommerce/product_item_decorator.rb
115
+ - app/decorators/plugins/ecommerce/product_variation_decorator.rb
116
116
  - app/helpers/plugins/ecommerce/ecommerce_email_helper.rb
117
117
  - app/helpers/plugins/ecommerce/ecommerce_functions_helper.rb
118
118
  - app/helpers/plugins/ecommerce/ecommerce_helper.rb
119
119
  - app/helpers/plugins/ecommerce/ecommerce_payment_helper.rb
120
+ - app/models/plugins/ecommerce/attribute.rb
120
121
  - app/models/plugins/ecommerce/cart.rb
121
122
  - app/models/plugins/ecommerce/coupon.rb
123
+ - app/models/plugins/ecommerce/legacy_cart.rb
124
+ - app/models/plugins/ecommerce/legacy_order.rb
122
125
  - app/models/plugins/ecommerce/order.rb
123
126
  - app/models/plugins/ecommerce/order_detail.rb
124
127
  - app/models/plugins/ecommerce/payment_method.rb
125
128
  - app/models/plugins/ecommerce/product_item.rb
129
+ - app/models/plugins/ecommerce/product_variation.rb
126
130
  - app/models/plugins/ecommerce/shipping_method.rb
127
131
  - app/models/plugins/ecommerce/tax_rate.rb
132
+ - app/services/plugins/ecommerce/cart_service.rb
133
+ - app/services/plugins/ecommerce/order_service.rb
134
+ - app/services/plugins/ecommerce/product_item_service.rb
135
+ - app/services/plugins/ecommerce/product_service.rb
136
+ - app/services/plugins/ecommerce/site_service.rb
137
+ - app/services/plugins/ecommerce/user_cart_service.rb
138
+ - app/services/plugins/ecommerce/user_product_service.rb
139
+ - app/services/plugins/ecommerce/util_service.rb
128
140
  - app/views/camaleon_cms/html_mailer/order_canceled.html.erb
129
141
  - app/views/camaleon_cms/html_mailer/order_confirmed.html.erb
130
142
  - app/views/camaleon_cms/html_mailer/order_received.html.erb
@@ -142,6 +154,8 @@ files:
142
154
  - app/views/plugins/ecommerce/admin/prices/form.html.erb
143
155
  - app/views/plugins/ecommerce/admin/prices/index.html.erb
144
156
  - app/views/plugins/ecommerce/admin/prices/show.html.erb
157
+ - app/views/plugins/ecommerce/admin/product_attributes.html.erb
158
+ - app/views/plugins/ecommerce/admin/products/_variations.html.erb
145
159
  - app/views/plugins/ecommerce/admin/products/index.html.erb
146
160
  - app/views/plugins/ecommerce/admin/settings/index.html.erb
147
161
  - app/views/plugins/ecommerce/admin/shipping_methods/form.html.erb
@@ -165,8 +179,6 @@ files:
165
179
  - app/views/post_types/commerce/single.html.erb
166
180
  - config/camaleon_plugin.json
167
181
  - config/currency.json
168
- - config/currency_en.json
169
- - config/currency_es.json
170
182
  - config/custom_models.rb
171
183
  - config/locales/en.yml
172
184
  - config/locales/es.yml
@@ -175,6 +187,9 @@ files:
175
187
  - db/migrate/20160502221327_add_cama_ecommerce_structure_plugin.rb
176
188
  - db/migrate/20160504162311_move_featured_attribute_of_products.rb
177
189
  - db/migrate/20160527184747_add_new_cart_structure.rb
190
+ - db/migrate/20160620200501_add_product_attributes_structure.rb
191
+ - db/migrate/20160825174848_set_cama_post_decorator_class.rb
192
+ - db/migrate/20160825232739_migrate_order_data.rb
178
193
  - lib/camaleon_ecommerce.rb
179
194
  - lib/ecommerce.rb
180
195
  - lib/ecommerce/engine.rb
@@ -200,7 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
215
  version: '0'
201
216
  requirements: []
202
217
  rubyforge_project:
203
- rubygems_version: 2.5.1
218
+ rubygems_version: 2.4.8
204
219
  signing_key:
205
220
  specification_version: 4
206
221
  summary: ": Summary of Ecommerce."
File without changes
@@ -1,7 +0,0 @@
1
- jQuery(function($){
2
- $( '#form-post' ).on( "change", '.editor-custom-fields input[name="field_options[ecommerce_weight][values][]"], .editor-custom-fields .input-value.number', function() {
3
- setTimeout(function(){
4
- $(this).val(Math.abs($(this).val()) || 0);
5
- }.bind(this), 60)
6
- });
7
- });
@@ -1,154 +0,0 @@
1
- {
2
- "USD": {
3
- "symbol": "$",
4
- "name": "US Dollar",
5
- "symbol_native": "$",
6
- "decimal_digits": 2,
7
- "rounding": 0,
8
- "code": "USD",
9
- "name_plural": "US dollars"
10
- },
11
- "CAD": {
12
- "symbol": "CA$",
13
- "name": "Canadian Dollar",
14
- "symbol_native": "$",
15
- "decimal_digits": 2,
16
- "rounding": 0,
17
- "code": "CAD",
18
- "name_plural": "Canadian dollars"
19
- },
20
- "EUR": {
21
- "symbol": "€",
22
- "name": "Euro",
23
- "symbol_native": "€",
24
- "decimal_digits": 2,
25
- "rounding": 0,
26
- "code": "EUR",
27
- "name_plural": "euros"
28
- },
29
- "AUD": {
30
- "symbol": "AU$",
31
- "name": "Australian Dollar",
32
- "symbol_native": "$",
33
- "decimal_digits": 2,
34
- "rounding": 0,
35
- "code": "AUD",
36
- "name_plural": "Australian dollars"
37
- },
38
- "GBP": {
39
- "symbol": "£",
40
- "name": "British Pound Sterling",
41
- "symbol_native": "£",
42
- "decimal_digits": 2,
43
- "rounding": 0,
44
- "code": "GBP",
45
- "name_plural": "British pounds sterling"
46
- },
47
- "CZK": {
48
- "symbol": "Kč",
49
- "name": "Czech Republic Koruna",
50
- "symbol_native": "Kč",
51
- "decimal_digits": 2,
52
- "rounding": 0,
53
- "code": "CZK",
54
- "name_plural": "Czech Republic korunas"
55
- },
56
- "DKK": {
57
- "symbol": "Dkr",
58
- "name": "Danish Krone",
59
- "symbol_native": "kr",
60
- "decimal_digits": 2,
61
- "rounding": 0,
62
- "code": "DKK",
63
- "name_plural": "Danish kroner"
64
- },
65
-
66
- "HKD": {
67
- "symbol": "HK$",
68
- "name": "Hong Kong Dollar",
69
- "symbol_native": "$",
70
- "decimal_digits": 2,
71
- "rounding": 0,
72
- "code": "HKD",
73
- "name_plural": "Hong Kong dollars"
74
- },
75
-
76
- "HUF": {
77
- "symbol": "Ft",
78
- "name": "Hungarian Forint",
79
- "symbol_native": "Ft",
80
- "decimal_digits": 0,
81
- "rounding": 0,
82
- "code": "HUF",
83
- "name_plural": "Hungarian forints"
84
- },
85
-
86
- "JPY": {
87
- "symbol": "¥",
88
- "name": "Japanese Yen",
89
- "symbol_native": "¥",
90
- "decimal_digits": 0,
91
- "rounding": 0,
92
- "code": "JPY",
93
- "name_plural": "Japanese yen"
94
- },
95
-
96
- "NOK": {
97
- "symbol": "Nkr",
98
- "name": "Norwegian Krone",
99
- "symbol_native": "kr",
100
- "decimal_digits": 2,
101
- "rounding": 0,
102
- "code": "NOK",
103
- "name_plural": "Norwegian kroner"
104
- },
105
-
106
- "NZD": {
107
- "symbol": "NZ$",
108
- "name": "New Zealand Dollar",
109
- "symbol_native": "$",
110
- "decimal_digits": 2,
111
- "rounding": 0,
112
- "code": "NZD",
113
- "name_plural": "New Zealand dollars"
114
- },
115
-
116
- "PLN": {
117
- "symbol": "zł",
118
- "name": "Polish Zloty",
119
- "symbol_native": "zł",
120
- "decimal_digits": 2,
121
- "rounding": 0,
122
- "code": "PLN",
123
- "name_plural": "Polish zlotys"
124
- },
125
-
126
- "SEK": {
127
- "symbol": "Skr",
128
- "name": "Swedish Krona",
129
- "symbol_native": "kr",
130
- "decimal_digits": 2,
131
- "rounding": 0,
132
- "code": "SEK",
133
- "name_plural": "Swedish kronor"
134
- },
135
- "SGD": {
136
- "symbol": "S$",
137
- "name": "Singapore Dollar",
138
- "symbol_native": "$",
139
- "decimal_digits": 2,
140
- "rounding": 0,
141
- "code": "SGD",
142
- "name_plural": "Singapore dollars"
143
- },
144
- "CHF": {
145
- "symbol": "CHF",
146
- "name": "Swiss Franc",
147
- "symbol_native": "CHF",
148
- "decimal_digits": 2,
149
- "rounding": 0.05,
150
- "code": "CHF",
151
- "name_plural": "Swiss francs"
152
- }
153
-
154
- }
@@ -1,154 +0,0 @@
1
- {
2
- "USD": {
3
- "symbol": "$",
4
- "name": "Dólar Americano",
5
- "symbol_native": "$",
6
- "decimal_digits": 2,
7
- "rounding": 0,
8
- "code": "USD",
9
- "name_plural": "Dólares estadounidenses"
10
- },
11
- "CAD": {
12
- "symbol": "CA$",
13
- "name": "Dólar Canadiense",
14
- "symbol_native": "$",
15
- "decimal_digits": 2,
16
- "rounding": 0,
17
- "code": "CAD",
18
- "name_plural": "Dólares canadienses"
19
- },
20
- "EUR": {
21
- "symbol": "€",
22
- "name": "Euro",
23
- "symbol_native": "€",
24
- "decimal_digits": 2,
25
- "rounding": 0,
26
- "code": "EUR",
27
- "name_plural": "euros"
28
- },
29
- "AUD": {
30
- "symbol": "AU$",
31
- "name": "Dólar Australiano",
32
- "symbol_native": "$",
33
- "decimal_digits": 2,
34
- "rounding": 0,
35
- "code": "AUD",
36
- "name_plural": "Dólares australianos"
37
- },
38
- "GBP": {
39
- "symbol": "£",
40
- "name": "Libra Esterlina Británica",
41
- "symbol_native": "£",
42
- "decimal_digits": 2,
43
- "rounding": 0,
44
- "code": "GBP",
45
- "name_plural": "Libras esterlinas"
46
- },
47
- "CZK": {
48
- "symbol": "Kč",
49
- "name": "Corona Checa",
50
- "symbol_native": "Kč",
51
- "decimal_digits": 2,
52
- "rounding": 0,
53
- "code": "CZK",
54
- "name_plural": "Coronas República Checa"
55
- },
56
- "DKK": {
57
- "symbol": "Dkr",
58
- "name": "Corona Danesa",
59
- "symbol_native": "kr",
60
- "decimal_digits": 2,
61
- "rounding": 0,
62
- "code": "DKK",
63
- "name_plural": "Coronas danesas"
64
- },
65
-
66
- "HKD": {
67
- "symbol": "HK$",
68
- "name": "Dólar de Hong Kong",
69
- "symbol_native": "$",
70
- "decimal_digits": 2,
71
- "rounding": 0,
72
- "code": "HKD",
73
- "name_plural": "Dólares de Hong Kong"
74
- },
75
-
76
- "HUF": {
77
- "symbol": "Ft",
78
- "name": "Florín Húngaro",
79
- "symbol_native": "Ft",
80
- "decimal_digits": 0,
81
- "rounding": 0,
82
- "code": "HUF",
83
- "name_plural": "Florín húngaro"
84
- },
85
-
86
- "JPY": {
87
- "symbol": "¥",
88
- "name": "Yen Japonés",
89
- "symbol_native": "¥",
90
- "decimal_digits": 0,
91
- "rounding": 0,
92
- "code": "JPY",
93
- "name_plural": "Yen Japonés"
94
- },
95
-
96
- "NOK": {
97
- "symbol": "Nkr",
98
- "name": "Corona Noruega",
99
- "symbol_native": "kr",
100
- "decimal_digits": 2,
101
- "rounding": 0,
102
- "code": "NOK",
103
- "name_plural": "Coronas noruegas"
104
- },
105
-
106
- "NZD": {
107
- "symbol": "NZ$",
108
- "name": "Dólar de Nueva Zelanda",
109
- "symbol_native": "$",
110
- "decimal_digits": 2,
111
- "rounding": 0,
112
- "code": "NZD",
113
- "name_plural": "Dólares de Nueva Zelanda"
114
- },
115
-
116
- "PLN": {
117
- "symbol": "zł",
118
- "name": "Zloty Polaco",
119
- "symbol_native": "zł",
120
- "decimal_digits": 2,
121
- "rounding": 0,
122
- "code": "PLN",
123
- "name_plural": "Zlotys Polacos"
124
- },
125
-
126
- "SEK": {
127
- "symbol": "Skr",
128
- "name": "Corona Sueca",
129
- "symbol_native": "kr",
130
- "decimal_digits": 2,
131
- "rounding": 0,
132
- "code": "SEK",
133
- "name_plural": "Coronas Suecas"
134
- },
135
- "SGD": {
136
- "symbol": "S$",
137
- "name": "Dólar de Singapur",
138
- "symbol_native": "$",
139
- "decimal_digits": 2,
140
- "rounding": 0,
141
- "code": "SGD",
142
- "name_plural": "Dólares de Singapur"
143
- },
144
- "CHF": {
145
- "symbol": "CHF",
146
- "name": "Franco Suizo",
147
- "symbol_native": "CHF",
148
- "decimal_digits": 2,
149
- "rounding": 0.05,
150
- "code": "CHF",
151
- "name_plural": "Francos Suizos"
152
- }
153
-
154
- }