Projekt

Allgemein

Profil

Statistiken
| Revision:

testmodus / admin / customers.php @ 1

Historie | Anzeigen | Annotieren | Download (36 KB)

1 1 root
<?php
2
  /* --------------------------------------------------------------
3
   $Id: customers.php 13419 2021-02-09 15:13:48Z GTB $
4

5
   modified eCommerce Shopsoftware
6
   http://www.modified-shop.org
7

8
   Copyright (c) 2009 - 2013 [www.modified-shop.org]
9
   --------------------------------------------------------------
10
   based on:
11
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
12
   (c) 2002-2003 osCommerce(customers.php,v 1.76 2003/05/04); www.oscommerce.com
13
   (c) 2003   nextcommerce (customers.php,v 1.22 2003/08/24); www.nextcommerce.org
14
   (c) 2006 XT-Commerce (customers.php 1296 2005-10-08)
15

16
   Released under the GNU General Public License
17
   --------------------------------------------------------------
18
   Third Party contribution:
19
   Customers Status v3.x  (c) 2002-2003 Copyright Elari elari@free.fr | www.unlockgsm.com/dload-osc/ | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist
20

21
   Released under the GNU General Public License
22
   --------------------------------------------------------------*/
23
24
  require ('includes/application_top.php');
25
26
  require_once (DIR_FS_INC.'xtc_validate_vatid_status.inc.php');
27
  require_once (DIR_FS_INC.'xtc_get_geo_zone_code.inc.php');
28
  require_once (DIR_FS_INC.'xtc_encrypt_password.inc.php');
29
  require_once (DIR_FS_INC.'xtc_js_lang.php');
30
  require_once (DIR_FS_INC.'ip_clearing.inc.php');
31
  require_once (DIR_FS_INC.'get_customers_gender.inc.php');
32
33
  require(DIR_WS_INCLUDES . 'get_states.php');
34
35
  // split page results
36
  if(!defined('MAX_DISPLAY_LIST_CUSTOMERS')) {
37
    define('MAX_DISPLAY_LIST_CUSTOMERS', 100);
38
  }
39
40
  // customers totals
41
  require(DIR_WS_CLASSES . 'currencies.php');
42
  $currencies = new currencies();
43
44
  $customers_statuses_array = xtc_get_customers_statuses();
45
  // changes all $customers_statuses_array[xx] to $customers_statuses_id_array[xx]  in html section
46
  $customers_statuses_id_array = array();
47
  for ($i=0;$n=sizeof($customers_statuses_array),$i<$n;$i++) {
48
    $customers_statuses_id_array[$customers_statuses_array[$i]['id']] = $customers_statuses_array[$i];
49
  }
50
51
  $processed = false;
52
  $error = false;
53
  $entry_vat_error_text = '';
54
  $action = (isset($_GET['action']) ? $_GET['action'] : '');
55
  $customers_id = (isset($_GET['cID']) ? (int)$_GET['cID'] : 0);
56
  $page = (isset($_GET['page']) ? (int)$_GET['page'] : 1);
57
58
  if (isset($_GET['special']) && $_GET['special'] == 'remove_memo') {
59
    $mID = xtc_db_prepare_input($_GET['mID']);
60
    xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_MEMO." WHERE memo_id = '".(int)$mID."'");
61
    xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, xtc_get_all_get_params(array('cID', 'action', 'special')).'cID='.$customers_id.'&action=edit'));
62
  }
63
64
  if (($action == 'edit' || $action == 'update') && !(($customers_id == 1 && $_SESSION['customer_id'] == 1) || $customers_id != 1)) {
65
    xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, ''));
66
  }
