Projekt

Allgemein

Profil

Statistiken
| Revision:

testmodus / admin / customers.php @ 1

Historie | Anzeigen | Annotieren | Download (36 KB)

1
<?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'); ?>