1 | <?php |
||
2 | |||
3 | /* For license terms, see /license.txt */ |
||
4 | |||
5 | use Doctrine\DBAL\Schema\Schema; |
||
6 | use Doctrine\DBAL\Types\Types; |
||
7 | |||
8 | /** |
||
9 | * Plugin database installation script. Can only be executed if included |
||
10 | * inside another script loading global.inc.php. |
||
11 | * |
||
12 | * Check if script can be called. |
||
13 | */ |
||
14 | if (!function_exists('api_get_path')) { |
||
15 | exit('This script must be loaded through the Chamilo plugin installer sequence'); |
||
16 | } |
||
17 | |||
18 | $entityManager = Database::getManager(); |
||
19 | $pluginSchema = new Schema(); |
||
20 | $connection = $entityManager->getConnection(); |
||
21 | $platform = $connection->getDatabasePlatform(); |
||
22 | $sm = $connection->getSchemaManager(); |
||
23 | |||
24 | // Create tables |
||
25 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_PAYPAL)) { |
||
26 | $paypalTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_PAYPAL); |
||
27 | $paypalTable->addColumn( |
||
28 | 'id', |
||
29 | Types::INTEGER, |
||
30 | ['autoincrement' => true, 'unsigned' => true] |
||
31 | ); |
||
32 | $paypalTable->addColumn('username', Types::STRING); |
||
33 | $paypalTable->addColumn('password', Types::STRING); |
||
34 | $paypalTable->addColumn('signature', Types::STRING); |
||
35 | $paypalTable->addColumn('sandbox', Types::BOOLEAN); |
||
36 | $paypalTable->setPrimaryKey(['id']); |
||
37 | } |
||
38 | |||
39 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_TRANSFER)) { |
||
40 | $transferTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_TRANSFER); |
||
41 | $transferTable->addColumn( |
||
42 | 'id', |
||
43 | Types::INTEGER, |
||
44 | ['autoincrement' => true, 'unsigned' => true] |
||
45 | ); |
||
46 | $transferTable->addColumn('name', Types::STRING); |
||
47 | $transferTable->addColumn('account', Types::STRING); |
||
48 | $transferTable->addColumn('swift', Types::STRING); |
||
49 | $transferTable->setPrimaryKey(['id']); |
||
50 | } |
||
51 | |||
52 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_TPV_REDSYS)) { |
||
53 | $tpvRedsysTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_TPV_REDSYS); |
||
54 | $tpvRedsysTable->addColumn( |
||
55 | 'id', |
||
56 | Types::INTEGER, |
||
57 | ['autoincrement' => true, 'unsigned' => true] |
||
58 | ); |
||
59 | $tpvRedsysTable->addColumn('merchantcode', Types::STRING); |
||
60 | $tpvRedsysTable->addColumn('terminal', Types::STRING); |
||
61 | $tpvRedsysTable->addColumn('currency', Types::STRING); |
||
62 | $tpvRedsysTable->addColumn('kc', Types::STRING); |
||
63 | $tpvRedsysTable->addColumn('url_redsys', Types::STRING); |
||
64 | $tpvRedsysTable->addColumn('url_redsys_sandbox', Types::STRING); |
||
65 | $tpvRedsysTable->addColumn('sandbox', Types::BOOLEAN); |
||
66 | $tpvRedsysTable->setPrimaryKey(['id']); |
||
67 | } |
||
68 | |||
69 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_CURRENCY)) { |
||
70 | $currencyTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_CURRENCY); |
||
71 | $currencyTable->addColumn( |
||
72 | 'id', |
||
73 | Types::INTEGER, |
||
74 | ['autoincrement' => true, 'unsigned' => true] |
||
75 | ); |
||
76 | $currencyTable->addColumn( |
||
77 | 'country_code', |
||
78 | Types::STRING, |
||
79 | ['length' => 2] |
||
80 | ); |
||
81 | $currencyTable->addColumn( |
||
82 | 'country_name', |
||
83 | Types::STRING, |
||
84 | ['length' => 255] |
||
85 | ); |
||
86 | $currencyTable->addColumn( |
||
87 | 'iso_code', |
||
88 | Types::STRING, |
||
89 | ['length' => 3] |
||
90 | ); |
||
91 | $currencyTable->addColumn('status', Types::BOOLEAN); |
||
92 | $currencyTable->addUniqueIndex(['country_code']); |
||
93 | $currencyTable->addIndex(['iso_code']); |
||
94 | $currencyTable->setPrimaryKey(['id']); |
||
95 | } |
||
96 | |||
97 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_ITEM)) { |
||
98 | $itemTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_ITEM); |
||
99 | $itemTable->addColumn( |
||
100 | 'id', |
||
101 | Types::INTEGER, |
||
102 | ['autoincrement' => true, 'unsigned' => true] |
||
103 | ); |
||
104 | $itemTable->addColumn('product_type', Types::INTEGER); |
||
105 | $itemTable->addColumn( |
||
106 | 'product_id', |
||
107 | Types::INTEGER, |
||
108 | ['unsigned' => true] |
||
109 | ); |
||
110 | $itemTable->addColumn( |
||
111 | 'price', |
||
112 | Types::DECIMAL, |
||
113 | ['scale' => 2] |
||
114 | ); |
||
115 | $itemTable->addColumn( |
||
116 | 'currency_id', |
||
117 | Types::INTEGER, |
||
118 | ['unsigned' => true] |
||
119 | ); |
||
120 | $itemTable->addColumn( |
||
121 | 'tax_perc', |
||
122 | Types::INTEGER, |
||
123 | ['unsigned' => true, 'notnull' => false] |
||
124 | ); |
||
125 | $itemTable->setPrimaryKey(['id']); |
||
126 | $itemTable->addForeignKeyConstraint( |
||
127 | $currencyTable, |
||
128 | ['currency_id'], |
||
129 | ['id'], |
||
130 | ['onDelete' => 'CASCADE'] |
||
131 | ); |
||
132 | } |
||
133 | |||
134 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_ITEM_BENEFICIARY)) { |
||
135 | $itemBeneficiary = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_ITEM_BENEFICIARY); |
||
136 | $itemBeneficiary->addColumn( |
||
137 | 'id', |
||
138 | Types::INTEGER, |
||
139 | ['autoincrement' => true, 'unsigned' => true] |
||
140 | ); |
||
141 | $itemBeneficiary->addColumn( |
||
142 | 'item_id', |
||
143 | Types::INTEGER, |
||
144 | ['unsigned' => true] |
||
145 | ); |
||
146 | $itemBeneficiary->addColumn( |
||
147 | 'user_id', |
||
148 | Types::INTEGER, |
||
149 | ['unsigned' => true] |
||
150 | ); |
||
151 | $itemBeneficiary->addColumn( |
||
152 | 'commissions', |
||
153 | Types::INTEGER, |
||
154 | ['unsigned' => true] |
||
155 | ); |
||
156 | $itemBeneficiary->setPrimaryKey(['id']); |
||
157 | $itemBeneficiary->addForeignKeyConstraint( |
||
158 | $itemTable, |
||
159 | ['item_id'], |
||
160 | ['id'], |
||
161 | ['onDelete' => 'CASCADE'] |
||
162 | ); |
||
163 | } |
||
164 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_COMMISSION)) { |
||
165 | $commissions = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_COMMISSION); |
||
166 | $commissions->addColumn( |
||
167 | 'id', |
||
168 | Types::INTEGER, |
||
169 | ['autoincrement' => true, 'unsigned' => true] |
||
170 | ); |
||
171 | $commissions->addColumn( |
||
172 | 'commission', |
||
173 | Types::INTEGER, |
||
174 | ['unsigned' => true] |
||
175 | ); |
||
176 | $commissions->setPrimaryKey(['id']); |
||
177 | } |
||
178 | |||
179 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_PAYPAL_PAYOUTS)) { |
||
180 | $saleCommissions = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_PAYPAL_PAYOUTS); |
||
181 | $saleCommissions->addColumn( |
||
182 | 'id', |
||
183 | Types::INTEGER, |
||
184 | ['autoincrement' => true, 'unsigned' => true] |
||
185 | ); |
||
186 | $saleCommissions->addColumn('date', Types::DATETIME_MUTABLE); |
||
187 | $saleCommissions->addColumn('payout_date', Types::DATETIME_MUTABLE); |
||
188 | $saleCommissions->addColumn( |
||
189 | 'sale_id', |
||
190 | Types::INTEGER, |
||
191 | ['unsigned' => true] |
||
192 | ); |
||
193 | $saleCommissions->addColumn( |
||
194 | 'user_id', |
||
195 | Types::INTEGER, |
||
196 | ['unsigned' => true] |
||
197 | ); |
||
198 | $saleCommissions->addColumn( |
||
199 | 'commission', |
||
200 | Types::DECIMAL, |
||
201 | ['scale' => 2] |
||
202 | ); |
||
203 | $saleCommissions->addColumn( |
||
204 | 'status', |
||
205 | Types::INTEGER, |
||
206 | ['unsigned' => true] |
||
207 | ); |
||
208 | $saleCommissions->setPrimaryKey(['id']); |
||
209 | } |
||
210 | |||
211 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_SALE)) { |
||
212 | $saleTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_SALE); |
||
213 | $saleTable->addColumn( |
||
214 | 'id', |
||
215 | Types::INTEGER, |
||
216 | ['autoincrement' => true, 'unsigned' => true] |
||
217 | ); |
||
218 | $saleTable->addColumn('reference', Types::STRING); |
||
219 | $saleTable->addColumn('date', Types::DATETIME_MUTABLE); |
||
220 | $saleTable->addColumn( |
||
221 | 'user_id', |
||
222 | Types::INTEGER, |
||
223 | ['unsigned' => true] |
||
224 | ); |
||
225 | $saleTable->addColumn('product_type', Types::INTEGER); |
||
226 | $saleTable->addColumn('product_name', Types::STRING); |
||
227 | $saleTable->addColumn( |
||
228 | 'product_id', |
||
229 | Types::INTEGER, |
||
230 | ['unsigned' => true] |
||
231 | ); |
||
232 | $saleTable->addColumn( |
||
233 | 'price', |
||
234 | Types::DECIMAL, |
||
235 | ['scale' => 2] |
||
236 | ); |
||
237 | $saleTable->addColumn( |
||
238 | 'price_without_tax', |
||
239 | Types::DECIMAL, |
||
240 | ['scale' => 2, 'notnull' => false] |
||
241 | ); |
||
242 | $saleTable->addColumn( |
||
243 | 'tax_perc', |
||
244 | Types::INTEGER, |
||
245 | ['unsigned' => true, 'notnull' => false] |
||
246 | ); |
||
247 | $saleTable->addColumn( |
||
248 | 'tax_amount', |
||
249 | Types::DECIMAL, |
||
250 | ['scale' => 2, 'notnull' => false] |
||
251 | ); |
||
252 | $saleTable->addColumn( |
||
253 | 'currency_id', |
||
254 | Types::INTEGER, |
||
255 | ['unsigned' => true] |
||
256 | ); |
||
257 | $saleTable->addColumn('status', Types::INTEGER); |
||
258 | $saleTable->addColumn('payment_type', Types::INTEGER); |
||
259 | $saleTable->addColumn('invoice', Types::INTEGER); |
||
260 | $saleTable->addColumn( |
||
261 | 'price_without_discount', |
||
262 | Types::DECIMAL, |
||
263 | ['scale' => 2, 'notnull' => false] |
||
264 | ); |
||
265 | $saleTable->addColumn( |
||
266 | 'discount_amount', |
||
267 | Types::DECIMAL, |
||
268 | ['scale' => 2, 'notnull' => false] |
||
269 | ); |
||
270 | $saleTable->setPrimaryKey(['id']); |
||
271 | $saleTable->addForeignKeyConstraint( |
||
272 | $currencyTable, |
||
273 | ['currency_id'], |
||
274 | ['id'], |
||
275 | ['onDelete' => 'CASCADE'] |
||
276 | ); |
||
277 | } |
||
278 | |||
279 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_SERVICES)) { |
||
280 | $servicesTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_SERVICES); |
||
281 | $servicesTable->addColumn( |
||
282 | 'id', |
||
283 | Types::INTEGER, |
||
284 | ['autoincrement' => true, 'unsigned' => true] |
||
285 | ); |
||
286 | $servicesTable->addColumn('name', Types::STRING); |
||
287 | $servicesTable->addColumn('description', Types::TEXT); |
||
288 | $servicesTable->addColumn( |
||
289 | 'price', |
||
290 | Types::DECIMAL, |
||
291 | ['scale' => 2] |
||
292 | ); |
||
293 | $servicesTable->addColumn('duration_days', Types::INTEGER); |
||
294 | $servicesTable->addColumn('applies_to', Types::INTEGER); |
||
295 | $servicesTable->addColumn('owner_id', Types::INTEGER); |
||
296 | $servicesTable->addColumn('visibility', Types::INTEGER); |
||
297 | $servicesTable->addColumn('video_url', Types::STRING); |
||
298 | $servicesTable->addColumn('image', Types::STRING); |
||
299 | $servicesTable->addColumn('service_information', Types::TEXT); |
||
300 | $servicesTable->setPrimaryKey(['id']); |
||
301 | } |
||
302 | |||
303 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_SERVICES_SALE)) { |
||
304 | $servicesNodeTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_SERVICES_SALE); |
||
305 | $servicesNodeTable->addColumn( |
||
306 | 'id', |
||
307 | Types::INTEGER, |
||
308 | ['autoincrement' => true, 'unsigned' => true] |
||
309 | ); |
||
310 | $servicesNodeTable->addColumn( |
||
311 | 'service_id', |
||
312 | Types::INTEGER, |
||
313 | ['unsigned' => true] |
||
314 | ); |
||
315 | $servicesNodeTable->addColumn('reference', Types::STRING); |
||
316 | $servicesNodeTable->addColumn('currency_id', Types::INTEGER); |
||
317 | $servicesNodeTable->addColumn( |
||
318 | 'price', |
||
319 | Types::DECIMAL, |
||
320 | ['scale' => 2] |
||
321 | ); |
||
322 | $servicesNodeTable->addColumn( |
||
323 | 'price_without_tax', |
||
324 | Types::DECIMAL, |
||
325 | ['scale' => 2, 'notnull' => false] |
||
326 | ); |
||
327 | $servicesNodeTable->addColumn( |
||
328 | 'tax_perc', |
||
329 | Types::INTEGER, |
||
330 | ['unsigned' => true, 'notnull' => false] |
||
331 | ); |
||
332 | $servicesNodeTable->addColumn( |
||
333 | 'tax_amount', |
||
334 | Types::DECIMAL, |
||
335 | ['scale' => 2, 'notnull' => false] |
||
336 | ); |
||
337 | $servicesNodeTable->addColumn('node_type', Types::INTEGER); |
||
338 | $servicesNodeTable->addColumn('node_id', Types::INTEGER); |
||
339 | $servicesNodeTable->addColumn('buyer_id', Types::INTEGER); |
||
340 | $servicesNodeTable->addColumn('buy_date', Types::DATETIME_MUTABLE); |
||
341 | $servicesNodeTable->addColumn( |
||
342 | 'date_start', |
||
343 | Types::DATETIME_MUTABLE, |
||
344 | ['notnull' => false] |
||
345 | ); |
||
346 | $servicesNodeTable->addColumn( |
||
347 | 'date_end', |
||
348 | Types::DATETIME_MUTABLE |
||
349 | ); |
||
350 | $servicesNodeTable->addColumn('status', Types::INTEGER); |
||
351 | $servicesNodeTable->addColumn('payment_type', Types::INTEGER); |
||
352 | $servicesNodeTable->addColumn('invoice', Types::INTEGER); |
||
353 | $servicesNodeTable->addColumn( |
||
354 | 'price_without_discount', |
||
355 | Types::DECIMAL, |
||
356 | ['scale' => 2, 'notnull' => false] |
||
357 | ); |
||
358 | $servicesNodeTable->addColumn( |
||
359 | 'discount_amount', |
||
360 | Types::DECIMAL, |
||
361 | ['scale' => 2, 'notnull' => false] |
||
362 | ); |
||
363 | $servicesNodeTable->setPrimaryKey(['id']); |
||
364 | $servicesNodeTable->addForeignKeyConstraint( |
||
365 | $servicesTable, |
||
366 | ['service_id'], |
||
367 | ['id'], |
||
368 | ['onDelete' => 'CASCADE'] |
||
369 | ); |
||
370 | } |
||
371 | |||
372 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_CULQI)) { |
||
373 | $culqiTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_CULQI); |
||
374 | $culqiTable->addColumn( |
||
375 | 'id', |
||
376 | Types::INTEGER, |
||
377 | ['autoincrement' => true, 'unsigned' => true] |
||
378 | ); |
||
379 | $culqiTable->addColumn('commerce_code', Types::STRING); |
||
380 | $culqiTable->addColumn('api_key', Types::STRING); |
||
381 | $culqiTable->addColumn('integration', Types::INTEGER); |
||
382 | $culqiTable->setPrimaryKey(['id']); |
||
383 | } |
||
384 | |||
385 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_GLOBAL_CONFIG)) { |
||
386 | $globalTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_GLOBAL_CONFIG); |
||
387 | $globalTable->addColumn( |
||
388 | 'id', |
||
389 | Types::INTEGER, |
||
390 | ['autoincrement' => true, 'unsigned' => true] |
||
391 | ); |
||
392 | $globalTable->addColumn('terms_and_conditions', Types::TEXT); |
||
393 | $globalTable->addColumn('global_tax_perc', Types::INTEGER); |
||
394 | $globalTable->addColumn('tax_applies_to', Types::INTEGER); |
||
395 | $globalTable->addColumn('tax_name', Types::STRING); |
||
396 | $globalTable->addColumn('seller_name', Types::STRING); |
||
397 | $globalTable->addColumn('seller_id', Types::STRING); |
||
398 | $globalTable->addColumn('seller_address', Types::STRING); |
||
399 | $globalTable->addColumn('seller_email', Types::STRING); |
||
400 | $globalTable->addColumn('next_number_invoice', Types::INTEGER); |
||
401 | $globalTable->addColumn('invoice_series', Types::STRING); |
||
402 | $globalTable->addColumn('sale_email', Types::STRING); |
||
403 | $globalTable->addColumn('info_email_extra', Types::TEXT); |
||
404 | $globalTable->setPrimaryKey(['id']); |
||
405 | } else { |
||
406 | $globalTable = $pluginSchema->getTable(BuyCoursesPlugin::TABLE_GLOBAL_CONFIG); |
||
407 | |||
408 | if (!$globalTable->hasColumn('info_email_extra')) { |
||
409 | $globalTable->addColumn('info_email_extra', Types::TEXT); |
||
410 | } |
||
411 | } |
||
412 | |||
413 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_INVOICE)) { |
||
414 | $invoiceTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_INVOICE); |
||
415 | $invoiceTable->addColumn( |
||
416 | 'id', |
||
417 | Types::INTEGER, |
||
418 | ['autoincrement' => true, 'unsigned' => true] |
||
419 | ); |
||
420 | $invoiceTable->addColumn('sale_id', Types::INTEGER); |
||
421 | $invoiceTable->addColumn('is_service', Types::INTEGER); |
||
422 | $invoiceTable->addColumn( |
||
423 | 'num_invoice', |
||
424 | Types::INTEGER, |
||
425 | ['unsigned' => true, 'notnull' => false] |
||
426 | ); |
||
427 | $invoiceTable->addColumn( |
||
428 | 'year', |
||
429 | Types::INTEGER, |
||
430 | ['unsigned' => true, 'notnull' => false] |
||
431 | ); |
||
432 | $invoiceTable->addColumn('serie', Types::STRING); |
||
433 | $invoiceTable->addColumn('date_invoice', Types::DATETIME_MUTABLE); |
||
434 | $invoiceTable->setPrimaryKey(['id']); |
||
435 | } |
||
436 | |||
437 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_COUPON)) { |
||
438 | $couponTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_COUPON); |
||
439 | $couponTable->addColumn( |
||
440 | 'id', |
||
441 | Types::INTEGER, |
||
442 | ['autoincrement' => true, 'unsigned' => true] |
||
443 | ); |
||
444 | $couponTable->addColumn('code', Types::STRING); |
||
445 | $couponTable->addColumn('discount_type', Types::INTEGER); |
||
446 | $couponTable->addColumn('discount_amount', Types::INTEGER); |
||
447 | $couponTable->addColumn('valid_start', Types::DATETIME_MUTABLE); |
||
448 | $couponTable->addColumn('valid_end', Types::DATETIME_MUTABLE); |
||
449 | $couponTable->addColumn('delivered', Types::INTEGER); |
||
450 | $couponTable->addColumn('active', Types::TINYINT); |
||
451 | $couponTable->setPrimaryKey(['id']); |
||
452 | } |
||
453 | |||
454 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_COUPON_ITEM)) { |
||
455 | $couponItemTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_COUPON_ITEM); |
||
456 | $couponItemTable->addColumn( |
||
457 | 'id', |
||
458 | Types::INTEGER, |
||
459 | ['autoincrement' => true, 'unsigned' => true] |
||
460 | ); |
||
461 | $couponItemTable->addColumn('coupon_id', Types::INTEGER); |
||
462 | $couponItemTable->addColumn('product_type', Types::INTEGER); |
||
463 | $couponItemTable->addColumn('product_id', Types::INTEGER); |
||
464 | $couponItemTable->setPrimaryKey(['id']); |
||
465 | } |
||
466 | |||
467 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_COUPON_SERVICE)) { |
||
468 | $couponService = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_COUPON_SERVICE); |
||
469 | $couponService->addColumn( |
||
470 | 'id', |
||
471 | Types::INTEGER, |
||
472 | ['autoincrement' => true, 'unsigned' => true] |
||
473 | ); |
||
474 | $couponService->addColumn('coupon_id', Types::INTEGER); |
||
475 | $couponService->addColumn('service_id', Types::INTEGER); |
||
476 | $couponService->setPrimaryKey(['id']); |
||
477 | } |
||
478 | |||
479 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_COUPON_SALE)) { |
||
480 | $couponSaleTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_COUPON_SALE); |
||
481 | $couponSaleTable->addColumn( |
||
482 | 'id', |
||
483 | Types::INTEGER, |
||
484 | ['autoincrement' => true, 'unsigned' => true] |
||
485 | ); |
||
486 | $couponSaleTable->addColumn('coupon_id', Types::INTEGER); |
||
487 | $couponSaleTable->addColumn('sale_id', Types::INTEGER); |
||
488 | $couponSaleTable->setPrimaryKey(['id']); |
||
489 | } |
||
490 | |||
491 | if (false === $sm->tablesExist(BuyCoursesPlugin::TABLE_COUPON_SERVICE_SALE)) { |
||
492 | $couponSaleTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_COUPON_SERVICE_SALE); |
||
493 | $couponSaleTable->addColumn( |
||
494 | 'id', |
||
495 | Types::INTEGER, |
||
496 | ['autoincrement' => true, 'unsigned' => true] |
||
497 | ); |
||
498 | $couponSaleTable->addColumn('coupon_id', Types::INTEGER); |
||
499 | $couponSaleTable->addColumn('service_sale_id', Types::INTEGER); |
||
500 | $couponSaleTable->setPrimaryKey(['id']); |
||
501 | } |
||
502 | |||
503 | $queries = $pluginSchema->toSql($platform); |
||
504 | |||
505 | foreach ($queries as $query) { |
||
506 | Database::query($query); |
||
507 | } |
||
508 | |||
509 | // Insert data |
||
510 | $paypalTable = Database::get_main_table(BuyCoursesPlugin::TABLE_PAYPAL); |
||
511 | $currencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY); |
||
512 | $itemTable = Database::get_main_table(BuyCoursesPlugin::TABLE_ITEM); |
||
513 | $saleTable = Database::get_main_table(BuyCoursesPlugin::TABLE_SALE); |
||
514 | $commissionTable = Database::get_main_table(BuyCoursesPlugin::TABLE_COMMISSION); |
||
515 | $extraFieldTable = Database::get_main_table(TABLE_EXTRA_FIELD); |
||
516 | $culqiTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CULQI); |
||
517 | $globalTable = Database::get_main_table(BuyCoursesPlugin::TABLE_GLOBAL_CONFIG); |
||
518 | $tpvRedsysTable = Database::get_main_table(BuyCoursesPlugin::TABLE_TPV_REDSYS); |
||
519 | |||
520 | $paypalExtraField = Database::select( |
||
521 | "*", |
||
522 | $extraFieldTable, |
||
523 | [ |
||
524 | 'where' => ['variable = ?' => 'paypal'], |
||
525 | ], |
||
526 | 'first' |
||
527 | ); |
||
528 | |||
529 | if (!$paypalExtraField) { |
||
0 ignored issues
–
show
|
|||
530 | Database::insert( |
||
531 | $extraFieldTable, |
||
532 | [ |
||
533 | 'extra_field_type' => 1, |
||
534 | 'field_type' => 1, |
||
535 | 'variable' => 'paypal', |
||
536 | 'display_text' => 'Paypal', |
||
537 | 'default_value' => '', |
||
538 | 'field_order' => 0, |
||
539 | 'visible_to_self' => 1, |
||
540 | 'changeable' => 1, |
||
541 | 'filter' => 0, |
||
542 | 'created_at' => api_get_utc_datetime(), |
||
543 | ] |
||
544 | ); |
||
545 | } |
||
546 | |||
547 | Database::insert( |
||
548 | $paypalTable, |
||
549 | [ |
||
550 | 'username' => '', |
||
551 | 'password' => '', |
||
552 | 'signature' => '', |
||
553 | 'sandbox' => true, |
||
554 | ] |
||
555 | ); |
||
556 | |||
557 | Database::insert( |
||
558 | $tpvRedsysTable, |
||
559 | [ |
||
560 | 'url_redsys' => 'https://sis.redsys.es/sis/realizarPago', |
||
561 | 'url_redsys_sandbox' => 'https://sis-t.redsys.es:25443/sis/realizarPago', |
||
562 | ] |
||
563 | ); |
||
564 | |||
565 | Database::insert( |
||
566 | $culqiTable, |
||
567 | [ |
||
568 | 'commerce_code' => '', |
||
569 | 'api_key' => '', |
||
570 | 'integration' => 1, |
||
571 | ] |
||
572 | ); |
||
573 | |||
574 | Database::insert( |
||
575 | $globalTable, |
||
576 | [ |
||
577 | 'terms_and_conditions' => '', |
||
578 | ] |
||
579 | ); |
||
580 | |||
581 | Database::insert( |
||
582 | $commissionTable, |
||
583 | [ |
||
584 | 'commission' => 0, |
||
585 | ] |
||
586 | ); |
||
587 | |||
588 | $currencies = [ |
||
589 | ['AD', 'Andorra', 'EUR', 'AND'], |
||
590 | ['AE', 'United Arab Emirates', 'AED', 'ARE'], |
||
591 | ['AF', 'Afghanistan', 'AFN', 'AFG'], |
||
592 | ['AG', 'Antigua and Barbuda', 'XCD', 'ATG'], |
||
593 | ['AI', 'Anguilla', 'XCD', 'AIA'], |
||
594 | ['AL', 'Albania', 'ALL', 'ALB'], |
||
595 | ['AM', 'Armenia', 'AMD', 'ARM'], |
||
596 | ['AO', 'Angola', 'AOA', 'AGO'], |
||
597 | ['AR', 'Argentina', 'ARS', 'ARG'], |
||
598 | ['AS', 'American Samoa', 'USD', 'ASM'], |
||
599 | ['AT', 'Austria', 'EUR', 'AUT'], |
||
600 | ['AU', 'Australia', 'AUD', 'AUS'], |
||
601 | ['AW', 'Aruba', 'AWG', 'ABW'], |
||
602 | ['AX', 'Åland', 'EUR', 'ALA'], |
||
603 | ['AZ', 'Azerbaijan', 'AZN', 'AZE'], |
||
604 | ['BA', 'Bosnia and Herzegovina', 'BAM', 'BIH'], |
||
605 | ['BB', 'Barbados', 'BBD', 'BRB'], |
||
606 | ['BD', 'Bangladesh', 'BDT', 'BGD'], |
||
607 | ['BE', 'Belgium', 'EUR', 'BEL'], |
||
608 | ['BF', 'Burkina Faso', 'XOF', 'BFA'], |
||
609 | ['BG', 'Bulgaria', 'BGN', 'BGR'], |
||
610 | ['BH', 'Bahrain', 'BHD', 'BHR'], |
||
611 | ['BI', 'Burundi', 'BIF', 'BDI'], |
||
612 | ['BJ', 'Benin', 'XOF', 'BEN'], |
||
613 | ['BL', 'Saint Barthélemy', 'EUR', 'BLM'], |
||
614 | ['BM', 'Bermuda', 'BMD', 'BMU'], |
||
615 | ['BN', 'Brunei', 'BND', 'BRN'], |
||
616 | ['BO', 'Bolivia', 'BOB', 'BOL'], |
||
617 | ['BQ', 'Bonaire', 'USD', 'BES'], |
||
618 | ['BR', 'Brazil', 'BRL', 'BRA'], |
||
619 | ['BS', 'Bahamas', 'BSD', 'BHS'], |
||
620 | ['BT', 'Bhutan', 'BTN', 'BTN'], |
||
621 | ['BV', 'Bouvet Island', 'NOK', 'BVT'], |
||
622 | ['BW', 'Botswana', 'BWP', 'BWA'], |
||
623 | ['BY', 'Belarus', 'BYR', 'BLR'], |
||
624 | ['BZ', 'Belize', 'BZD', 'BLZ'], |
||
625 | ['CA', 'Canada', 'CAD', 'CAN'], |
||
626 | ['CC', 'Cocos [Keeling] Islands', 'AUD', 'CCK'], |
||
627 | ['CD', 'Congo', 'CDF', 'COD'], |
||
628 | ['CF', 'Central African Republic', 'XAF', 'CAF'], |
||
629 | ['CG', 'Republic of the Congo', 'XAF', 'COG'], |
||
630 | ['CH', 'Switzerland', 'CHF', 'CHE'], |
||
631 | ['CI', 'Ivory Coast', 'XOF', 'CIV'], |
||
632 | ['CK', 'Cook Islands', 'NZD', 'COK'], |
||
633 | ['CL', 'Chile', 'CLP', 'CHL'], |
||
634 | ['CM', 'Cameroon', 'XAF', 'CMR'], |
||
635 | ['CN', 'China', 'CNY', 'CHN'], |
||
636 | ['CO', 'Colombia', 'COP', 'COL'], |
||
637 | ['CR', 'Costa Rica', 'CRC', 'CRI'], |
||
638 | ['CU', 'Cuba', 'CUP', 'CUB'], |
||
639 | ['CV', 'Cape Verde', 'CVE', 'CPV'], |
||
640 | ['CW', 'Curacao', 'ANG', 'CUW'], |
||
641 | ['CX', 'Christmas Island', 'AUD', 'CXR'], |
||
642 | ['CY', 'Cyprus', 'EUR', 'CYP'], |
||
643 | ['CZ', 'Czechia', 'CZK', 'CZE'], |
||
644 | ['DE', 'Germany', 'EUR', 'DEU'], |
||
645 | ['DJ', 'Djibouti', 'DJF', 'DJI'], |
||
646 | ['DK', 'Denmark', 'DKK', 'DNK'], |
||
647 | ['DM', 'Dominica', 'XCD', 'DMA'], |
||
648 | ['DO', 'Dominican Republic', 'DOP', 'DOM'], |
||
649 | ['DZ', 'Algeria', 'DZD', 'DZA'], |
||
650 | ['EC', 'Ecuador', 'USD', 'ECU'], |
||
651 | ['EE', 'Estonia', 'EUR', 'EST'], |
||
652 | ['EG', 'Egypt', 'EGP', 'EGY'], |
||
653 | ['EH', 'Western Sahara', 'MAD', 'ESH'], |
||
654 | ['ER', 'Eritrea', 'ERN', 'ERI'], |
||
655 | ['ES', 'Spain', 'EUR', 'ESP'], |
||
656 | ['ET', 'Ethiopia', 'ETB', 'ETH'], |
||
657 | ['FI', 'Finland', 'EUR', 'FIN'], |
||
658 | ['FJ', 'Fiji', 'FJD', 'FJI'], |
||
659 | ['FK', 'Falkland Islands', 'FKP', 'FLK'], |
||
660 | ['FM', 'Micronesia', 'USD', 'FSM'], |
||
661 | ['FO', 'Faroe Islands', 'DKK', 'FRO'], |
||
662 | ['FR', 'France', 'EUR', 'FRA'], |
||
663 | ['GA', 'Gabon', 'XAF', 'GAB'], |
||
664 | ['GB', 'United Kingdom', 'GBP', 'GBR'], |
||
665 | ['GD', 'Grenada', 'XCD', 'GRD'], |
||
666 | ['GE', 'Georgia', 'GEL', 'GEO'], |
||
667 | ['GF', 'French Guiana', 'EUR', 'GUF'], |
||
668 | ['GG', 'Guernsey', 'GBP', 'GGY'], |
||
669 | ['GH', 'Ghana', 'GHS', 'GHA'], |
||
670 | ['GI', 'Gibraltar', 'GIP', 'GIB'], |
||
671 | ['GL', 'Greenland', 'DKK', 'GRL'], |
||
672 | ['GM', 'Gambia', 'GMD', 'GMB'], |
||
673 | ['GN', 'Guinea', 'GNF', 'GIN'], |
||
674 | ['GP', 'Guadeloupe', 'EUR', 'GLP'], |
||
675 | ['GQ', 'Equatorial Guinea', 'XAF', 'GNQ'], |
||
676 | ['GR', 'Greece', 'EUR', 'GRC'], |
||
677 | ['GS', 'South Georgia and the South Sandwich Islands', 'GBP', 'SGS'], |
||
678 | ['GT', 'Guatemala', 'GTQ', 'GTM'], |
||
679 | ['GU', 'Guam', 'USD', 'GUM'], |
||
680 | ['GW', 'Guinea-Bissau', 'XOF', 'GNB'], |
||
681 | ['GY', 'Guyana', 'GYD', 'GUY'], |
||
682 | ['HK', 'Hong Kong', 'HKD', 'HKG'], |
||
683 | ['HM', 'Heard Island and McDonald Islands', 'AUD', 'HMD'], |
||
684 | ['HN', 'Honduras', 'HNL', 'HND'], |
||
685 | ['HR', 'Croatia', 'HRK', 'HRV'], |
||
686 | ['HT', 'Haiti', 'HTG', 'HTI'], |
||
687 | ['HU', 'Hungary', 'HUF', 'HUN'], |
||
688 | ['ID', 'Indonesia', 'IDR', 'IDN'], |
||
689 | ['IE', 'Ireland', 'EUR', 'IRL'], |
||
690 | ['IL', 'Israel', 'ILS', 'ISR'], |
||
691 | ['IM', 'Isle of Man', 'GBP', 'IMN'], |
||
692 | ['IN', 'India', 'INR', 'IND'], |
||
693 | ['IO', 'British Indian Ocean Territory', 'USD', 'IOT'], |
||
694 | ['IQ', 'Iraq', 'IQD', 'IRQ'], |
||
695 | ['IR', 'Iran', 'IRR', 'IRN'], |
||
696 | ['IS', 'Iceland', 'ISK', 'ISL'], |
||
697 | ['IT', 'Italy', 'EUR', 'ITA'], |
||
698 | ['JE', 'Jersey', 'GBP', 'JEY'], |
||
699 | ['JM', 'Jamaica', 'JMD', 'JAM'], |
||
700 | ['JO', 'Jordan', 'JOD', 'JOR'], |
||
701 | ['JP', 'Japan', 'JPY', 'JPN'], |
||
702 | ['KE', 'Kenya', 'KES', 'KEN'], |
||
703 | ['KG', 'Kyrgyzstan', 'KGS', 'KGZ'], |
||
704 | ['KH', 'Cambodia', 'KHR', 'KHM'], |
||
705 | ['KI', 'Kiribati', 'AUD', 'KIR'], |
||
706 | ['KM', 'Comoros', 'KMF', 'COM'], |
||
707 | ['KN', 'Saint Kitts and Nevis', 'XCD', 'KNA'], |
||
708 | ['KP', 'North Korea', 'KPW', 'PRK'], |
||
709 | ['KR', 'South Korea', 'KRW', 'KOR'], |
||
710 | ['KW', 'Kuwait', 'KWD', 'KWT'], |
||
711 | ['KY', 'Cayman Islands', 'KYD', 'CYM'], |
||
712 | ['KZ', 'Kazakhstan', 'KZT', 'KAZ'], |
||
713 | ['LA', 'Laos', 'LAK', 'LAO'], |
||
714 | ['LB', 'Lebanon', 'LBP', 'LBN'], |
||
715 | ['LC', 'Saint Lucia', 'XCD', 'LCA'], |
||
716 | ['LI', 'Liechtenstein', 'CHF', 'LIE'], |
||
717 | ['LK', 'Sri Lanka', 'LKR', 'LKA'], |
||
718 | ['LR', 'Liberia', 'LRD', 'LBR'], |
||
719 | ['LS', 'Lesotho', 'LSL', 'LSO'], |
||
720 | ['LT', 'Lithuania', 'LTL', 'LTU'], |
||
721 | ['LU', 'Luxembourg', 'EUR', 'LUX'], |
||
722 | ['LV', 'Latvia', 'LVL', 'LVA'], |
||
723 | ['LY', 'Libya', 'LYD', 'LBY'], |
||
724 | ['MA', 'Morocco', 'MAD', 'MAR'], |
||
725 | ['MC', 'Monaco', 'EUR', 'MCO'], |
||
726 | ['MD', 'Moldova', 'MDL', 'MDA'], |
||
727 | ['ME', 'Montenegro', 'EUR', 'MNE'], |
||
728 | ['MF', 'Saint Martin', 'EUR', 'MAF'], |
||
729 | ['MG', 'Madagascar', 'MGA', 'MDG'], |
||
730 | ['MH', 'Marshall Islands', 'USD', 'MHL'], |
||
731 | ['MK', 'Macedonia', 'MKD', 'MKD'], |
||
732 | ['ML', 'Mali', 'XOF', 'MLI'], |
||
733 | ['MM', 'Myanmar [Burma]', 'MMK', 'MMR'], |
||
734 | ['MN', 'Mongolia', 'MNT', 'MNG'], |
||
735 | ['MO', 'Macao', 'MOP', 'MAC'], |
||
736 | ['MP', 'Northern Mariana Islands', 'USD', 'MNP'], |
||
737 | ['MQ', 'Martinique', 'EUR', 'MTQ'], |
||
738 | ['MR', 'Mauritania', 'MRO', 'MRT'], |
||
739 | ['MS', 'Montserrat', 'XCD', 'MSR'], |
||
740 | ['MT', 'Malta', 'EUR', 'MLT'], |
||
741 | ['MU', 'Mauritius', 'MUR', 'MUS'], |
||
742 | ['MV', 'Maldives', 'MVR', 'MDV'], |
||
743 | ['MW', 'Malawi', 'MWK', 'MWI'], |
||
744 | ['MX', 'Mexico', 'MXN', 'MEX'], |
||
745 | ['MY', 'Malaysia', 'MYR', 'MYS'], |
||
746 | ['MZ', 'Mozambique', 'MZN', 'MOZ'], |
||
747 | ['NA', 'Namibia', 'NAD', 'NAM'], |
||
748 | ['NC', 'New Caledonia', 'XPF', 'NCL'], |
||
749 | ['NE', 'Niger', 'XOF', 'NER'], |
||
750 | ['NF', 'Norfolk Island', 'AUD', 'NFK'], |
||
751 | ['NG', 'Nigeria', 'NGN', 'NGA'], |
||
752 | ['NI', 'Nicaragua', 'NIO', 'NIC'], |
||
753 | ['NL', 'Netherlands', 'EUR', 'NLD'], |
||
754 | ['NO', 'Norway', 'NOK', 'NOR'], |
||
755 | ['NP', 'Nepal', 'NPR', 'NPL'], |
||
756 | ['NR', 'Nauru', 'AUD', 'NRU'], |
||
757 | ['NU', 'Niue', 'NZD', 'NIU'], |
||
758 | ['NZ', 'New Zealand', 'NZD', 'NZL'], |
||
759 | ['OM', 'Oman', 'OMR', 'OMN'], |
||
760 | ['PA', 'Panama', 'PAB', 'PAN'], |
||
761 | ['PE', 'Peru', 'PEN', 'PER'], |
||
762 | ['PF', 'French Polynesia', 'XPF', 'PYF'], |
||
763 | ['PG', 'Papua New Guinea', 'PGK', 'PNG'], |
||
764 | ['PH', 'Philippines', 'PHP', 'PHL'], |
||
765 | ['PK', 'Pakistan', 'PKR', 'PAK'], |
||
766 | ['PL', 'Poland', 'PLN', 'POL'], |
||
767 | ['PM', 'Saint Pierre and Miquelon', 'EUR', 'SPM'], |
||
768 | ['PN', 'Pitcairn Islands', 'NZD', 'PCN'], |
||
769 | ['PR', 'Puerto Rico', 'USD', 'PRI'], |
||
770 | ['PS', 'Palestine', 'ILS', 'PSE'], |
||
771 | ['PT', 'Portugal', 'EUR', 'PRT'], |
||
772 | ['PW', 'Palau', 'USD', 'PLW'], |
||
773 | ['PY', 'Paraguay', 'PYG', 'PRY'], |
||
774 | ['QA', 'Qatar', 'QAR', 'QAT'], |
||
775 | ['RE', 'Réunion', 'EUR', 'REU'], |
||
776 | ['RO', 'Romania', 'RON', 'ROU'], |
||
777 | ['RS', 'Serbia', 'RSD', 'SRB'], |
||
778 | ['RU', 'Russia', 'RUB', 'RUS'], |
||
779 | ['RW', 'Rwanda', 'RWF', 'RWA'], |
||
780 | ['SA', 'Saudi Arabia', 'SAR', 'SAU'], |
||
781 | ['SB', 'Solomon Islands', 'SBD', 'SLB'], |
||
782 | ['SC', 'Seychelles', 'SCR', 'SYC'], |
||
783 | ['SD', 'Sudan', 'SDG', 'SDN'], |
||
784 | ['SE', 'Sweden', 'SEK', 'SWE'], |
||
785 | ['SG', 'Singapore', 'SGD', 'SGP'], |
||
786 | ['SH', 'Saint Helena', 'SHP', 'SHN'], |
||
787 | ['SI', 'Slovenia', 'EUR', 'SVN'], |
||
788 | ['SJ', 'Svalbard and Jan Mayen', 'NOK', 'SJM'], |
||
789 | ['SK', 'Slovakia', 'EUR', 'SVK'], |
||
790 | ['SL', 'Sierra Leone', 'SLL', 'SLE'], |
||
791 | ['SM', 'San Marino', 'EUR', 'SMR'], |
||
792 | ['SN', 'Senegal', 'XOF', 'SEN'], |
||
793 | ['SO', 'Somalia', 'SOS', 'SOM'], |
||
794 | ['SR', 'Suriname', 'SRD', 'SUR'], |
||
795 | ['SS', 'South Sudan', 'SSP', 'SSD'], |
||
796 | ['ST', 'São Tomé and Príncipe', 'STD', 'STP'], |
||
797 | ['SV', 'El Salvador', 'USD', 'SLV'], |
||
798 | ['SX', 'Sint Maarten', 'ANG', 'SXM'], |
||
799 | ['SY', 'Syria', 'SYP', 'SYR'], |
||
800 | ['SZ', 'Swaziland', 'SZL', 'SWZ'], |
||
801 | ['TC', 'Turks and Caicos Islands', 'USD', 'TCA'], |
||
802 | ['TD', 'Chad', 'XAF', 'TCD'], |
||
803 | ['TF', 'French Southern Territories', 'EUR', 'ATF'], |
||
804 | ['TG', 'Togo', 'XOF', 'TGO'], |
||
805 | ['TH', 'Thailand', 'THB', 'THA'], |
||
806 | ['TJ', 'Tajikistan', 'TJS', 'TJK'], |
||
807 | ['TK', 'Tokelau', 'NZD', 'TKL'], |
||
808 | ['TL', 'East Timor', 'USD', 'TLS'], |
||
809 | ['TM', 'Turkmenistan', 'TMT', 'TKM'], |
||
810 | ['TN', 'Tunisia', 'TND', 'TUN'], |
||
811 | ['TO', 'Tonga', 'TOP', 'TON'], |
||
812 | ['TR', 'Turkey', 'TRY', 'TUR'], |
||
813 | ['TT', 'Trinidad and Tobago', 'TTD', 'TTO'], |
||
814 | ['TV', 'Tuvalu', 'AUD', 'TUV'], |
||
815 | ['TW', 'Taiwan', 'TWD', 'TWN'], |
||
816 | ['TZ', 'Tanzania', 'TZS', 'TZA'], |
||
817 | ['UA', 'Ukraine', 'UAH', 'UKR'], |
||
818 | ['UG', 'Uganda', 'UGX', 'UGA'], |
||
819 | ['UM', 'U.S. Minor Outlying Islands', 'USD', 'UMI'], |
||
820 | ['US', 'United States', 'USD', 'USA'], |
||
821 | ['UY', 'Uruguay', 'UYU', 'URY'], |
||
822 | ['UZ', 'Uzbekistan', 'UZS', 'UZB'], |
||
823 | ['VA', 'Vatican City', 'EUR', 'VAT'], |
||
824 | ['VC', 'Saint Vincent and the Grenadines', 'XCD', 'VCT'], |
||
825 | ['VE', 'Venezuela', 'VEF', 'VEN'], |
||
826 | ['VG', 'British Virgin Islands', 'USD', 'VGB'], |
||
827 | ['VI', 'U.S. Virgin Islands', 'USD', 'VIR'], |
||
828 | ['VN', 'Vietnam', 'VND', 'VNM'], |
||
829 | ['VU', 'Vanuatu', 'VUV', 'VUT'], |
||
830 | ['WF', 'Wallis and Futuna', 'XPF', 'WLF'], |
||
831 | ['WS', 'Samoa', 'WST', 'WSM'], |
||
832 | ['XK', 'Kosovo', 'EUR', 'XKX'], |
||
833 | ['YE', 'Yemen', 'YER', 'YEM'], |
||
834 | ['YT', 'Mayotte', 'EUR', 'MYT'], |
||
835 | ['ZA', 'South Africa', 'ZAR', 'ZAF'], |
||
836 | ['ZM', 'Zambia', 'ZMK', 'ZMB'], |
||
837 | ['ZW', 'Zimbabwe', 'ZWL', 'ZWE'], |
||
838 | ]; |
||
839 | |||
840 | foreach ($currencies as $currency) { |
||
841 | $value = Database::select( |
||
842 | "*", |
||
843 | $currencyTable, |
||
844 | [ |
||
845 | 'where' => ['country_code = ?' => $currency[0]], |
||
846 | ], |
||
847 | 'first' |
||
848 | ); |
||
849 | |||
850 | if (!empty($value)) { |
||
851 | continue; |
||
852 | } |
||
853 | |||
854 | Database::insert( |
||
855 | $currencyTable, |
||
856 | [ |
||
857 | 'country_code' => $currency[0], |
||
858 | 'country_name' => $currency[1], |
||
859 | 'iso_code' => $currency[2], |
||
860 | ] |
||
861 | ); |
||
862 | } |
||
863 | |||
864 | $fieldlabel = 'buycourses_company'; |
||
865 | $fieldtype = '1'; |
||
866 | $fieldtitle = BuyCoursesPlugin::get_lang('Company'); |
||
867 | $fielddefault = ''; |
||
868 | $field_id = UserManager::create_extra_field($fieldlabel, $fieldtype, $fieldtitle, $fielddefault); |
||
869 | |||
870 | $fieldlabel = 'buycourses_vat'; |
||
871 | $fieldtype = '1'; |
||
872 | $fieldtitle = BuyCoursesPlugin::get_lang('VAT'); |
||
873 | $fielddefault = ''; |
||
874 | $field_id = UserManager::create_extra_field($fieldlabel, $fieldtype, $fieldtitle, $fielddefault); |
||
875 | |||
876 | $fieldlabel = 'buycourses_address'; |
||
877 | $fieldtype = '1'; |
||
878 | $fieldtitle = BuyCoursesPlugin::get_lang('Address'); |
||
879 | $fielddefault = ''; |
||
880 | $field_id = UserManager::create_extra_field($fieldlabel, $fieldtype, $fieldtitle, $fielddefault); |
||
881 |
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)
or! empty(...)
instead.