67
68
  if ($action) {
69
    switch ($action) {
70
      case 'new_order_confirm':
71
        // customers
72
        $customers1_query = xtc_db_query("SELECT * FROM ".TABLE_CUSTOMERS." WHERE customers_id = '".$customers_id."'");
73
        $customers1 = xtc_db_fetch_array($customers1_query);
74
75
        // customers default address
76
        $customers_query = xtc_db_query("SELECT * FROM ".TABLE_ADDRESS_BOOK."
77
                                          WHERE customers_id = '".$customers_id."'
78
                                            AND address_book_id =  '".$customers1['customers_default_address_id']."'");
79
        $customers = xtc_db_fetch_array($customers_query);
80
81
        // countries
82
        $country_query = xtc_db_query("SELECT countries_name, countries_iso_code_2, address_format_id
83
                                         FROM ".TABLE_COUNTRIES."
84
                                        WHERE countries_id = '".$customers['entry_country_id']."'");
85
        $country = xtc_db_fetch_array($country_query);
86
87
        // customers status
88
        $stat_query = xtc_db_query("SELECT * FROM ".TABLE_CUSTOMERS_STATUS." WHERE customers_status_id = '".(int)$customers1['customers_status']."' AND language_id = '".(int)$_SESSION['languages_id']."'");
89
        $stat = xtc_db_fetch_array($stat_query);
90
91
        if (file_exists(DIR_FS_LANGUAGES . $_SESSION['language'] . '/modules/shipping/' . $_POST['shipping'] . '.php')) {
92
          require_once(DIR_FS_LANGUAGES . $_SESSION['language'] . '/modules/shipping/' . $_POST['shipping'] . '.php');
93
        }
94
95
        $sql_data_array = array (
96
            'customers_id' => xtc_db_prepare_input($customers['customers_id']),
97
            'customers_cid' => xtc_db_prepare_input($customers1['customers_cid']),
98
            'customers_vat_id' => xtc_db_prepare_input($customers1['customers_vat_id']),
99
            'customers_status' => xtc_db_prepare_input($customers1['customers_status']),
100
            'customers_status_name' => xtc_db_prepare_input($stat['customers_status_name']),
101
            'customers_status_image' => xtc_db_prepare_input($stat['customers_status_image']),
102
            'customers_status_discount' => xtc_db_prepare_input($stat['customers_status_discount']),
103
            'customers_name' => xtc_db_prepare_input($customers['entry_firstname'].' '.$customers['entry_lastname']),
104
            'customers_lastname' => xtc_db_prepare_input($customers['entry_lastname']),
105
            'customers_firstname' => xtc_db_prepare_input($customers['entry_firstname']),
106
            'customers_gender' => xtc_db_prepare_input($customers['entry_gender']),
107
            'customers_company' => xtc_db_prepare_input($customers['entry_company']),
108
            'customers_street_address' => xtc_db_prepare_input($customers['entry_street_address']),
109
            'customers_suburb' => xtc_db_prepare_input($customers['entry_suburb']),
110
            'customers_city' => xtc_db_prepare_input($customers['entry_city']),
111
            'customers_postcode' => xtc_db_prepare_input($customers['entry_postcode']),
112
            'customers_state' => xtc_db_prepare_input(xtc_get_zone_code($customers['entry_country_id'], $customers['entry_zone_id'], $customers['entry_state'])),
113
            'customers_country' => xtc_db_prepare_input($country['countries_name']),
114
            'customers_telephone' => xtc_db_prepare_input($customers1['customers_telephone']),
115
            'customers_email_address' => xtc_db_prepare_input($customers1['customers_email_address']),
116
            'customers_country_iso_code_2' => xtc_db_prepare_input($country['countries_iso_code_2']),
117
            'customers_address_format_id' => xtc_db_prepare_input($country['address_format_id']),
118
            'delivery_name' => xtc_db_prepare_input($customers['entry_firstname'].' '.$customers['entry_lastname']),
119
            'delivery_lastname' => xtc_db_prepare_input($customers['entry_lastname']),
120
            'delivery_firstname' => xtc_db_prepare_input($customers['entry_firstname']),
121
            'delivery_gender' => xtc_db_prepare_input($customers['entry_gender']),
122
            'delivery_company' => xtc_db_prepare_input($customers['entry_company']),
123
            'delivery_street_address' => xtc_db_prepare_input($customers['entry_street_address']),
124
            'delivery_suburb' => xtc_db_prepare_input($customers['entry_suburb']),
125
            'delivery_city' => xtc_db_prepare_input($customers['entry_city']),
126
            'delivery_postcode' => xtc_db_prepare_input($customers['entry_postcode']),
127
            'delivery_state' => xtc_db_prepare_input(xtc_get_zone_code($customers['entry_country_id'], $customers['entry_zone_id'], $customers['entry_state'])),
128
            'delivery_country' => xtc_db_prepare_input($country['countries_name']),
129
            'delivery_country_iso_code_2' => xtc_db_prepare_input($country['countries_iso_code_2']),
130
            'delivery_address_format_id' => xtc_db_prepare_input($country['address_format_id']),
131
            'billing_name' => xtc_db_prepare_input($customers['entry_firstname'].' '.$customers['entry_lastname']),
132
            'billing_lastname' => xtc_db_prepare_input($customers['entry_lastname']),
133
            'billing_firstname' => xtc_db_prepare_input($customers['entry_firstname']),
134
            'billing_gender' => xtc_db_prepare_input($customers['entry_gender']),
135
            'billing_company' => xtc_db_prepare_input($customers['entry_company']),
136
            'billing_street_address' => xtc_db_prepare_input($customers['entry_street_address']),
137
            'billing_suburb' => xtc_db_prepare_input($customers['entry_suburb']),
138
            'billing_city' => xtc_db_prepare_input($customers['entry_city']),
139
            'billing_postcode' => xtc_db_prepare_input($customers['entry_postcode']),
140
            'billing_state' => xtc_db_prepare_input(xtc_get_zone_code($customers['entry_country_id'], $customers['entry_zone_id'], $customers['entry_state'])),
141
            'billing_country' => xtc_db_prepare_input($country['countries_name']),
142
            'billing_country_iso_code_2' => xtc_db_prepare_input($country['countries_iso_code_2']),
143
            'billing_address_format_id' => xtc_db_prepare_input($country['address_format_id']),
144
            'payment_method' => xtc_db_prepare_input($_POST['payment']),
145
            'comments' => '',
146
            'date_purchased' => 'now()',
147
            'orders_status' => DEFAULT_ORDERS_STATUS_ID,
148
            'currency' => DEFAULT_CURRENCY,
149
            'currency_value' => '1.0000',
150
            'account_type' => $customers1['account_type'],
151
            'payment_class' => xtc_db_prepare_input($_POST['payment']),
152
            'shipping_method' => constant('MODULE_SHIPPING_'.strtoupper($_POST['shipping']).'_TEXT_TITLE'),
153
            'shipping_class' => xtc_db_prepare_input($_POST['shipping']).'_'.xtc_db_prepare_input($_POST['shipping']),
154
            'customers_ip' => ip_clearing($_SESSION['tracking']['ip']),
155
            'language' => $_SESSION['language'],
156
            'languages_id' => $_SESSION['languages_id']
157
          );
158
159
        xtc_db_perform(TABLE_ORDERS, $sql_data_array);
160
        $orders_id = xtc_db_insert_id();
161
162
        $sql_data_array = array (
163
            'orders_id' => (int)$orders_id,
164
            'orders_status_id' => DEFAULT_ORDERS_STATUS_ID,
165
            'date_added' => 'now()',
166
            'customer_notified' => '0',
167
            'comments' => '',
168
          );
169
        xtc_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);
170
171
        require_once (DIR_FS_LANGUAGES.$_SESSION['language'].'/modules/order_total/ot_total.php');
172
        $sql_data_array = array(
173
            'orders_id' => (int)$orders_id,
174
            'title' => MODULE_ORDER_TOTAL_TOTAL_TITLE.':',
175
            'text' => '0',
176
            'value' => '0',
177
            'class' => 'ot_total',
178
            'sort_order' => MODULE_ORDER_TOTAL_TOTAL_SORT_ORDER
179
          );
180
        xtc_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
181
182
        require_once (DIR_FS_LANGUAGES.$_SESSION['language'].'/modules/order_total/ot_shipping.php');
183
        $sql_data_array = array(
184
            'orders_id' => (int)$orders_id,
185
            'title' => constant('MODULE_SHIPPING_'.strtoupper($_POST['shipping']).'_TEXT_TITLE').':',
186
            'text' => '0',
187
            'value' => '0',
188
            'class' => 'ot_shipping',
189
            'sort_order' => MODULE_ORDER_TOTAL_SHIPPING_SORT_ORDER
190
          );
191
        xtc_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
192
193
        require_once (DIR_FS_LANGUAGES.$_SESSION['language'].'/modules/order_total/ot_subtotal.php');
194
        $sql_data_array = array(
195
            'orders_id' => (int)$orders_id,
196
            'title' => MODULE_ORDER_TOTAL_SUBTOTAL_TITLE.':',
197
            'text' => '0',
198
            'value' => '0',
199
            'class' => 'ot_subtotal',
200
            'sort_order' => MODULE_ORDER_TOTAL_SUBTOTAL_SORT_ORDER
201
          );
202
        xtc_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
203
204
        xtc_redirect(xtc_href_link(FILENAME_ORDERS, 'oID='.(int)$orders_id.'&action=edit'));
205
        break;
206
207
      case 'delete_confirm_adressbook' :
208
          xtc_db_query("DELETE FROM ".TABLE_ADDRESS_BOOK."
209
                              WHERE address_book_id = '".(int) $_GET['address_book_id']."'
210
                                AND customers_id = '".$customers_id."'");
211
          xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, xtc_get_all_get_params(array ('cID', 'action', 'delete_confirm_adressbook')).'cID='.(int)$customers_id));
212
          break;
213
214
       case 'update_default_adressbook' :
215
          $address_book_query = xtc_db_query("SELECT entry_gender AS customers_gender,
216
                                                     entry_firstname AS customers_firstname,
217
                                                     entry_lastname AS customers_lastname
218
                                                FROM ".TABLE_ADDRESS_BOOK."
219
                                               WHERE address_book_id = '".(int) $_GET['default']."'
220
                                                 AND customers_id = '".$customers_id."'");
221
          $address_book_array = xtc_db_fetch_array($address_book_query);
222
223
          if (ACCOUNT_GENDER != 'true') {
224
            unset($address_book_array['customers_gender']);
225
          }
226
227
          $sql_data_array = array (
228
              'customers_default_address_id' => (int) $_GET['default'],
229
              'customers_last_modified' => 'now()'
230
            );
231
          $sql_data_array = array_merge($address_book_array,$sql_data_array);
232
          xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array, 'update', "customers_id = '". $customers_id ."'");
233
234
          xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, xtc_get_all_get_params(array ('cID', 'action', 'update_default_adressbook', 'default')).'cID='.$customers_id.'&action=address_book'));
