Refactor authorization and token refresh logic; update tax handling and invoice generation

- Changed variable name from `$stmt_service` to `$stmt_refreshkey` for clarity in `authorization.php` and `token_refresh.php`.
- Added null coalescing operator to ensure criteria are set to an empty string if not provided in `products_software_versions.php`.
- Modified SQL script to add `eu` column to `taxes` table and update tax rates based on EU membership.
- Enhanced invoice generation logic in `functions.php` to include VAT notes based on customer country and VAT number.
- Updated email and PDF templates to display VAT notes and percentages correctly.
- Adjusted JavaScript tax calculation logic to handle VAT based on country and VAT number.
- Fixed API URL in `index.php` for token refresh endpoint.
- Updated countries data structure in `countries.php` to include EU membership status.
This commit is contained in:
“VeLiTi”
2026-02-05 15:26:41 +01:00
parent c4cb99b945
commit d7b9b91bb6
10 changed files with 271 additions and 168 deletions

View File

@@ -1,148 +1,148 @@
<?php
// Auto-generated countries file from taxes API
// Generated on: 2026-01-16 14:21:38
// Generated on: 2026-02-05 14:44:35
$countries = [
1 => ['country' => 'Austria', 'taxes' => 20.00],
2 => ['country' => 'Belgium', 'taxes' => 21.00],
3 => ['country' => 'Bulgaria', 'taxes' => 20.00],
4 => ['country' => 'Croatia', 'taxes' => 25.00],
5 => ['country' => 'Cyprus', 'taxes' => 19.00],
6 => ['country' => 'Czech Republic', 'taxes' => 21.00],
7 => ['country' => 'Denmark', 'taxes' => 25.00],
8 => ['country' => 'Estonia', 'taxes' => 24.00],
9 => ['country' => 'Finland', 'taxes' => 25.50],
10 => ['country' => 'France', 'taxes' => 20.00],
11 => ['country' => 'Germany', 'taxes' => 19.00],
12 => ['country' => 'Greece', 'taxes' => 24.00],
13 => ['country' => 'Hungary', 'taxes' => 27.00],
14 => ['country' => 'Ireland', 'taxes' => 23.00],
15 => ['country' => 'Italy', 'taxes' => 22.00],
16 => ['country' => 'Latvia', 'taxes' => 21.00],
17 => ['country' => 'Lithuania', 'taxes' => 21.00],
18 => ['country' => 'Luxembourg', 'taxes' => 16.00],
19 => ['country' => 'Malta', 'taxes' => 18.00],
20 => ['country' => 'Netherlands', 'taxes' => 21.00],
21 => ['country' => 'Poland', 'taxes' => 23.00],
22 => ['country' => 'Portugal', 'taxes' => 23.00],
23 => ['country' => 'Romania', 'taxes' => 19.00],
24 => ['country' => 'Slovakia', 'taxes' => 23.00],
25 => ['country' => 'Slovenia', 'taxes' => 22.00],
26 => ['country' => 'Spain', 'taxes' => 21.00],
27 => ['country' => 'Sweden', 'taxes' => 25.00],
28 => ['country' => 'United Kingdom', 'taxes' => 20.00],
29 => ['country' => 'Switzerland', 'taxes' => 8.10],
30 => ['country' => 'Norway', 'taxes' => 25.00],
31 => ['country' => 'Iceland', 'taxes' => 24.00],
32 => ['country' => 'Albania', 'taxes' => 20.00],
33 => ['country' => 'Serbia', 'taxes' => 20.00],
34 => ['country' => 'North Macedonia', 'taxes' => 18.00],
35 => ['country' => 'Bosnia and Herzegovina', 'taxes' => 17.00],
36 => ['country' => 'Montenegro', 'taxes' => 21.00],
37 => ['country' => 'Moldova', 'taxes' => 20.00],
38 => ['country' => 'Ukraine', 'taxes' => 20.00],
39 => ['country' => 'Belarus', 'taxes' => 20.00],
40 => ['country' => 'Turkey', 'taxes' => 20.00],
41 => ['country' => 'Andorra', 'taxes' => 4.50],
42 => ['country' => 'Australia', 'taxes' => 10.00],
43 => ['country' => 'New Zealand', 'taxes' => 15.00],
44 => ['country' => 'Japan', 'taxes' => 10.00],
45 => ['country' => 'China', 'taxes' => 13.00],
46 => ['country' => 'India', 'taxes' => 18.00],
47 => ['country' => 'South Korea', 'taxes' => 10.00],
48 => ['country' => 'Singapore', 'taxes' => 9.00],
49 => ['country' => 'Indonesia', 'taxes' => 11.00],
50 => ['country' => 'Thailand', 'taxes' => 7.00],
51 => ['country' => 'Vietnam', 'taxes' => 8.00],
52 => ['country' => 'Philippines', 'taxes' => 12.00],
53 => ['country' => 'Malaysia', 'taxes' => 0.00],
54 => ['country' => 'Taiwan', 'taxes' => 5.00],
55 => ['country' => 'Pakistan', 'taxes' => 18.00],
56 => ['country' => 'Bangladesh', 'taxes' => 15.00],
57 => ['country' => 'Sri Lanka', 'taxes' => 18.00],
58 => ['country' => 'Nepal', 'taxes' => 13.00],
59 => ['country' => 'Cambodia', 'taxes' => 10.00],
60 => ['country' => 'Myanmar', 'taxes' => 5.00],
61 => ['country' => 'Laos', 'taxes' => 10.00],
62 => ['country' => 'Mongolia', 'taxes' => 10.00],
63 => ['country' => 'Kazakhstan', 'taxes' => 12.00],
64 => ['country' => 'Uzbekistan', 'taxes' => 12.00],
65 => ['country' => 'Armenia', 'taxes' => 20.00],
66 => ['country' => 'Georgia', 'taxes' => 18.00],
67 => ['country' => 'Azerbaijan', 'taxes' => 18.00],
68 => ['country' => 'Fiji', 'taxes' => 9.00],
69 => ['country' => 'Papua New Guinea', 'taxes' => 10.00],
70 => ['country' => 'Samoa', 'taxes' => 15.00],
71 => ['country' => 'Tonga', 'taxes' => 15.00],
72 => ['country' => 'Vanuatu', 'taxes' => 15.00],
73 => ['country' => 'Bhutan', 'taxes' => 7.00],
74 => ['country' => 'Saudi Arabia', 'taxes' => 15.00],
75 => ['country' => 'United Arab Emirates', 'taxes' => 5.00],
76 => ['country' => 'Bahrain', 'taxes' => 10.00],
77 => ['country' => 'Kuwait', 'taxes' => 0.00],
78 => ['country' => 'Oman', 'taxes' => 5.00],
79 => ['country' => 'Qatar', 'taxes' => 0.00],
80 => ['country' => 'Israel', 'taxes' => 17.00],
81 => ['country' => 'Jordan', 'taxes' => 16.00],
82 => ['country' => 'Lebanon', 'taxes' => 11.00],
83 => ['country' => 'Egypt', 'taxes' => 14.00],
85 => ['country' => 'South Africa', 'taxes' => 15.00],
86 => ['country' => 'Nigeria', 'taxes' => 7.50],
87 => ['country' => 'Kenya', 'taxes' => 16.00],
88 => ['country' => 'Ghana', 'taxes' => 15.00],
89 => ['country' => 'Morocco', 'taxes' => 20.00],
90 => ['country' => 'Tunisia', 'taxes' => 19.00],
91 => ['country' => 'Algeria', 'taxes' => 19.00],
92 => ['country' => 'Egypt', 'taxes' => 14.00],
93 => ['country' => 'Ethiopia', 'taxes' => 15.00],
94 => ['country' => 'Tanzania', 'taxes' => 18.00],
95 => ['country' => 'Uganda', 'taxes' => 18.00],
96 => ['country' => 'Zimbabwe', 'taxes' => 15.00],
97 => ['country' => 'Zambia', 'taxes' => 16.00],
98 => ['country' => 'Botswana', 'taxes' => 14.00],
99 => ['country' => 'Mauritius', 'taxes' => 15.00],
100 => ['country' => 'Namibia', 'taxes' => 15.00],
101 => ['country' => 'Rwanda', 'taxes' => 18.00],
102 => ['country' => 'Senegal', 'taxes' => 18.00],
103 => ['country' => 'Ivory Coast', 'taxes' => 18.00],
104 => ['country' => 'Cameroon', 'taxes' => 19.25],
105 => ['country' => 'Angola', 'taxes' => 14.00],
106 => ['country' => 'Mozambique', 'taxes' => 16.00],
107 => ['country' => 'Madagascar', 'taxes' => 20.00],
108 => ['country' => 'Mali', 'taxes' => 18.00],
109 => ['country' => 'Burkina Faso', 'taxes' => 18.00],
110 => ['country' => 'Niger', 'taxes' => 19.00],
111 => ['country' => 'Benin', 'taxes' => 18.00],
112 => ['country' => 'Togo', 'taxes' => 18.00],
113 => ['country' => 'Guinea', 'taxes' => 18.00],
114 => ['country' => 'Malawi', 'taxes' => 16.50],
115 => ['country' => 'Gabon', 'taxes' => 18.00],
116 => ['country' => 'Mauritania', 'taxes' => 16.00],
117 => ['country' => 'Lesotho', 'taxes' => 15.00],
118 => ['country' => 'Eswatini', 'taxes' => 15.00],
119 => ['country' => 'Liberia', 'taxes' => 18.00],
120 => ['country' => 'Canada', 'taxes' => 5.00],
121 => ['country' => 'United States', 'taxes' => 10.00],
122 => ['country' => 'Mexico', 'taxes' => 16.00],
123 => ['country' => 'Argentina', 'taxes' => 21.00],
124 => ['country' => 'Brazil', 'taxes' => 17.00],
125 => ['country' => 'Chile', 'taxes' => 19.00],
126 => ['country' => 'Colombia', 'taxes' => 19.00],
127 => ['country' => 'Peru', 'taxes' => 18.00],
128 => ['country' => 'Ecuador', 'taxes' => 15.00],
129 => ['country' => 'Uruguay', 'taxes' => 22.00],
130 => ['country' => 'Paraguay', 'taxes' => 10.00],
131 => ['country' => 'Bolivia', 'taxes' => 13.00],
132 => ['country' => 'Venezuela', 'taxes' => 16.00],
133 => ['country' => 'Costa Rica', 'taxes' => 13.00],
134 => ['country' => 'Panama', 'taxes' => 7.00],
135 => ['country' => 'Guatemala', 'taxes' => 12.00],
136 => ['country' => 'Honduras', 'taxes' => 15.00],
137 => ['country' => 'El Salvador', 'taxes' => 13.00],
138 => ['country' => 'Nicaragua', 'taxes' => 15.00],
139 => ['country' => 'Dominican Republic', 'taxes' => 18.00],
140 => ['country' => 'Jamaica', 'taxes' => 15.00],
141 => ['country' => 'Trinidad and Tobago', 'taxes' => 12.50],
142 => ['country' => 'Barbados', 'taxes' => 17.50],
143 => ['country' => 'Bahamas', 'taxes' => 10.00],
1 => ['country' => 'Austria', 'taxes' => 20.00,'eu' => 1],
2 => ['country' => 'Belgium', 'taxes' => 21.00,'eu' => 1],
3 => ['country' => 'Bulgaria', 'taxes' => 20.00,'eu' => 1],
4 => ['country' => 'Croatia', 'taxes' => 25.00,'eu' => 1],
5 => ['country' => 'Cyprus', 'taxes' => 19.00,'eu' => 1],
6 => ['country' => 'Czech Republic', 'taxes' => 21.00,'eu' => 1],
7 => ['country' => 'Denmark', 'taxes' => 25.00,'eu' => 1],
8 => ['country' => 'Estonia', 'taxes' => 24.00,'eu' => 1],
9 => ['country' => 'Finland', 'taxes' => 25.50,'eu' => 1],
10 => ['country' => 'France', 'taxes' => 20.00,'eu' => 1],
11 => ['country' => 'Germany', 'taxes' => 19.00,'eu' => 1],
12 => ['country' => 'Greece', 'taxes' => 24.00,'eu' => 1],
13 => ['country' => 'Hungary', 'taxes' => 27.00,'eu' => 1],
14 => ['country' => 'Ireland', 'taxes' => 23.00,'eu' => 1],
15 => ['country' => 'Italy', 'taxes' => 22.00,'eu' => 1],
16 => ['country' => 'Latvia', 'taxes' => 21.00,'eu' => 1],
17 => ['country' => 'Lithuania', 'taxes' => 21.00,'eu' => 1],
18 => ['country' => 'Luxembourg', 'taxes' => 16.00,'eu' => 1],
19 => ['country' => 'Malta', 'taxes' => 18.00,'eu' => 1],
20 => ['country' => 'Netherlands', 'taxes' => 21.00,'eu' => 1],
21 => ['country' => 'Poland', 'taxes' => 23.00,'eu' => 1],
22 => ['country' => 'Portugal', 'taxes' => 23.00,'eu' => 1],
23 => ['country' => 'Romania', 'taxes' => 19.00,'eu' => 1],
24 => ['country' => 'Slovakia', 'taxes' => 23.00,'eu' => 1],
25 => ['country' => 'Slovenia', 'taxes' => 22.00,'eu' => 1],
26 => ['country' => 'Spain', 'taxes' => 21.00,'eu' => 1],
27 => ['country' => 'Sweden', 'taxes' => 25.00,'eu' => 1],
28 => ['country' => 'United Kingdom', 'taxes' => 0.00,'eu' => 0],
29 => ['country' => 'Switzerland', 'taxes' => 0.00,'eu' => 0],
30 => ['country' => 'Norway', 'taxes' => 0.00,'eu' => 0],
31 => ['country' => 'Iceland', 'taxes' => 0.00,'eu' => 0],
32 => ['country' => 'Albania', 'taxes' => 0.00,'eu' => 0],
33 => ['country' => 'Serbia', 'taxes' => 0.00,'eu' => 0],
34 => ['country' => 'North Macedonia', 'taxes' => 0.00,'eu' => 0],
35 => ['country' => 'Bosnia and Herzegovina', 'taxes' => 0.00,'eu' => 0],
36 => ['country' => 'Montenegro', 'taxes' => 0.00,'eu' => 0],
37 => ['country' => 'Moldova', 'taxes' => 0.00,'eu' => 0],
38 => ['country' => 'Ukraine', 'taxes' => 0.00,'eu' => 0],
39 => ['country' => 'Belarus', 'taxes' => 0.00,'eu' => 0],
40 => ['country' => 'Turkey', 'taxes' => 0.00,'eu' => 0],
41 => ['country' => 'Andorra', 'taxes' => 0.00,'eu' => 0],
42 => ['country' => 'Australia', 'taxes' => 0.00,'eu' => 0],
43 => ['country' => 'New Zealand', 'taxes' => 0.00,'eu' => 0],
44 => ['country' => 'Japan', 'taxes' => 0.00,'eu' => 0],
45 => ['country' => 'China', 'taxes' => 0.00,'eu' => 0],
46 => ['country' => 'India', 'taxes' => 0.00,'eu' => 0],
47 => ['country' => 'South Korea', 'taxes' => 0.00,'eu' => 0],
48 => ['country' => 'Singapore', 'taxes' => 0.00,'eu' => 0],
49 => ['country' => 'Indonesia', 'taxes' => 0.00,'eu' => 0],
50 => ['country' => 'Thailand', 'taxes' => 0.00,'eu' => 0],
51 => ['country' => 'Vietnam', 'taxes' => 0.00,'eu' => 0],
52 => ['country' => 'Philippines', 'taxes' => 0.00,'eu' => 0],
53 => ['country' => 'Malaysia', 'taxes' => 0.00,'eu' => 0],
54 => ['country' => 'Taiwan', 'taxes' => 0.00,'eu' => 0],
55 => ['country' => 'Pakistan', 'taxes' => 0.00,'eu' => 0],
56 => ['country' => 'Bangladesh', 'taxes' => 0.00,'eu' => 0],
57 => ['country' => 'Sri Lanka', 'taxes' => 0.00,'eu' => 0],
58 => ['country' => 'Nepal', 'taxes' => 0.00,'eu' => 0],
59 => ['country' => 'Cambodia', 'taxes' => 0.00,'eu' => 0],
60 => ['country' => 'Myanmar', 'taxes' => 0.00,'eu' => 0],
61 => ['country' => 'Laos', 'taxes' => 0.00,'eu' => 0],
62 => ['country' => 'Mongolia', 'taxes' => 0.00,'eu' => 0],
63 => ['country' => 'Kazakhstan', 'taxes' => 0.00,'eu' => 0],
64 => ['country' => 'Uzbekistan', 'taxes' => 0.00,'eu' => 0],
65 => ['country' => 'Armenia', 'taxes' => 0.00,'eu' => 0],
66 => ['country' => 'Georgia', 'taxes' => 0.00,'eu' => 0],
67 => ['country' => 'Azerbaijan', 'taxes' => 0.00,'eu' => 0],
68 => ['country' => 'Fiji', 'taxes' => 0.00,'eu' => 0],
69 => ['country' => 'Papua New Guinea', 'taxes' => 0.00,'eu' => 0],
70 => ['country' => 'Samoa', 'taxes' => 0.00,'eu' => 0],
71 => ['country' => 'Tonga', 'taxes' => 0.00,'eu' => 0],
72 => ['country' => 'Vanuatu', 'taxes' => 0.00,'eu' => 0],
73 => ['country' => 'Bhutan', 'taxes' => 0.00,'eu' => 0],
74 => ['country' => 'Saudi Arabia', 'taxes' => 0.00,'eu' => 0],
75 => ['country' => 'United Arab Emirates', 'taxes' => 0.00,'eu' => 0],
76 => ['country' => 'Bahrain', 'taxes' => 0.00,'eu' => 0],
77 => ['country' => 'Kuwait', 'taxes' => 0.00,'eu' => 0],
78 => ['country' => 'Oman', 'taxes' => 0.00,'eu' => 0],
79 => ['country' => 'Qatar', 'taxes' => 0.00,'eu' => 0],
80 => ['country' => 'Israel', 'taxes' => 0.00,'eu' => 0],
81 => ['country' => 'Jordan', 'taxes' => 0.00,'eu' => 0],
82 => ['country' => 'Lebanon', 'taxes' => 0.00,'eu' => 0],
83 => ['country' => 'Egypt', 'taxes' => 0.00,'eu' => 0],
85 => ['country' => 'South Africa', 'taxes' => 0.00,'eu' => 0],
86 => ['country' => 'Nigeria', 'taxes' => 0.00,'eu' => 0],
87 => ['country' => 'Kenya', 'taxes' => 0.00,'eu' => 0],
88 => ['country' => 'Ghana', 'taxes' => 0.00,'eu' => 0],
89 => ['country' => 'Morocco', 'taxes' => 0.00,'eu' => 0],
90 => ['country' => 'Tunisia', 'taxes' => 0.00,'eu' => 0],
91 => ['country' => 'Algeria', 'taxes' => 0.00,'eu' => 0],
92 => ['country' => 'Egypt', 'taxes' => 0.00,'eu' => 0],
93 => ['country' => 'Ethiopia', 'taxes' => 0.00,'eu' => 0],
94 => ['country' => 'Tanzania', 'taxes' => 0.00,'eu' => 0],
95 => ['country' => 'Uganda', 'taxes' => 0.00,'eu' => 0],
96 => ['country' => 'Zimbabwe', 'taxes' => 0.00,'eu' => 0],
97 => ['country' => 'Zambia', 'taxes' => 0.00,'eu' => 0],
98 => ['country' => 'Botswana', 'taxes' => 0.00,'eu' => 0],
99 => ['country' => 'Mauritius', 'taxes' => 0.00,'eu' => 0],
100 => ['country' => 'Namibia', 'taxes' => 0.00,'eu' => 0],
101 => ['country' => 'Rwanda', 'taxes' => 0.00,'eu' => 0],
102 => ['country' => 'Senegal', 'taxes' => 0.00,'eu' => 0],
103 => ['country' => 'Ivory Coast', 'taxes' => 0.00,'eu' => 0],
104 => ['country' => 'Cameroon', 'taxes' => 0.00,'eu' => 0],
105 => ['country' => 'Angola', 'taxes' => 0.00,'eu' => 0],
106 => ['country' => 'Mozambique', 'taxes' => 0.00,'eu' => 0],
107 => ['country' => 'Madagascar', 'taxes' => 0.00,'eu' => 0],
108 => ['country' => 'Mali', 'taxes' => 0.00,'eu' => 0],
109 => ['country' => 'Burkina Faso', 'taxes' => 0.00,'eu' => 0],
110 => ['country' => 'Niger', 'taxes' => 0.00,'eu' => 0],
111 => ['country' => 'Benin', 'taxes' => 0.00,'eu' => 0],
112 => ['country' => 'Togo', 'taxes' => 0.00,'eu' => 0],
113 => ['country' => 'Guinea', 'taxes' => 0.00,'eu' => 0],
114 => ['country' => 'Malawi', 'taxes' => 0.00,'eu' => 0],
115 => ['country' => 'Gabon', 'taxes' => 0.00,'eu' => 0],
116 => ['country' => 'Mauritania', 'taxes' => 0.00,'eu' => 0],
117 => ['country' => 'Lesotho', 'taxes' => 0.00,'eu' => 0],
118 => ['country' => 'Eswatini', 'taxes' => 0.00,'eu' => 0],
119 => ['country' => 'Liberia', 'taxes' => 0.00,'eu' => 0],
120 => ['country' => 'Canada', 'taxes' => 0.00,'eu' => 0],
121 => ['country' => 'United States', 'taxes' => 0.00,'eu' => 0],
122 => ['country' => 'Mexico', 'taxes' => 0.00,'eu' => 0],
123 => ['country' => 'Argentina', 'taxes' => 0.00,'eu' => 0],
124 => ['country' => 'Brazil', 'taxes' => 0.00,'eu' => 0],
125 => ['country' => 'Chile', 'taxes' => 0.00,'eu' => 0],
126 => ['country' => 'Colombia', 'taxes' => 0.00,'eu' => 0],
127 => ['country' => 'Peru', 'taxes' => 0.00,'eu' => 0],
128 => ['country' => 'Ecuador', 'taxes' => 0.00,'eu' => 0],
129 => ['country' => 'Uruguay', 'taxes' => 0.00,'eu' => 0],
130 => ['country' => 'Paraguay', 'taxes' => 0.00,'eu' => 0],
131 => ['country' => 'Bolivia', 'taxes' => 0.00,'eu' => 0],
132 => ['country' => 'Venezuela', 'taxes' => 0.00,'eu' => 0],
133 => ['country' => 'Costa Rica', 'taxes' => 0.00,'eu' => 0],
134 => ['country' => 'Panama', 'taxes' => 0.00,'eu' => 0],
135 => ['country' => 'Guatemala', 'taxes' => 0.00,'eu' => 0],
136 => ['country' => 'Honduras', 'taxes' => 0.00,'eu' => 0],
137 => ['country' => 'El Salvador', 'taxes' => 0.00,'eu' => 0],
138 => ['country' => 'Nicaragua', 'taxes' => 0.00,'eu' => 0],
139 => ['country' => 'Dominican Republic', 'taxes' => 0.00,'eu' => 0],
140 => ['country' => 'Jamaica', 'taxes' => 0.00,'eu' => 0],
141 => ['country' => 'Trinidad and Tobago', 'taxes' => 0.00,'eu' => 0],
142 => ['country' => 'Barbados', 'taxes' => 0.00,'eu' => 0],
143 => ['country' => 'Bahamas', 'taxes' => 0.00,'eu' => 0],
];