db; $sql = "SELECT email FROM customers WHERE id=".$db->real_escape_string($customer_id); $result = $db->query($sql); if ($result->num_rows > 0) { return $result->fetch_object()->email; } return false; } public static function getCustomerBankingAccount($customer_id) { $db = Registry::get('base')->db; $sql = "SELECT bank, bank_number, account_holder, account_number, iban, swift_bic FROM customers WHERE id=".$db->real_escape_string($customer_id); $result = $db->query($sql); if ($result->num_rows > 0) { return $result->fetch_object(); } return false; } public static function get_default_address_country($customer_id) { $db = Registry::get('base')->db; $sql = "SELECT ca.country FROM customer_addresses ca JOIN customers c ON ca.id=c.default_address WHERE c.id=".$db->real_escape_string($customer_id); $result = $db->query($sql); if ($result->num_rows > 0) { $obj = $result->fetch_object(); return $obj->country; } $sql = "SELECT country FROM customer_addresses WHERE customer_id=".$db->real_escape_string($customer_id); $result = $db->query($sql); if ($result->num_rows > 0) { $obj = $result->fetch_object(); return $obj->country; } return false; } public static function create_customer_address($data) { $db = Registry::get('base')->db; $data_line = ""; $value_line = ""; $size = count($data); $i = 1; foreach ($data as $key => $value) { if (is_numeric($value)) { $data_line .= $key; $value_line .= $value; } else { $data_line .= $key; $value_line .= "'".$value."'"; } if ($i < $size) { $data_line .= ", "; $value_line .= ", "; $i++; } } $sql = "INSERT INTO customer_addresses(".$data_line.") "; $sql .= "VALUES (".$value_line.");"; if ($db->query($sql)) { return $db->insert_id; } return false; } public static function update_customer_address($data, $id) { $db = Registry::get('base')->db; $set_line = ""; $size = count($data); $i = 1; foreach ($data as $key => $value) { $set_line .= $key; $set_line .= "="; if (is_numeric($value)) { $set_line .= $value; } else { $set_line .= "'".$value."'"; } if ($i < $size) { $set_line .= ", "; $i++; } } $sql = "UPDATE customer_addresses "; $sql .= "SET ".$set_line." WHERE id=".$db->real_escape_string($id); if ($db->query($sql)) { return $id; } return false; } public static function get_customer_country($customer_id) { $db = Registry::get('base')->db; $sql = "SELECT ca.country FROM customer_addresses ca JOIN customers c ON ca.id = c.default_address WHERE c.id=".$db->real_escape_string($customer_id); $result = $db->query($sql); if ($result->num_rows > 0) { return $result->fetch_object()->country; } return false; } public static function get_customer_address($address_id) { $db = Registry::get('base')->db; $sql = "SELECT * FROM customer_addresses WHERE id=".$db->real_escape_string($address_id); $result = $db->query($sql); if ($result->num_rows > 0) { return $result->fetch_object(); } else return false; } public static function get_revisor_data($id) { $db = Registry::get('base')->db; $sql = "SELECT * FROM customers WHERE id = ".$db->real_escape_string($id); $result = $db->query($sql); if ($result->num_rows > 0) { $customer = $result->fetch_object(); $return = $customer->firstname.' '.$customer->surname; if ($customer->admin_role_id == 0) { $return = ' (Kunde)'; } return $return; } return false; } // end get_revisor_data public function email_exists($email) { $db = Registry::get('base')->db; $sql = "SELECT * FROM customers WHERE email='".$db->real_escape_string($email)."'"; $result = $db->query($sql); if ($result->num_rows > 0) { return true; } return false; } // end email_exists public function email_has_changed($email, $customer_id) { $db = Registry::get('base')->db; $sql = "SELECT email FROM customers where id = ".$db->real_escape_string($customer_id); $result = $db->query($sql); // not safe but if there are no results this function returns crap anyway $old_email = $result->fetch_object()->email; if ($old_email == $email) { return false; } return true; } public static function delete_customer($id) { $db = Registry::get('base')->db; $sql = "DELETE FROM customers WHERE id=".$db->real_escape_string($id); return $db->query($sql); } // end delete_customer public static function delete_customers($ids) { $db = Registry::get('base')->db; $sql = "DELETE FROM customers WHERE id IN (".$db->real_escape_string($ids).")"; return $db->query($sql); } // end delete_customers public static function verify_customer_data($data, $address, $restrictive = true) { $verification = 'success'; /*if ($data['group_id'] == '0') { $verification = 'error'; $return['group_id'] = "Kundengruppe ist ein Pflichtfeld"; } // firstname $cleaned = trim($data['firstname']); if (!isset($data['firstname']) || $cleaned == '') { $verification = 'error'; $return['firstname'] = "Vorname ist ein Pflichtfeld"; } // nachname $cleaned = trim($data['surname']); if (!isset($data['surname']) || $cleaned == '') { $verification = 'error'; $return['surname'] = "Nachname ist ein Pflichtfeld"; } // email if (!isset($data['id'])) { $cleaned = trim($data['email']); if (!isset($data['email']) || $cleaned == '') { //$verification = 'error'; //$return['email'] = "E-Mail ist ein Pflichtfeld"; } else { if (CustomerHelper::email_exists($data['email'])) { $verification = 'error'; $return['email'] = "E-Mail Adresse ist bereits vergeben"; } } } else { if (CustomerHelper::email_has_changed($data['email'], $data['id'])) { if (CustomerHelper::email_exists($data['email'])) { $verification = 'error'; $return['email'] = "E-Mail Adresse ist bereits vergeben"; } } } // password if (!isset($data['id'])) { $cleaned = trim($data['pass1']); if (!isset($data['pass1']) || $cleaned == '') { $verification = 'error'; $return['pass1'] = "Passwort ist ein Pflichtfeld"; } $cleaned = trim($data['pass2']); if (!isset($data['pass2']) || $cleaned == '') { $verification = 'error'; $return['pass2'] = "Passwort ist ein Pflichtfeld"; } } // birthdate /*if ($restrictive) { $cleaned = trim($data['burth_date']); if (!isset($data['burth_date']) || $cleaned == '') { $verification = 'error'; $return['burth_date'] = "Geburtsdatum ist ein Pflichtfeld"; } }*/ // address /*if (!isset($data['id'])) { $return['address'] = CustomerHelper::verify_customer_address($address); if ($return['address']['status'] == 'error') { $verification = 'error'; } }*/ if ($verification == 'success') { return array('status' => 'success'); } return array('status' => 'error', 'data' => $return); } // end verify_customer_data public static function verify_customer_address($address) { $verification = 'success'; // honorific $cleaned = trim($address['honorific']); if (!isset($address['honorific']) || $cleaned == '') { $verification = 'error'; $return['honorific'] = "Adress Anrede ist ein Pflichtfeld"; } // firstname $cleaned = trim($address['firstname']); if (!isset($address['firstname']) || $cleaned == '') { $verification = 'error'; $return['firstname'] = "Adress Vorname ist ein Pflichtfeld"; } // surname $cleaned = trim($address['surname']); if (!isset($address['surname']) || $cleaned == '') { $verification = 'error'; $return['surname'] = "Adress Nachname ist ein Pflichtfeld"; } // street $cleaned = trim($address['street']); if (!isset($address['street']) || $cleaned == '') { $verification = 'error'; $return['street'] = "Straß ist ein Pflichtfeld"; } // house_number $cleaned = trim($address['house_number']); if (!isset($address['house_number']) || $cleaned == '') { $verification = 'error'; $return['house_number'] = "Hausnummer ist ein Pflichtfeld"; } // zip_code $cleaned = trim($address['zip_code']); if (!isset($address['zip_code']) || $cleaned == '') { $verification = 'error'; $return['zip_code'] = "Postleitzahl ist ein Pflichtfeld"; } // city $cleaned = trim($address['city']); if (!isset($address['city']) || $cleaned == '') { $verification = 'error'; $return['city'] = "Ort ist ein Pflichtfeld"; } // country $cleaned = trim($address['country']); if (!isset($address['country']) || $cleaned == '') { $verification = 'error'; $return['country'] = "Land ist ein Pflichtfeld"; } if ($verification == 'success') { return array('status' => 'success'); } return array('status' => 'error', 'data' => $return); } public static function getAddressByIds($customerId, $addressId) { $db = Registry::get('base')->db; $query = " SELECT company, honorific, firstname, surname, street, house_number, zip_code, city, country FROM customer_addresses WHERE customer_id = '".$db->real_escape_string($customerId)."' AND id = '".$db->real_escape_string($addressId)."' "; return $db->query($query)->fetch_object(); } public static function getCustomerDataForOrder($customerId) { $db = Registry::get('base')->db; $query = "SELECT CONCAT_WS(' ', firstname, surname) AS customer_name, id AS customer_id, number AS customer_number, tax_id AS customer_vat_reg_num FROM customers WHERE id = '".$db->real_escape_string($customerId)."'"; return $db->query($query)->fetch_object(); } public static function get_customer_group_id_by_customer_id($customer_id = false) { $db = Registry::get('base')->db; if ($customer_id) { $sql = "SELECT group_id FROM customers WHERE id=".$db->real_escape_string($customer_id); return $db->query($sql)->fetch_object()->group_id; } return false; } } ?>