235
          break;
236
237
      case 'statusconfirm' :
238
        if (!isset($_POST['multi_customers_confirm']) && (int)$customers_id > 0) {
239
          $_POST['multi_customers_confirm'] = array($customers_id);
240
        }
241
242
        if (isset($_POST['multi_customers_confirm']) && is_array($_POST['multi_customers_confirm'])) {
243
          foreach ($_POST['multi_customers_confirm'] as $customers_id) {
244
            $error = false;
245
            $check_status_query = xtc_db_query("SELECT customers_firstname,
246
                                                       customers_lastname,
247
                                                       customers_email_address,
248
                                                       customers_status,
249
                                                       member_flag
250
                                                  FROM ".TABLE_CUSTOMERS."
251
                                                 WHERE customers_id = '".$customers_id."'");
252
            $check_status = xtc_db_fetch_array($check_status_query);
253
            if ($check_status['customers_status'] != (int)$_POST['customers_status']) {
254
              $sql_data_array = array('customers_status' => (int)$_POST['customers_status']);
255
256
              $sql_add_data_array['account_type'] = '1';
257
              if ($_POST['customers_status'] != DEFAULT_CUSTOMERS_STATUS_ID_GUEST) {
258
                $sql_add_data_array['account_type'] = '0';
259
              }
260
261
              // check existing account
262
              if ($sql_add_data_array['account_type'] == '0') {
263
                $check_existing_customer_query = xtc_db_query("SELECT customers_id
264
                                                                 FROM ".TABLE_CUSTOMERS."
265
                                                                WHERE customers_email_address = '".xtc_db_input($check_status['customers_email_address'])."'
266
                                                                  AND account_type = '0'
267
                                                                  AND customers_id != '".$customers_id."'");
268
                if (xtc_db_num_rows($check_existing_customer_query) > 0) {
269
                  $error = true;
270
                  $messageStack->add_session(WARNING_CUSTOMER_ALREADY_EXISTS, 'warning');
271
                }
272
              }
273
274
              if ($error === false) {
275
                xtc_db_perform(TABLE_CUSTOMERS, array_merge($sql_data_array, $sql_add_data_array), 'update', "customers_id = '".$customers_id."'");
276
277
                // update customers status in newsletters_recipients
278
                xtc_db_perform(TABLE_NEWSLETTER_RECIPIENTS, $sql_data_array, 'update', "customers_id = '".$customers_id."'");
279
280
                // create insert for admin access table if customers status is set to 0
281
                if ($_POST['customers_status'] == 0) {
282
                  xtc_db_query("INSERT INTO  ".TABLE_ADMIN_ACCESS." (customers_id) VALUES ('".$customers_id."')");
283
                } else {
284
                  xtc_db_query("DELETE FROM ".TABLE_ADMIN_ACCESS." WHERE customers_id = '".$customers_id."'");
285
                }
286
                $sql_data_array = array('customers_id' => $customers_id,
287
                                        'new_value' => (int)$_POST['customers_status'],
288
                                        'old_value' => $check_status['customers_status'],
289
                                        'date_added' => 'now()',
290
                                        'customer_notified' => '0');
291
                xtc_db_perform(TABLE_CUSTOMERS_STATUS_HISTORY, $sql_data_array);
292
              }
293
            }
294
          }
295
        }
296
        xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, xtc_get_all_get_params(array('cID', 'action')).'cID='.$customers_id));
