shoppe 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/shoppe/application.coffee +1 -1
- data/app/assets/stylesheets/shoppe/application.scss +3 -3
- data/app/controllers/shoppe/application_controller.rb +4 -0
- data/app/controllers/shoppe/delivery_service_prices_controller.rb +1 -1
- data/app/controllers/shoppe/products_controller.rb +1 -1
- data/app/controllers/shoppe/tax_rates_controller.rb +47 -0
- data/app/models/shoppe/country.rb +14 -0
- data/app/models/shoppe/delivery_service_price.rb +1 -1
- data/app/models/shoppe/order.rb +3 -2
- data/app/models/shoppe/order_item.rb +5 -4
- data/app/models/shoppe/product.rb +1 -1
- data/app/models/shoppe/tax_rate.rb +23 -0
- data/app/views/layouts/shoppe/application.html.haml +1 -0
- data/app/views/shoppe/delivery_service_prices/_form.html.haml +2 -2
- data/app/views/shoppe/orders/show.html.haml +1 -1
- data/app/views/shoppe/products/_form.html.haml +2 -2
- data/app/views/shoppe/tax_rates/form.html.haml +22 -0
- data/app/views/shoppe/tax_rates/index.html.haml +17 -0
- data/config/routes.rb +1 -0
- data/db/countries.txt +252 -0
- data/db/migrate/20131017180920_create_shoppe_countries.rb +16 -0
- data/db/migrate/20131017183211_create_shoppe_tax_rates.rb +26 -0
- data/db/seeds.rb +29 -25
- data/lib/shoppe/country_importer.rb +15 -0
- data/lib/shoppe/version.rb +1 -1
- data/lib/tasks/shoppe.rake +12 -0
- data/test/dummy/config/database.yml +12 -11
- data/test/dummy/db/migrate/20131017165217_create_nifty_attachments_table.rb +16 -0
- data/test/dummy/db/migrate/20131017165222_create_nifty_key_value_store_table.rb +14 -0
- data/test/dummy/db/schema.rb +22 -1
- data/test/dummy/log/development.log +45 -0
- data/test/dummy/log/test.log +938 -0
- data/test/models/shoppe/basket_test.rb +1 -1
- data/test/models/shoppe/user_test.rb +11 -21
- data/test/test_helper.rb +5 -1
- metadata +32 -3
@@ -76,6 +76,7 @@ header.main {
|
|
76
76
|
h2.products { background-image:image-url('shoppe/icons/tags.svg')}
|
77
77
|
h2.orders { background-image:image-url('shoppe/icons/bag.svg'); background-position: 0 3px;}
|
78
78
|
h2.delivery_services { background-image:image-url('shoppe/icons/box.svg'); background-position: 0 3px; background-size:20px;}
|
79
|
+
h2.tax_rates { background-image:image-url('shoppe/icons/currency.svg'); background-position: 0 2px; background-size:22px;}
|
79
80
|
h2.users { background-image:image-url('shoppe/icons/id.svg'); background-position: 0 2px; background-size:22px;}
|
80
81
|
|
81
82
|
}
|
@@ -169,7 +170,7 @@ header.main {
|
|
169
170
|
margin-bottom:15px;
|
170
171
|
legend {color:#5B6270; margin:0 25px; font-weight:300; font-size:1.5em;}
|
171
172
|
|
172
|
-
.splitContainer { margin:0 25px; margin-bottom:15px;
|
173
|
+
.splitContainer { margin:0 25px; margin-bottom:15px; height:50px;}
|
173
174
|
.splitContainer:last-child { margin-bottom:0;}
|
174
175
|
|
175
176
|
dl {
|
@@ -184,13 +185,12 @@ header.main {
|
|
184
185
|
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
185
186
|
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
186
187
|
box-sizing: border-box; /* Opera/IE 8+ */
|
187
|
-
|
188
188
|
font-size:1.1em;
|
189
189
|
font-family:$font;
|
190
190
|
&:focus { border-color:#9AC835; }
|
191
191
|
&.short { width:100px;}
|
192
192
|
}
|
193
|
-
dd select { width:
|
193
|
+
dd select { width:100%;}
|
194
194
|
dd textarea { height:80px; }
|
195
195
|
dd p.help { margin-top:15px; color:#333; background:image-url('shoppe/icons/support.svg') no-repeat 0 1px; background-size:13px; padding-left:15px;}
|
196
196
|
dd.checkbox { margin-top:14px; font-size:1.1em; color:#999;}
|
@@ -4,6 +4,10 @@ module Shoppe
|
|
4
4
|
# Require that a user is logged in for all parts of the Shoppe admin
|
5
5
|
# interface.
|
6
6
|
before_filter :login_required
|
7
|
+
|
8
|
+
rescue_from ActiveRecord::DeleteRestrictionError do |e|
|
9
|
+
redirect_to request.referer || root_path, :alert => e.message
|
10
|
+
end
|
7
11
|
|
8
12
|
private
|
9
13
|
|
@@ -36,7 +36,7 @@ class Shoppe::DeliveryServicePricesController < Shoppe::ApplicationController
|
|
36
36
|
private
|
37
37
|
|
38
38
|
def safe_params
|
39
|
-
params[:delivery_service_price].permit(:price, :cost_price, :
|
39
|
+
params[:delivery_service_price].permit(:price, :cost_price, :tax_rate_id, :min_weight, :max_weight, :code)
|
40
40
|
end
|
41
41
|
|
42
42
|
end
|
@@ -53,7 +53,7 @@ class Shoppe::ProductsController < Shoppe::ApplicationController
|
|
53
53
|
private
|
54
54
|
|
55
55
|
def safe_params
|
56
|
-
params[:product].permit(:product_category_id, :title, :sku, :permalink, :description, :short_description, :weight, :price, :cost_price, :
|
56
|
+
params[:product].permit(:product_category_id, :title, :sku, :permalink, :description, :short_description, :weight, :price, :cost_price, :tax_rate_id, :stock_control, :default_image_file, :data_sheet_file, :active, :featured, :in_the_box, :product_attributes_array => [:key, :value, :searchable, :public])
|
57
57
|
end
|
58
58
|
|
59
59
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
class Shoppe::TaxRatesController < Shoppe::ApplicationController
|
2
|
+
|
3
|
+
before_filter { @active_nav = :tax_rates }
|
4
|
+
before_filter { params[:id] && @tax_rate = Shoppe::TaxRate.find(params[:id]) }
|
5
|
+
|
6
|
+
def index
|
7
|
+
@tax_rates = Shoppe::TaxRate.ordered.all
|
8
|
+
end
|
9
|
+
|
10
|
+
def new
|
11
|
+
@tax_rate = Shoppe::TaxRate.new
|
12
|
+
render :action => "form"
|
13
|
+
end
|
14
|
+
|
15
|
+
def create
|
16
|
+
@tax_rate = Shoppe::TaxRate.new(safe_params)
|
17
|
+
if @tax_rate.save
|
18
|
+
redirect_to :tax_rates, :flash => {:notice => "Tax rate has been created successfully"}
|
19
|
+
else
|
20
|
+
render :action => "form"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
render :action => "form"
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if @tax_rate.update(safe_params)
|
30
|
+
redirect_to [:edit, @tax_rate], :flash => {:notice => "Tax rate has been updated successfully"}
|
31
|
+
else
|
32
|
+
render :action => "form"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def destroy
|
37
|
+
@tax_rate.destroy
|
38
|
+
redirect_to :tax_rates, :flash => {:notice => "Tax rate has been removed successfully"}
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def safe_params
|
44
|
+
params[:tax_rate].permit(:name, :rate)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Shoppe
|
2
|
+
class Country < ActiveRecord::Base
|
3
|
+
|
4
|
+
# Set the table name
|
5
|
+
self.table_name = 'shoppe_countries'
|
6
|
+
|
7
|
+
# Relationships
|
8
|
+
has_many :orders, :dependent => :restrict_with_exception
|
9
|
+
|
10
|
+
# Scopes
|
11
|
+
scope :ordered, -> { order('shoppe_countries.name asc') }
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
@@ -5,11 +5,11 @@ class Shoppe::DeliveryServicePrice < ActiveRecord::Base
|
|
5
5
|
|
6
6
|
# Relationships
|
7
7
|
belongs_to :delivery_service, :class_name => 'Shoppe::DeliveryService'
|
8
|
+
belongs_to :tax_rate, :class_name => "Shoppe::TaxRate"
|
8
9
|
|
9
10
|
# Validations
|
10
11
|
validates :price, :numericality => true
|
11
12
|
validates :cost_price, :numericality => true, :allow_blank => true
|
12
|
-
validates :tax_rate, :numericality => true
|
13
13
|
validates :min_weight, :numericality => true
|
14
14
|
validates :max_weight, :numericality => true
|
15
15
|
|
data/app/models/shoppe/order.rb
CHANGED
@@ -16,6 +16,7 @@ class Shoppe::Order < ActiveRecord::Base
|
|
16
16
|
|
17
17
|
# Relationships
|
18
18
|
belongs_to :delivery_service, :class_name => 'Shoppe::DeliveryService'
|
19
|
+
belongs_to :country, :class_name => 'Shoppe::Country'
|
19
20
|
belongs_to :accepter, :class_name => 'Shoppe::User', :foreign_key => 'accepted_by'
|
20
21
|
belongs_to :rejecter, :class_name => 'Shoppe::User', :foreign_key => 'rejected_by'
|
21
22
|
belongs_to :shipper, :class_name => 'Shoppe::User', :foreign_key => 'shipped_by'
|
@@ -188,7 +189,7 @@ class Shoppe::Order < ActiveRecord::Base
|
|
188
189
|
def delivery_tax_amount
|
189
190
|
@delivery_tax_amount ||= begin
|
190
191
|
read_attribute(:delivery_tax_amount) ||
|
191
|
-
(delivery_service_price ? delivery_price / BigDecimal(100) * delivery_service_price.tax_rate : 0.0) ||
|
192
|
+
(delivery_service_price && delivery_service_price.tax_rate ? delivery_price / BigDecimal(100) * delivery_service_price.tax_rate.rate : 0.0) ||
|
192
193
|
0.0
|
193
194
|
end
|
194
195
|
end
|
@@ -197,7 +198,7 @@ class Shoppe::Order < ActiveRecord::Base
|
|
197
198
|
def delivery_tax_rate
|
198
199
|
@delivery_tax_rate ||= begin
|
199
200
|
read_attribute(:delivery_tax_rate) ||
|
200
|
-
delivery_service_price.try(:tax_rate) ||
|
201
|
+
delivery_service_price.try(:tax_rate).try(:rate) ||
|
201
202
|
0.0
|
202
203
|
end
|
203
204
|
end
|
@@ -14,10 +14,11 @@ class Shoppe::OrderItem < ActiveRecord::Base
|
|
14
14
|
# Set some values based on the selected product on validation
|
15
15
|
before_validation do
|
16
16
|
if self.product
|
17
|
-
self.unit_price
|
18
|
-
self.unit_cost_price
|
19
|
-
self.tax_rate
|
20
|
-
|
17
|
+
self.unit_price = self.product.price if self.unit_price.blank?
|
18
|
+
self.unit_cost_price = self.product.cost_price if self.unit_cost_price.blank?
|
19
|
+
self.tax_rate = self.product.tax_rate.rate if self.tax_rate.blank? && self.product.tax_rate
|
20
|
+
|
21
|
+
if unit_price_changed? || quantity_changed? || tax_rate_changed?
|
21
22
|
self.tax_amount = (self.sub_total / BigDecimal(100)) * self.tax_rate
|
22
23
|
end
|
23
24
|
|
@@ -12,6 +12,7 @@ class Shoppe::Product < ActiveRecord::Base
|
|
12
12
|
|
13
13
|
# Relationships
|
14
14
|
belongs_to :product_category, :class_name => 'Shoppe::ProductCategory'
|
15
|
+
belongs_to :tax_rate, :class_name => "Shoppe::TaxRate"
|
15
16
|
has_many :order_items, :dependent => :restrict_with_exception, :class_name => 'Shoppe::OrderItem'
|
16
17
|
has_many :orders, :through => :order_items, :class_name => 'Shoppe::Order'
|
17
18
|
has_many :stock_level_adjustments, :dependent => :destroy
|
@@ -26,7 +27,6 @@ class Shoppe::Product < ActiveRecord::Base
|
|
26
27
|
validates :weight, :numericality => true
|
27
28
|
validates :price, :numericality => true
|
28
29
|
validates :cost_price, :numericality => true, :allow_blank => true
|
29
|
-
validates :tax_rate, :numericality => true
|
30
30
|
|
31
31
|
# Set the permalink
|
32
32
|
before_validation { self.permalink = self.title.parameterize if self.permalink.blank? && self.title.is_a?(String) }
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Shoppe
|
2
|
+
class TaxRate < ActiveRecord::Base
|
3
|
+
|
4
|
+
# Set the table name
|
5
|
+
self.table_name = 'shoppe_tax_rates'
|
6
|
+
|
7
|
+
# Validations
|
8
|
+
validates :name, :presence => true
|
9
|
+
validates :rate, :numericality => true
|
10
|
+
|
11
|
+
# Relationships
|
12
|
+
has_many :products, :dependent => :restrict_with_exception
|
13
|
+
has_many :delivery_service_prices, :dependent => :restrict_with_exception
|
14
|
+
|
15
|
+
# Scopes
|
16
|
+
scope :ordered, -> { order("shoppe_tax_rates.id")}
|
17
|
+
|
18
|
+
def description
|
19
|
+
"#{name} (#{rate}%)"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -19,6 +19,7 @@
|
|
19
19
|
%li= link_to "Products", [:products], :class => @active_nav == :products ? 'active' : ''
|
20
20
|
%li= link_to "Product Categories", :product_categories, :class => @active_nav == :product_categories ? 'active' : ''
|
21
21
|
%li= link_to "Delivery Services", [:delivery_services], :class => @active_nav == :delivery_services ? 'active' : ''
|
22
|
+
%li= link_to "Tax Rates", :tax_rates, :class => @active_nav == :tax_rates ? 'active' : ''
|
22
23
|
%li= link_to "Users", [:users], :class => @active_nav == :users ? 'active' : ''
|
23
24
|
%li= link_to "Logout", [:logout], :method => :delete
|
24
25
|
|
@@ -22,8 +22,8 @@
|
|
22
22
|
%dt= f.label :cost_price
|
23
23
|
%dd= f.text_field :cost_price
|
24
24
|
%dl.third
|
25
|
-
%dt= f.label :
|
26
|
-
%dd= f.
|
25
|
+
%dt= f.label :tax_rate_id
|
26
|
+
%dd= f.collection_select :tax_rate_id, Shoppe::TaxRate.ordered, :id, :description, {:include_blank => true}, {:class => 'chosen-with-deselect', :data => {:placeholder => "No tax"}}
|
27
27
|
|
28
28
|
%p.submit
|
29
29
|
- unless @delivery_service_price.new_record?
|
@@ -76,8 +76,8 @@
|
|
76
76
|
%dt= f.label :cost_price
|
77
77
|
%dd= f.text_field :cost_price
|
78
78
|
%dl.third
|
79
|
-
%dt= f.label :
|
80
|
-
%dd= f.
|
79
|
+
%dt= f.label :tax_rate_id
|
80
|
+
%dd= f.collection_select :tax_rate_id, Shoppe::TaxRate.ordered, :id, :description, {:include_blank => true}, {:class => 'chosen-with-deselect', :data => {:placeholder => "No tax"}}
|
81
81
|
|
82
82
|
= field_set_tag "Website Properties" do
|
83
83
|
.splitContainer
|
@@ -0,0 +1,22 @@
|
|
1
|
+
- @page_title = "Tax Rates"
|
2
|
+
= content_for :header do
|
3
|
+
%p.buttons= link_to "Back to tax rates", :tax_rates, :class => 'button'
|
4
|
+
%h2.tax_rates Tax Rates
|
5
|
+
|
6
|
+
= form_for @tax_rate do |f|
|
7
|
+
= f.error_messages
|
8
|
+
= field_set_tag "Rate Details" do
|
9
|
+
.splitContainer
|
10
|
+
%dl.half
|
11
|
+
%dt= f.label :name
|
12
|
+
%dd= f.text_field :name, :class => 'focus'
|
13
|
+
%dl.half
|
14
|
+
%dt= f.label :rate
|
15
|
+
%dd= f.text_field :rate
|
16
|
+
|
17
|
+
|
18
|
+
%p.submit
|
19
|
+
- unless @tax_rate.new_record?
|
20
|
+
%span.right= link_to "Delete", @tax_rate, :class => 'button purple', :method => :delete, :data => {:confirm => "Are you sure you wish to remove this tax_rate?"}
|
21
|
+
= f.submit :class => 'button green'
|
22
|
+
= link_to "Cancel", :tax_rates, :class => 'button'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
- @page_title = "Tax Rates"
|
2
|
+
|
3
|
+
= content_for :header do
|
4
|
+
%p.buttons=link_to "New tax rate", :new_tax_rate, :class => 'button green'
|
5
|
+
%h2.tax_rates Tax Rates
|
6
|
+
|
7
|
+
.table
|
8
|
+
%table.data
|
9
|
+
%thead
|
10
|
+
%tr
|
11
|
+
%th Name
|
12
|
+
%th Rate
|
13
|
+
%tbody
|
14
|
+
- for tax_rate in @tax_rates
|
15
|
+
%tr
|
16
|
+
%td= link_to tax_rate.name, [:edit, tax_rate]
|
17
|
+
%td= tax_rate.rate
|
data/config/routes.rb
CHANGED
data/db/countries.txt
ADDED
@@ -0,0 +1,252 @@
|
|
1
|
+
AD AND Andorra EU .ad EUR
|
2
|
+
AE ARE United Arab Emirates AS .ae AED
|
3
|
+
AF AFG Afghanistan AS .af AFN
|
4
|
+
AG ATG Antigua and Barbuda NA .ag XCD
|
5
|
+
AI AIA Anguilla NA .ai XCD
|
6
|
+
AL ALB Albania EU .al ALL
|
7
|
+
AM ARM Armenia AS .am AMD
|
8
|
+
AO AGO Angola AF .ao AOA
|
9
|
+
AQ ATA Antarctica AN .aq
|
10
|
+
AR ARG Argentina SA .ar ARS
|
11
|
+
AS ASM American Samoa OC .as USD
|
12
|
+
AT AUT Austria EU .at EUR
|
13
|
+
AU AUS Australia OC .au AUD
|
14
|
+
AW ABW Aruba NA .aw AWG
|
15
|
+
AX ALA Aland Islands EU .ax EUR
|
16
|
+
AZ AZE Azerbaijan AS .az AZN
|
17
|
+
BA BIH Bosnia and Herzegovina EU .ba BAM
|
18
|
+
BB BRB Barbados NA .bb BBD
|
19
|
+
BD BGD Bangladesh AS .bd BDT
|
20
|
+
BE BEL Belgium EU .be EUR
|
21
|
+
BF BFA Burkina Faso AF .bf XOF
|
22
|
+
BG BGR Bulgaria EU .bg BGN
|
23
|
+
BH BHR Bahrain AS .bh BHD
|
24
|
+
BI BDI Burundi AF .bi BIF
|
25
|
+
BJ BEN Benin AF .bj XOF
|
26
|
+
BL BLM Saint Barthelemy NA .gp EUR
|
27
|
+
BM BMU Bermuda NA .bm BMD
|
28
|
+
BN BRN Brunei AS .bn BND
|
29
|
+
BO BOL Bolivia SA .bo BOB
|
30
|
+
BQ BES Bonaire, Saint Eustatius and Saba NA .bq USD
|
31
|
+
BR BRA Brazil SA .br BRL
|
32
|
+
BS BHS Bahamas NA .bs BSD
|
33
|
+
BT BTN Bhutan AS .bt BTN
|
34
|
+
BV BVT Bouvet Island AN .bv NOK
|
35
|
+
BW BWA Botswana AF .bw BWP
|
36
|
+
BY BLR Belarus EU .by BYR
|
37
|
+
BZ BLZ Belize NA .bz BZD
|
38
|
+
CA CAN Canada NA .ca CAD
|
39
|
+
CC CCK Cocos Islands AS .cc AUD
|
40
|
+
CD COD Democratic Republic of the Congo AF .cd CDF
|
41
|
+
CF CAF Central African Republic AF .cf XAF
|
42
|
+
CG COG Republic of the Congo AF .cg XAF
|
43
|
+
CH CHE Switzerland EU .ch CHF
|
44
|
+
CI CIV Ivory Coast AF .ci XOF
|
45
|
+
CK COK Cook Islands OC .ck NZD
|
46
|
+
CL CHL Chile SA .cl CLP
|
47
|
+
CM CMR Cameroon AF .cm XAF
|
48
|
+
CN CHN China AS .cn CNY
|
49
|
+
CO COL Colombia SA .co COP
|
50
|
+
CR CRI Costa Rica NA .cr CRC
|
51
|
+
CU CUB Cuba NA .cu CUP
|
52
|
+
CV CPV Cape Verde AF .cv CVE
|
53
|
+
CW CUW Curacao NA .cw ANG
|
54
|
+
CX CXR Christmas Island AS .cx AUD
|
55
|
+
CY CYP Cyprus EU .cy EUR
|
56
|
+
CZ CZE Czech Republic EU .cz CZK
|
57
|
+
DE DEU Germany EU .de EUR
|
58
|
+
DJ DJI Djibouti AF .dj DJF
|
59
|
+
DK DNK Denmark EU .dk DKK
|
60
|
+
DM DMA Dominica NA .dm XCD
|
61
|
+
DO DOM Dominican Republic NA .do DOP
|
62
|
+
DZ DZA Algeria AF .dz DZD
|
63
|
+
EC ECU Ecuador SA .ec USD
|
64
|
+
EE EST Estonia EU .ee EUR
|
65
|
+
EG EGY Egypt AF .eg EGP
|
66
|
+
EH ESH Western Sahara AF .eh MAD
|
67
|
+
ER ERI Eritrea AF .er ERN
|
68
|
+
ES ESP Spain EU .es EUR
|
69
|
+
ET ETH Ethiopia AF .et ETB
|
70
|
+
FI FIN Finland EU .fi EUR
|
71
|
+
FJ FJI Fiji OC .fj FJD
|
72
|
+
FK FLK Falkland Islands SA .fk FKP
|
73
|
+
FM FSM Micronesia OC .fm USD
|
74
|
+
FO FRO Faroe Islands EU .fo DKK
|
75
|
+
FR FRA France EU .fr EUR
|
76
|
+
GA GAB Gabon AF .ga XAF
|
77
|
+
GB GBR United Kingdom EU .uk GBP
|
78
|
+
GD GRD Grenada NA .gd XCD
|
79
|
+
GE GEO Georgia AS .ge GEL
|
80
|
+
GF GUF French Guiana SA .gf EUR
|
81
|
+
GG GGY Guernsey EU .gg GBP
|
82
|
+
GH GHA Ghana AF .gh GHS
|
83
|
+
GI GIB Gibraltar EU .gi GIP
|
84
|
+
GL GRL Greenland NA .gl DKK
|
85
|
+
GM GMB Gambia AF .gm GMD
|
86
|
+
GN GIN Guinea AF .gn GNF
|
87
|
+
GP GLP Guadeloupe NA .gp EUR
|
88
|
+
GQ GNQ Equatorial Guinea AF .gq XAF
|
89
|
+
GR GRC Greece EU .gr EUR
|
90
|
+
GS SGS South Georgia and the South Sandwich Islands AN .gs GBP
|
91
|
+
GT GTM Guatemala NA .gt GTQ
|
92
|
+
GU GUM Guam OC .gu USD
|
93
|
+
GW GNB Guinea-Bissau AF .gw XOF
|
94
|
+
GY GUY Guyana SA .gy GYD
|
95
|
+
HK HKG Hong Kong AS .hk HKD
|
96
|
+
HM HMD Heard Island and McDonald Islands AN .hm AUD
|
97
|
+
HN HND Honduras NA .hn HNL
|
98
|
+
HR HRV Croatia EU .hr HRK
|
99
|
+
HT HTI Haiti NA .ht HTG
|
100
|
+
HU HUN Hungary EU .hu HUF
|
101
|
+
ID IDN Indonesia AS .id IDR
|
102
|
+
IE IRL Ireland EU .ie EUR
|
103
|
+
IL ISR Israel AS .il ILS
|
104
|
+
IM IMN Isle of Man EU .im GBP
|
105
|
+
IN IND India AS .in INR
|
106
|
+
IO IOT British Indian Ocean Territory AS .io USD
|
107
|
+
IQ IRQ Iraq AS .iq IQD
|
108
|
+
IR IRN Iran AS .ir IRR
|
109
|
+
IS ISL Iceland EU .is ISK
|
110
|
+
IT ITA Italy EU .it EUR
|
111
|
+
JE JEY Jersey EU .je GBP
|
112
|
+
JM JAM Jamaica NA .jm JMD
|
113
|
+
JO JOR Jordan AS .jo JOD
|
114
|
+
JP JPN Japan AS .jp JPY
|
115
|
+
KE KEN Kenya AF .ke KES
|
116
|
+
KG KGZ Kyrgyzstan AS .kg KGS
|
117
|
+
KH KHM Cambodia AS .kh KHR
|
118
|
+
KI KIR Kiribati OC .ki AUD
|
119
|
+
KM COM Comoros AF .km KMF
|
120
|
+
KN KNA Saint Kitts and Nevis NA .kn XCD
|
121
|
+
KP PRK North Korea AS .kp KPW
|
122
|
+
KR KOR South Korea AS .kr KRW
|
123
|
+
XK XKX Kosovo EU EUR
|
124
|
+
KW KWT Kuwait AS .kw KWD
|
125
|
+
KY CYM Cayman Islands NA .ky KYD
|
126
|
+
KZ KAZ Kazakhstan AS .kz KZT
|
127
|
+
LA LAO Laos AS .la LAK
|
128
|
+
LB LBN Lebanon AS .lb LBP
|
129
|
+
LC LCA Saint Lucia NA .lc XCD
|
130
|
+
LI LIE Liechtenstein EU .li CHF
|
131
|
+
LK LKA Sri Lanka AS .lk LKR
|
132
|
+
LR LBR Liberia AF .lr LRD
|
133
|
+
LS LSO Lesotho AF .ls LSL
|
134
|
+
LT LTU Lithuania EU .lt LTL
|
135
|
+
LU LUX Luxembourg EU .lu EUR
|
136
|
+
LV LVA Latvia EU .lv LVL
|
137
|
+
LY LBY Libya AF .ly LYD
|
138
|
+
MA MAR Morocco AF .ma MAD
|
139
|
+
MC MCO Monaco EU .mc EUR
|
140
|
+
MD MDA Moldova EU .md MDL
|
141
|
+
ME MNE Montenegro EU .me EUR
|
142
|
+
MF MAF Saint Martin NA .gp EUR
|
143
|
+
MG MDG Madagascar AF .mg MGA
|
144
|
+
MH MHL Marshall Islands OC .mh USD
|
145
|
+
MK MKD Macedonia EU .mk MKD
|
146
|
+
ML MLI Mali AF .ml XOF
|
147
|
+
MM MMR Myanmar AS .mm MMK
|
148
|
+
MN MNG Mongolia AS .mn MNT
|
149
|
+
MO MAC Macao AS .mo MOP
|
150
|
+
MP MNP Northern Mariana Islands OC .mp USD
|
151
|
+
MQ MTQ Martinique NA .mq EUR
|
152
|
+
MR MRT Mauritania AF .mr MRO
|
153
|
+
MS MSR Montserrat NA .ms XCD
|
154
|
+
MT MLT Malta EU .mt EUR
|
155
|
+
MU MUS Mauritius AF .mu MUR
|
156
|
+
MV MDV Maldives AS .mv MVR
|
157
|
+
MW MWI Malawi AF .mw MWK
|
158
|
+
MX MEX Mexico NA .mx MXN
|
159
|
+
MY MYS Malaysia AS .my MYR
|
160
|
+
MZ MOZ Mozambique AF .mz MZN
|
161
|
+
NA NAM Namibia AF .na NAD
|
162
|
+
NC NCL New Caledonia OC .nc XPF
|
163
|
+
NE NER Niger AF .ne XOF
|
164
|
+
NF NFK Norfolk Island OC .nf AUD
|
165
|
+
NG NGA Nigeria AF .ng NGN
|
166
|
+
NI NIC Nicaragua NA .ni NIO
|
167
|
+
NL NLD Netherlands EU .nl EUR
|
168
|
+
NO NOR Norway EU .no NOK
|
169
|
+
NP NPL Nepal AS .np NPR
|
170
|
+
NR NRU Nauru OC .nr AUD
|
171
|
+
NU NIU Niue OC .nu NZD
|
172
|
+
NZ NZL New Zealand OC .nz NZD
|
173
|
+
OM OMN Oman AS .om OMR
|
174
|
+
PA PAN Panama NA .pa PAB
|
175
|
+
PE PER Peru SA .pe PEN
|
176
|
+
PF PYF French Polynesia OC .pf XPF
|
177
|
+
PG PNG Papua New Guinea OC .pg PGK
|
178
|
+
PH PHL Philippines AS .ph PHP
|
179
|
+
PK PAK Pakistan AS .pk PKR
|
180
|
+
PL POL Poland EU .pl PLN
|
181
|
+
PM SPM Saint Pierre and Miquelon NA .pm EUR
|
182
|
+
PN PCN Pitcairn OC .pn NZD
|
183
|
+
PR PRI Puerto Rico NA .pr USD
|
184
|
+
PS PSE Palestinian Territory AS .ps ILS
|
185
|
+
PT PRT Portugal EU .pt EUR
|
186
|
+
PW PLW Palau OC .pw USD
|
187
|
+
PY PRY Paraguay SA .py PYG
|
188
|
+
QA QAT Qatar AS .qa QAR
|
189
|
+
RE REU Reunion AF .re EUR
|
190
|
+
RO ROU Romania EU .ro RON
|
191
|
+
RS SRB Serbia EU .rs RSD
|
192
|
+
RU RUS Russia EU .ru RUB
|
193
|
+
RW RWA Rwanda AF .rw RWF
|
194
|
+
SA SAU Saudi Arabia AS .sa SAR
|
195
|
+
SB SLB Solomon Islands OC .sb SBD
|
196
|
+
SC SYC Seychelles AF .sc SCR
|
197
|
+
SD SDN Sudan AF .sd SDG
|
198
|
+
SS SSD South Sudan AF SSP
|
199
|
+
SE SWE Sweden EU .se SEK
|
200
|
+
SG SGP Singapore AS .sg SGD
|
201
|
+
SH SHN Saint Helena AF .sh SHP
|
202
|
+
SI SVN Slovenia EU .si EUR
|
203
|
+
SJ SJM Svalbard and Jan Mayen EU .sj NOK
|
204
|
+
SK SVK Slovakia EU .sk EUR
|
205
|
+
SL SLE Sierra Leone AF .sl SLL
|
206
|
+
SM SMR San Marino EU .sm EUR
|
207
|
+
SN SEN Senegal AF .sn XOF
|
208
|
+
SO SOM Somalia AF .so SOS
|
209
|
+
SR SUR Suriname SA .sr SRD
|
210
|
+
ST STP Sao Tome and Principe AF .st STD
|
211
|
+
SV SLV El Salvador NA .sv USD
|
212
|
+
SX SXM Sint Maarten NA .sx ANG
|
213
|
+
SY SYR Syria AS .sy SYP
|
214
|
+
SZ SWZ Swaziland AF .sz SZL
|
215
|
+
TC TCA Turks and Caicos Islands NA .tc USD
|
216
|
+
TD TCD Chad AF .td XAF
|
217
|
+
TF ATF French Southern Territories AN .tf EUR
|
218
|
+
TG TGO Togo AF .tg XOF
|
219
|
+
TH THA Thailand AS .th THB
|
220
|
+
TJ TJK Tajikistan AS .tj TJS
|
221
|
+
TK TKL Tokelau OC .tk NZD
|
222
|
+
TL TLS East Timor OC .tl USD
|
223
|
+
TM TKM Turkmenistan AS .tm TMT
|
224
|
+
TN TUN Tunisia AF .tn TND
|
225
|
+
TO TON Tonga OC .to TOP
|
226
|
+
TR TUR Turkey AS .tr TRY
|
227
|
+
TT TTO Trinidad and Tobago NA .tt TTD
|
228
|
+
TV TUV Tuvalu OC .tv AUD
|
229
|
+
TW TWN Taiwan AS .tw TWD
|
230
|
+
TZ TZA Tanzania AF .tz TZS
|
231
|
+
UA UKR Ukraine EU .ua UAH
|
232
|
+
UG UGA Uganda AF .ug UGX
|
233
|
+
UM UMI United States Minor Outlying Islands OC .um USD
|
234
|
+
US USA United States NA .us USD
|
235
|
+
UY URY Uruguay SA .uy UYU
|
236
|
+
UZ UZB Uzbekistan AS .uz UZS
|
237
|
+
VA VAT Vatican EU .va EUR
|
238
|
+
VC VCT Saint Vincent and the Grenadines NA .vc XCD
|
239
|
+
VE VEN Venezuela SA .ve VEF
|
240
|
+
VG VGB British Virgin Islands NA .vg USD
|
241
|
+
VI VIR U.S. Virgin Islands NA .vi USD
|
242
|
+
VN VNM Vietnam AS .vn VND
|
243
|
+
VU VUT Vanuatu OC .vu VUV
|
244
|
+
WF WLF Wallis and Futuna OC .wf XPF
|
245
|
+
WS WSM Samoa OC .ws WST
|
246
|
+
YE YEM Yemen AS .ye YER
|
247
|
+
YT MYT Mayotte AF .yt EUR
|
248
|
+
ZA ZAF South Africa AF .za ZAR
|
249
|
+
ZM ZMB Zambia AF .zm ZMK
|
250
|
+
ZW ZWE Zimbabwe AF .zw ZWL
|
251
|
+
CS SCG Serbia and Montenegro EU .cs RSD
|
252
|
+
AN ANT Netherlands Antilles NA .an ANG
|