PluginProbe ʕ •ᴥ•ʔ
VikAppointments Services Booking Calendar / 1.2.21
VikAppointments Services Booking Calendar v1.2.21
1.2.21 1.2.20 trunk 1.2.17 1.2.18 1.2.19
vikappointments / site / helpers / libraries / import / classes / customers.php
vikappointments / site / helpers / libraries / import / classes Last commit date
cities.php 3 days ago coupons.php 3 days ago customers.php 3 days ago empgroups.php 3 days ago employees.php 3 days ago groups.php 3 days ago index.html 3 days ago locations.php 3 days ago optiongroups.php 3 days ago options.php 3 days ago reviews.php 3 days ago services.php 3 days ago states.php 3 days ago
customers.php
85 lines
1 <?php
2 /**
3 * @package VikAppointments
4 * @subpackage core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2021 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 VAPLoader::import('libraries.import.object');
15
16 /**
17 * Class used to handle an import event for the CUSTOMERS.
18 *
19 * @see ImportObject
20 * @since 1.6
21 */
22 class ImportObjectCustomers extends ImportObject
23 {
24 /**
25 * Builds the base query to export all the records.
26 * @since 1.7 $app and $dbo are now included within the $options argument.
27 *
28 * @param JObject $options A registry of export options.
29 * @param string $alias The table alias.
30 *
31 * @return mixed The query builder object.
32 *
33 * @uses getColumns()
34 * @uses getTable()
35 * @uses getPrimaryKey()
36 */
37 protected function buildExportQuery($options, $alias = 'c')
38 {
39 $app = $options->get('app');
40 $dbo = $options->get('dbo');
41
42 $filters = array();
43 $filters['keys'] = $app->getUserStateFromRequest('vapcustomers.keys', 'keys', '', 'string');
44 $filters['type'] = $app->getUserStateFromRequest('vapcustomers.type', 'utype', 0, 'int');
45 $filters['country'] = $app->getUserStateFromRequest('vapcustomers.country', 'country', '', 'string');
46
47 $q = parent::buildExportQuery($options, $alias);
48
49 // init where to prevent errors with andWhere search
50 $q->where(1);
51
52 // search filter
53 if (strlen($filters['keys']))
54 {
55 $q->andWhere(array(
56 $dbo->qn('c.billing_name') . ' LIKE ' . $dbo->q("%{$filters['keys']}%"),
57 $dbo->qn('c.billing_mail') . ' LIKE ' . $dbo->q("%{$filters['keys']}%"),
58 $dbo->qn('c.billing_phone') . ' LIKE ' . $dbo->q("%{$filters['keys']}%"),
59 $dbo->qn('c.company') . ' LIKE ' . $dbo->q("%{$filters['keys']}%"),
60 $dbo->qn('c.vatnum') . ' = ' . $dbo->q("{$filters['keys']}"),
61 ));
62 }
63
64 // type filter
65 if ($filters['type'] == 1)
66 {
67 // registered
68 $q->where($dbo->qn('c.jid') . ' > 0');
69 }
70 else if ($filters['type'] == -1)
71 {
72 // guest
73 $q->where($dbo->qn('c.jid') . ' <= 0');
74 }
75
76 // country filter
77 if (strlen($filters['country']))
78 {
79 $q->where($dbo->qn('c.country_code') . ' = ' . $dbo->q($filters['country']));
80 }
81
82 return $q;
83 }
84 }
85