297
        break;
298
299
      case 'update' :
300
        $customers_cid = xtc_db_prepare_input($_POST['customers_cid']);
301
        $customers_vat_id = xtc_db_prepare_input($_POST['customers_vat_id']);
302
        $customers_vat_id_status = (isset($_POST['customers_vat_id_status']) ? xtc_db_prepare_input($_POST['customers_vat_id_status']) : '');
303
        $customers_firstname = xtc_db_prepare_input($_POST['customers_firstname']);
304
        $customers_lastname = xtc_db_prepare_input($_POST['customers_lastname']);
305
        $customers_email_address = xtc_db_prepare_input($_POST['customers_email_address']);
306
        $customers_telephone = xtc_db_prepare_input($_POST['customers_telephone']);
307
        $customers_fax = xtc_db_prepare_input($_POST['customers_fax']);
308
        if (ACCOUNT_GENDER == 'true') $customers_gender = xtc_db_prepare_input($_POST['customers_gender']);
309
        if (ACCOUNT_DOB == 'true') $customers_dob = xtc_db_prepare_input($_POST['customers_dob']);
310
        $customers_default_address_id = xtc_db_prepare_input($_POST['customers_default_address_id']);
311
        $address_book_id = xtc_db_prepare_input($_POST['address_book_id']);
