shop-old/modules/admin_customer_editor.php
2026-04-20 01:03:43 +02:00

203 lines
6.4 KiB
PHP

<?php
/**
* @version $Id: admin_customer_editor.php
* @package Easyshop
* @copyright Copyright (C) 2005 - 2011 TA-EDV
* @license proprietary
* @author Richard Kammermayer <rk@ta-edv.de>
* Easyshop is a web shop system
*/
include_once './core/country.class.php';
include_once './core/customer_group.class.php';
include_once './core/customer.class.php';
include_once './core/customeraddress.class.php';
include_once './core/order.class.php';
include_once './core/cs_ticket.class.php';
include_once './core/cs_ticket_message.class.php';
include_once './core/orderstatus.class.php';
include_once './core/admin_role.class.php';
include_once './modules/list_and_edit.class.php';
class admin_customer_editor {
private $base_object;
private $config;
private $layout_object;
private $customer_address_object;
function __construct($base_object, $layout_object) {
$this->base_object = $base_object;
$this->config = $base_object->config_object;
$this->layout_object = $layout_object;
$this->customer_address_object = new CustomerAddress($base_object);
}
function run() {
if (isset($_GET['action'])) {
$action = $_GET['action'];
} elseif (isset($_POST['action'])) {
$action = $_POST['action'];
} else {
$action = false;
}
if (isset($_GET['id'])) {
$id = $_GET['id'];
} else {
$id = false;
}
// get countries
$country_object = new Country($this->base_object);
$countries = $country_object->get_all();
$this->layout_object->assign('countries', $countries);
// get customer groups
$customer_group_object = new Customer_group($this->base_object);
$customer_groups = $customer_group_object->get_all_groups();
$this->layout_object->assign('customer_groups', $customer_groups);
// get all admin roles
$admin_role_object = new Admin_role($this->base_object);
$admin_roles = $admin_role_object->get_all();
$this->layout_object->assign('admin_roles', $admin_roles);
if ($action == 'save') {
return $this->save();
} else {
return $this->default_action($id);
}
} // end run
private function default_action($id) {
if ($id) {
$customer_object = new Customer($this->base_object);
$ticket_object = new Cs_ticket($this->base_object);
$ticket_message_object = new Cs_ticket_message($this->base_object);
$data = $customer_object->get_data($id);
if ($data) {
// get customer groups
$customer_group_object = new Customer_group($this->base_object);
$this->layout_object->assign('customer_group_data', $customer_group_object->get_data($data->group_id));
$orders = OrderHelper::get_all_customer_orders($id);
/*$all_tickets = $ticket_object->get_all_customer_tickets($id);
$tickets = array();
foreach($all_tickets as $ticket) {
// get first message
$ticket->first_message = $ticket_message_object->get_first_message($ticket->id);
$tickets[] = $ticket;
}*/
$customer_address_object = new CustomerAddress($this->base_object);
$customer_address_data = $customer_address_object->get_data_by_customer_id($id);
$this->layout_object->assign('customer_addresses', $customer_address_data);
$this->layout_object->assign('orders', $orders);
$this->layout_object->assign('tickets', $tickets);
$this->layout_object->assign('customer_data', $data);
} else {
$this->layout_object->assign('error_message', "Dieser Kunde existiert nicht.");
}
}
return $this->layout_object->fetch('admin_customer_editor.tpl');
} // end default_action
private function save() {
if (isset($_POST['customer_field'])) {
$data = $_POST['customer_field'];
if ($data['pass1'] != '') {
if ($data['pass1'] == $data['pass2']) {
$data['pass'] = $data['pass1'];
}
}
unset($data['pass1']);
unset($data['pass2']);
} else {
$data = false;
}
if (isset($_POST['customer_address_field'])) {
$address = $_POST['customer_address_field'];
} else {
$address = false;
}
if ($data) {
$unlocked_message = 0;
if ($address) {
$customer_object = new Customer($this->base_object);
$result = $customer_object->create($data);
// customer unlocked email message
if ($data['locked'] == -1) {
$data['locked'] == 0;
$unlocked_message = 1;
}
if ($result) {
$address['customer_id'] = $result;
if ($unlocked_message) {
// send message to customer
$ticket_object = new Cs_ticket($this->base_object);
$ticket_object->event(12, $result, false);
}
$res = $this->customer_address_object->create($address);
// customer new password with email message
if ($_POST['customer_password_action'] == 1) {
$customer_object->new_password($result);
}
header('location: http://' . $_SERVER["SERVER_NAME"] . '/index.php?admin_modul=admin_customer_editor&id=' . $result);
} else {
header('location: http://' . $_SERVER["SERVER_NAME"] . '/index.php?admin_modul=admin_customer_editor');
}
} else {
$customer_object = new Customer($this->base_object);
$customer_object->set_id($data['id']);
unset($data['id']);
// customer unlocked email message
if ($data['locked'] == -1) {
$data['locked'] == 0;
$unlocked_message = 1;
}
$result = $customer_object->update($data);
if ($unlocked_message) {
// send message to customer
$ticket_object = new Cs_ticket($this->base_object);
$ticket_object->event(12, $result, false);
}
// customer new password with email message
if ($_POST['customer_password_action'] == 1) {
$customer_object->new_password($result);
}
header('location: http://' . $_SERVER["SERVER_NAME"] . '/index.php?admin_modul=admin_customer_editor&id=' . $result);
}
} else {
header('location: http://' . $_SERVER["SERVER_NAME"] . '/index.php?admin_modul=admin_customer_editor');
}
} // end save
} // end admin_customer_editor