shop-old/core/stats.class.php
2026-04-20 01:03:43 +02:00

160 lines
3.6 KiB
PHP

<?php
class Stats {
public static function get_stats() {
$db = Registry::get('base')->db;
// get new customers
$sql = "SELECT count(id) AS count_customers
FROM customers
WHERE DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= registration_date";
$result = $db->query($sql);
$obj = $result->fetch_object();
$new_customers = $obj->count_customers;
// get new orders
$sql = "SELECT count(id) AS count_orders
FROM orders
WHERE order_status=1";
$result = $db->query($sql);
$obj = $result->fetch_object();
$new_orders = $obj->count_orders;
// get new emails
$sql = "SELECT count(id) AS count_emails
FROM tickets
WHERE state_id=1";
$result = $db->query($sql);
$obj = $result->fetch_object();
$new_emails = $obj->count_emails;
return array(
'new_customer' => $new_customers,
'new_order' => $new_orders,
'new_email' => $new_emails
);
}
public static function orders($search) {
$db = Registry::get('base')->db;
$search = $this->db->real_escape_string($search);
$sql = "SELECT *
FROM orders
WHERE CONCAT_WS('-', order_number, order_revision, customer_name, paypal_transaction_id, paypal_email, paypal_payerid, invoice_number)
LIKE '%$search%'
AND order_status != 9
AND order_status != 10
AND order_addendum != 'N'
LIMIT 20";
$result = $db->query($sql);
$hits = $result->num_rows;
if ($hits > 0) {
while ($obj = $result->fetch_object()) {
$return[] = $obj;
}
return array('hits' => $hits, 'results' => $return);
}
return false;
}
public static function items($search, $active=0) {
$db = Registry::get('base')->db;
$search = $this->db->real_escape_string($search);
$sql = "SELECT *
FROM items
WHERE";
if ($active) {
$sql .= " active=1 AND ";
}
$sql .= " CONCAT(number, name, short_description, vendor_item_number, ean_code, seo_keywords)
LIKE '%$search%'
LIMIT 20";
$result = $db->query($sql);
$hits = $result->num_rows;
if ($hits > 0) {
while ($obj = $result->fetch_object()) {
$return[] = $obj;
}
return array('hits' => $hits, 'results' => $return);
}
return false;
}
public static function category_items($search, $category_id, $active=0) {
$db = Registry::get('base')->db;
$search = $this->db->real_escape_string($search);
$sql = "SELECT *
FROM items
WHERE";
if ($active) {
$sql .= " active=1 AND ";
}
$category_id = $this->db->real_escape_string($category_id);
$sql .= " CONCAT(number, name, short_description, vendor_item_number, ean_code)
LIKE '%$search%' AND
(
structure_id = $category_id OR
structure_id_2 = $category_id OR
structure_id_3 = $category_id OR
structure_id_4 = $category_id OR
structure_id_5 = $category_id OR
structure_id_6 = $category_id OR
structure_id_7 = $category_id OR
structure_id_8 = $category_id OR
structure_id_9 = $category_id
)
LIMIT 20";
$base_object = Registry::get('base');
$result = $db->query($sql);
$hits = $result->num_rows;
if ($hits > 0) {
while ($obj = $result->fetch_object()) {
$return[] = $obj;
}
return array('hits' => $hits, 'results' => $return);
}
return false;
}
public static function manufacturers($search) {
$db = Registry::get('base')->db;
$search = $this->db->real_escape_string($search);
$sql = "SELECT *
FROM manufacturers
WHERE CONCAT(name, address, city)
LIKE '%$search%'
LIMIT 20";
$result = $db->query($sql);
$hits = $result->num_rows;
if ($hits > 0) {
while ($obj = $result->fetch_object()) {
$return[] = $obj;
}
return array('hits' => $hits, 'results' => $return);
}
return false;
}
}