312
        $entry_street_address = xtc_db_prepare_input($_POST['entry_street_address']);
313
        if (ACCOUNT_SUBURB == 'true') $entry_suburb = xtc_db_prepare_input($_POST['entry_suburb']);
314
        $entry_postcode = xtc_db_prepare_input($_POST['entry_postcode']);
315
        $entry_city = xtc_db_prepare_input($_POST['entry_city']);
316
        $entry_country_id = xtc_db_prepare_input($_POST['entry_country_id']);
317
        if (ACCOUNT_COMPANY == 'true') $entry_company = xtc_db_prepare_input($_POST['entry_company']);
318
        if (ACCOUNT_STATE == 'true') $entry_state = xtc_db_prepare_input($_POST['entry_state']);
319
        if (ACCOUNT_STATE == 'true') $entry_zone_id = xtc_db_prepare_input($_POST['entry_zone_id']);
320
        $memo_title = xtc_db_prepare_input($_POST['memo_title']);
321
        $memo_text = xtc_db_prepare_input($_POST['memo_text']);
322
        $payment_unallowed = implode(',', (isset($_POST['payment_unallowed']) && is_array($_POST['payment_unallowed']) ? $_POST['payment_unallowed'] : array()));
323
        $shipping_unallowed = implode(',', (isset($_POST['shipping_unallowed']) && is_array($_POST['shipping_unallowed']) ? $_POST['shipping_unallowed'] : array()));
324
        $password = xtc_db_prepare_input($_POST['customers_password']);
325
        /*
326
        $amount = xtc_db_prepare_input($_POST['amount']);
327
        if ($amount != '') {
328
          $sql_data_array = array('customer_id' => $customers_id,
329
                                  'amount' => $amount
330
                                  );
331
          $check_gv_query = xtc_db_query("SELECT * FROM " . TABLE_COUPON_GV_CUSTOMER . " WHERE customer_id = '".$customers_id."'");
332
          if (xtc_db_num_rows($check_gv_query) > 0) {
333
            xtc_db_perform(TABLE_COUPON_GV_CUSTOMER, $sql_data_array, 'update', "customer_id = '".$customers_id."'");
334
          } else {
335
            xtc_db_perform(TABLE_COUPON_GV_CUSTOMER, $sql_data_array);
336
          }
337
        }*/
338
339
        // reset error flag
340
        $error = false;
341
342
        $entry_memo_title_error = false;
343
        $entry_memo_text_error = false;
344
        if ($memo_text != '' || $memo_title != '') {
345
          if ($memo_text != '' && $memo_title == '') {
346
            $error = true;
347
            $entry_memo_title_error = true;
348
          }
349
          if ($memo_text == '' && $memo_title != '') {
350
            $error = true;
351
            $entry_memo_text_error = true;
352
          }
353
          if ($error === false) {
354
            $sql_data_array = array ('customers_id' => $customers_id,
355
                                     'memo_date' => date("Y-m-d"),
356
                                     'memo_title' => $memo_title,
357
                                     'memo_text' => $memo_text,
358
                                     'poster_id' => (int)$_SESSION['customer_id']
359
                                    );
360
            xtc_db_perform(TABLE_CUSTOMERS_MEMO, $sql_data_array);
361
          }
362
        }
363
364
        if (strlen($customers_firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {
365
          $error = true;
366
          $entry_firstname_error = true;
367
        } else {
368
          $entry_firstname_error = false;
369
        }
370
371
        if (strlen($customers_lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
372
          $error = true;
373
          $entry_lastname_error = true;
374
        } else {
375
          $entry_lastname_error = false;
376
        }
377
378
        if (ACCOUNT_GENDER == 'true') {
379
          if (($customers_gender == '')) {
380
            $error = true;
381
            $entry_gender_error = true;
382
          } else {
383
            $entry_gender_error = false;
384
          }
385
        }
386
387
        if (ACCOUNT_DOB == 'true') {
388
          if (checkdate(substr(xtc_date_raw($customers_dob), 4, 2), substr(xtc_date_raw($customers_dob), 6, 2), substr(xtc_date_raw($customers_dob), 0, 4))) {
389
            $entry_date_of_birth_error = false;
390
          } else {
391
            $error = true;
392
            $entry_date_of_birth_error = true;
393
          }
394
        }
395
396
        // New VAT Check
397
        if (xtc_get_geo_zone_code($entry_country_id) != '6') {
398
          require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'vat_validation.php');
399
          $vatID = new vat_validation($customers_vat_id, $customers_id, '', $entry_country_id);
400
          $customers_vat_id_status = isset($vatID->vat_info['vat_id_status']) ? $vatID->vat_info['vat_id_status'] : '';
401
          // display correct error code of VAT ID check
402
          switch ($customers_vat_id_status) {
403
            case '0' :// 'VAT invalid'
404
              $entry_vat_error_text = TEXT_VAT_FALSE;
405
              break;
406
            case '1' :// 'VAT valid'
407
              $entry_vat_error_text = TEXT_VAT_TRUE;
408
              break;
409
            case '2' :// 'SOAP ERROR: Connection to host not possible, europe.eu down?'
410
              $entry_vat_error_text = TEXT_VAT_CONNECTION_NOT_POSSIBLE;
411
              break;
412
            case '8' :// 'unknown country'
413
              $entry_vat_error_text = TEXT_VAT_UNKNOWN_COUNTRY;
414
              break;
415
            case '94' :// 'INVALID_INPUT' => 'The provided CountryCode is invalid or the VAT number is empty'
416
              $entry_vat_error_text = TEXT_VAT_INVALID_INPUT;
417
              break;
418
            case '95' :// 'SERVICE_UNAVAILABLE' => 'The SOAP service is unavailable, try again later'
419
              $entry_vat_error_text = TEXT_VAT_SERVICE_UNAVAILABLE;
420
              break;
421
            case '96' :// 'MS_UNAVAILABLE' => 'The Member State service is unavailable, try again later or with another Member State'
422
              $entry_vat_error_text = TEXT_VAT_MS_UNAVAILABLE;
423
              break;
424
            case '97' :// 'TIMEOUT' => 'The Member State service could not be reached in time, try again later or with another Member State',
425
              $entry_vat_error_text = TEXT_VAT_TIMEOUT;
426
              break;
427
            case '98' :// 'SERVER_BUSY' => 'The service cannot process your request. Try again later.'
428
              $entry_vat_error_text = TEXT_VAT_SERVER_BUSY;
429
              break;
430
            case '99' :// 'no PHP5 SOAP support'
431
              $entry_vat_error_text = TEXT_VAT_NO_PHP5_SOAP_SUPPORT;
432
              break;
433
            default:
434
              $entry_vat_error_text = '';
435
              break;
436
          }
437
          if (isset($vatID->vat_info['error']) && $vatID->vat_info['error']==1){
438
            $entry_vat_error = true;
439
            $error = true;
440
          }
441
        }
442
443
        if (strlen($customers_email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {
444
          $error = true;
445
          $entry_email_address_error = true;
446
        } else {
447
          $entry_email_address_error = false;
448
        }
449
450
        if (!xtc_validate_email($customers_email_address)) {
451
          $error = true;
452
          $entry_email_address_check_error = true;
453
        } else {
454
          $entry_email_address_check_error = false;
455
        }
456
457
        if (strlen($entry_street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
458
          $error = true;
459
          $entry_street_address_error = true;
460
        } else {
461
          $entry_street_address_error = false;
462
        }
463
464
        if (strlen($entry_postcode) < ENTRY_POSTCODE_MIN_LENGTH) {
465
          $error = true;
466
          $entry_post_code_error = true;
467
        } else {
468
          $entry_post_code_error = false;
469
        }
470
471
        if (strlen($entry_city) < ENTRY_CITY_MIN_LENGTH) {
472
          $error = true;
473
          $entry_city_error = true;
474
        } else {
475
          $entry_city_error = false;
476
        }
477
478
        if ($entry_country_id == false) {
479
          $error = true;
480
          $entry_country_error = true;
481
        } else {
482
          $entry_country_error = false;
483
        }
484
485
        if (ACCOUNT_STATE == 'true') {
486
          if ($entry_country_error == true) {
487
            $entry_state_error = true;
488
          } else {
489
            $entry_zone_id = 0;
490
            $entry_state_error = false;
491
            $check_query = xtc_db_query("SELECT count(*) as total
492
                                           FROM ".TABLE_ZONES."
493
                                          WHERE zone_country_id = '".xtc_db_input($entry_country_id)."'");
494
            $check_value = xtc_db_fetch_array($check_query);
495
            $entry_state_has_zones = ($check_value['total'] > 0);
496
            if ($entry_state_has_zones == true) {
497
              $zone_query = xtc_db_query("SELECT zone_id
498
                                            FROM ".TABLE_ZONES."
499
                                           WHERE zone_country_id = '".xtc_db_input($entry_country_id)."'
500
                                             AND zone_name = '".xtc_db_input($entry_state)."'");
501
              if (xtc_db_num_rows($zone_query) == 1) {
502
                $zone_values = xtc_db_fetch_array($zone_query);
503
                $entry_zone_id = $zone_values['zone_id'];
504
              } else {
505
                $zone_query = xtc_db_query("SELECT zone_id
506
                                              FROM ".TABLE_ZONES."
507
                                             WHERE zone_country_id = '".xtc_db_input($entry_country_id)."'
508
                                               AND zone_code = '".xtc_db_input($entry_state)."'");
509
                if (xtc_db_num_rows($zone_query) >= 1) {
510
                  $zone_values = xtc_db_fetch_array($zone_query);
511
                  $entry_zone_id = $zone_values['zone_id'];
512
                } else {
513
                  $error = true;
514
                  $entry_state_error = true;
515
                }
516
              }
517
            } else {
518
              if ($entry_state == false) {
519
                $error = true;
520
                $entry_state_error = true;
521
              }
522
            }
523
          }
524
        }
525
526
        if (ACCOUNT_TELEPHONE_OPTIONAL == 'false' && strlen($customers_telephone) < ENTRY_TELEPHONE_MIN_LENGTH) {
527
          $error = true;
528
          $entry_telephone_error = true;
529
        } else {
530
          $entry_telephone_error = false;
531
        }
532
533
        if (strlen($password) > 0 && strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) {
534
          $error = true;
535
          $entry_password_error = true;
536
        } else {
537
          $entry_password_error = false;
538
        }
539
540
        $check_email = xtc_db_query("SELECT customers_email_address
541
                                      FROM ".TABLE_CUSTOMERS."
542
                                     WHERE customers_email_address = '".xtc_db_input($customers_email_address)."'
543
                                       AND account_type = '0'
544
                                       AND customers_id != '".$customers_id."'");
545
        if (xtc_db_num_rows($check_email)) {
546
          $error = true;
547
          $entry_email_address_exists = true;
548
        } else {
549
          $entry_email_address_exists = false;
550
        }
551
552
        if ($error == false) {
553
          $sql_data_array = array (
554
              'customers_firstname' => $customers_firstname,
555
              'customers_cid' => $customers_cid,
556
              'customers_vat_id' => $customers_vat_id,
557
              'customers_vat_id_status' => $customers_vat_id_status,
558
              'customers_lastname' => $customers_lastname,
559
              'customers_email_address' => $customers_email_address,
560
              'customers_telephone' => $customers_telephone,
561
              'customers_fax' => $customers_fax,
562
              'payment_unallowed' => $payment_unallowed,
563
              'shipping_unallowed' => $shipping_unallowed,
564
              'customers_last_modified' => 'now()'
565
            );
566
567
          if ($password != '') {
568
            $sql_data_array['customers_password'] = xtc_encrypt_password($password);
569
            $sql_data_array['customers_password_time'] = time();
570
            if ($_SESSION['customer_id'] == $customers_id) {
571
              $_SESSION['customer_time'] = $sql_data_array['customers_password_time'];
572
            }
573
          }
574
          if (ACCOUNT_GENDER == 'true') {
575
            $sql_data_array['customers_gender'] = $customers_gender;
576
          }
577
          if (ACCOUNT_DOB == 'true') {
578
            $sql_data_array['customers_dob'] = xtc_date_raw($customers_dob);
579
          }
580
581
          xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array, 'update', "customers_id = '".$customers_id."' AND customers_default_address_id = '".$address_book_id."'");
582
583
          xtc_db_query("UPDATE ".TABLE_CUSTOMERS_INFO."
584
                           SET customers_info_date_account_last_modified = now()
585
                         WHERE customers_info_id = '".$customers_id."'");
586
587
          $sql_data_array = array (
588
              'entry_firstname' => $customers_firstname,
589
              'entry_lastname' => $customers_lastname,
590
              'entry_street_address' => $entry_street_address,
591
              'entry_postcode' => $entry_postcode,
592
              'entry_city' => $entry_city,
593
              'entry_country_id' => $entry_country_id,
594
              'address_last_modified' => 'now()'
595
            );
596
597
          if (ACCOUNT_GENDER == 'true') {
598
            $sql_data_array['entry_gender'] = $customers_gender;
599
          }
600
          if (ACCOUNT_COMPANY == 'true') {
601
            $sql_data_array['entry_company'] = $entry_company;
602
          }
603
          if (ACCOUNT_SUBURB == 'true') {
604
            $sql_data_array['entry_suburb'] = $entry_suburb;
605
          }
606
          if (ACCOUNT_STATE == 'true') {
607
            if ($entry_zone_id > 0) {
608
              $entry_state = '';
609
            }
610
            $sql_data_array['entry_zone_id'] = (int)$entry_zone_id;
611
            $sql_data_array['entry_state'] = $entry_state;
612
          }
613
          if ($address_book_id == 0) {
614
            $sql_data_array['address_date_added'] = 'now()';
615
            $sql_data_array['customers_id'] = $customers_id;
616
            xtc_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array, 'insert');
617
          } else {
618
            xtc_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array, 'update', "customers_id = '".$customers_id."' AND address_book_id = '".xtc_db_input($address_book_id)."'");
619
          }
620
          xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, xtc_get_all_get_params(array ('cID', 'action')).'cID='.$customers_id));
621
622
        }  elseif ($error == true) {
623
624
          // unset memo to avoid duplicate entry
625
          if ($entry_memo_title_error === false && $entry_memo_text_error === false) {
626
            unset($_POST['memo_title']);
627
            unset($_POST['memo_text']);
628
          }
629
630
          // unallowd payment/shipping must be comma separated
631
          $_POST['payment_unallowed'] = $payment_unallowed;
632
          $_POST['shipping_unallowed'] = $shipping_unallowed;
633
634
          $cInfo = new objectInfo($_POST);
635
          $processed = true;
636
        }
637
        break;
638
639
      case 'deleteconfirm' :
640
        if (!isset($_POST['multi_customers_confirm']) && (int)$customers_id > 0) {
641
          $_POST['multi_customers_confirm'] = array($customers_id);
642
        }
643
644
        if (isset($_POST['multi_customers_confirm']) && is_array($_POST['multi_customers_confirm'])) {
645
          foreach ($_POST['multi_customers_confirm'] as $customers_id) {
646
            if (isset($_POST['delete_reviews']) && $_POST['delete_reviews'] == 'on') {
647
              $reviews_query = xtc_db_query("SELECT reviews_id FROM ".TABLE_REVIEWS." WHERE customers_id = '".$customers_id."'");
648
              while ($reviews = xtc_db_fetch_array($reviews_query)) {
649
                xtc_db_query("DELETE FROM ".TABLE_REVIEWS_DESCRIPTION." WHERE reviews_id = '".$reviews['reviews_id']."'");
650
              }
651
              xtc_db_query("DELETE FROM ".TABLE_REVIEWS." WHERE customers_id = '".$customers_id."'");
652
            } else {
653
              xtc_db_query("UPDATE ".TABLE_REVIEWS." SET customers_id = null WHERE customers_id = '".$customers_id."'");
654
            }
655
            xtc_db_query("DELETE FROM ".TABLE_ADDRESS_BOOK." WHERE customers_id = '".$customers_id."'");
656
            xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS." WHERE customers_id = '".$customers_id."'");
657
            xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id = '".$customers_id."'");
658
            xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_BASKET." WHERE customers_id = '".$customers_id."'");
659
            xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_BASKET_ATTRIBUTES." WHERE customers_id = '".$customers_id."'");
660
            xtc_db_query("DELETE FROM ".TABLE_PRODUCTS_NOTIFICATIONS." WHERE customers_id = '".$customers_id."'");
661
            xtc_db_query("DELETE FROM ".TABLE_WHOS_ONLINE." WHERE customer_id = '".$customers_id."'");
662
            xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_STATUS_HISTORY." WHERE customers_id = '".$customers_id."'");
663
            xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_IP." WHERE customers_id = '".$customers_id."'");
664
            xtc_db_query("DELETE FROM ".TABLE_ADMIN_ACCESS." WHERE customers_id = '".$customers_id."'");
665
            xtc_db_query("DELETE FROM ".TABLE_NEWSLETTER_RECIPIENTS." WHERE customers_id = '".$customers_id."'");
666
            xtc_db_query("DELETE FROM ".TABLE_COUPON_GV_CUSTOMER." WHERE customer_id = '".$customers_id."'");
667
          }
668
        }
669
        xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, xtc_get_all_get_params(array ('cID', 'action'))));
670
        break;
671
    }
672
  }
673
674
  require (DIR_WS_INCLUDES.'head.php');
675
  ?>
676
  <script type="text/javascript" src="includes/general.js"></script>
677
  <script type="text/javascript" src="includes/javascript/categories.js"></script>
678
</head>
679
<body>
680
  <!-- header //-->
681
  <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
682
  <!-- header_eof //-->
683
  <!-- body //-->
684
  <table class="tableBody">
685
    <tr>
686
      <?php //left_navigation
687
      if (USE_ADMIN_TOP_MENU == 'false') {
688
        echo '<td class="columnLeft2">'.PHP_EOL;
689
        echo '<!-- left_navigation //-->'.PHP_EOL;
690
        require_once(DIR_WS_INCLUDES . 'column_left.php');
691
        echo '<!-- left_navigation eof //-->'.PHP_EOL;
692
        echo '</td>'.PHP_EOL;
693
      }
694
      ?>
695
      <!-- body_text //-->
696
      <td class="boxCenter">
697
      <?php
698
      if ($action == 'edit' || $action == 'update') {
699
        include (DIR_WS_MODULES.'customers_edit.php');
700
      } else {
701
        include (DIR_WS_MODULES.'customers_listing.php');
702
      }
703
      ?>
704
      </td>
705
      <!-- body_text_eof //-->
706
    </tr>
707
  </table>
708
  <!-- body_eof //-->
709
  <!-- footer //-->
710
  <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
711
  <!-- footer_eof //-->
712
  <br />
713
</body>
714
</html>
715
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>