265 lines
7.5 KiB
PHP
265 lines
7.5 KiB
PHP
<?php
|
|
|
|
namespace BRSystems\Core\Sys\sysEmpty\inc;
|
|
|
|
use BRSystems\Core\Library\cDb\cDb;
|
|
use BRSystems\Core\Library\cDbLog\cDbLog;
|
|
|
|
/**
|
|
* Empty Module
|
|
*
|
|
* @category sysEmpty Module
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @since Version 2.0
|
|
*/
|
|
class sysEmptyModule
|
|
{
|
|
public $db;
|
|
|
|
/**
|
|
* Class constructor
|
|
*/
|
|
public function __construct() {
|
|
|
|
$this->db = cDb::getInstance();
|
|
|
|
}
|
|
|
|
/**
|
|
* Function to get base counter data
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @return bool|array found data
|
|
* @version 1.1
|
|
*/
|
|
public function getCountForBaseCategories(){
|
|
|
|
$sSql = "
|
|
SELECT
|
|
(
|
|
SELECT COUNT(id)
|
|
FROM mod_account_manager
|
|
WHERE a_blocked IN ('0','1')) as accounts,
|
|
(
|
|
SELECT COUNT(id)
|
|
FROM mod_users uu
|
|
WHERE uu.user_deleted <> '1') as users,
|
|
(
|
|
SELECT COUNT(id)
|
|
FROM mod_messages mm) as msg,
|
|
(
|
|
SELECT COUNT(id)
|
|
FROM mod_users_subscription_mails mm) as subscriptions
|
|
";
|
|
|
|
$this->db->query($sSql);
|
|
return $this->db->getRow();
|
|
}
|
|
|
|
|
|
/**
|
|
* Function to get orders count by date
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @param array $vDate - start and end date
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function getOrdersAmountByDate($vDate){
|
|
|
|
$vReturn = array();
|
|
if(!empty($vDate) && is_array($vDate)){
|
|
|
|
$sSql = "
|
|
SELECT
|
|
FROM_UNIXTIME(oo.o_date, '%c') as m,
|
|
FROM_UNIXTIME(oo.o_date, '%e') as d,
|
|
count(oo.id) as c
|
|
FROM
|
|
mod_orders oo
|
|
WHERE
|
|
oo.o_date BETWEEN {$vDate['s']} AND {$vDate['e']}
|
|
GROUP BY m, d
|
|
";
|
|
|
|
$this->db->query($sSql);
|
|
$vReturn = $this->db->getFieldBasedArrayFieldsAdv(array('m', 'd'), 'c');
|
|
}
|
|
|
|
return $vReturn;
|
|
}
|
|
/**
|
|
* Function to get orders count by date
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @param array $vDate - start and end date
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function getOrdersAmountForYearByDate($vDate){
|
|
if(!empty($vDate) && is_array($vDate)){
|
|
$sSql = "
|
|
SELECT
|
|
FROM_UNIXTIME(o_date, '%c') as m,
|
|
FROM_UNIXTIME(o_date, '%Y') as y,
|
|
count(id) as c
|
|
FROM
|
|
mod_orders
|
|
WHERE
|
|
o_date BETWEEN {$vDate['s']} AND {$vDate['e']}
|
|
GROUP BY
|
|
y, m
|
|
";
|
|
$this->db->query($sSql);
|
|
return $this->db->getFieldBasedArrayFieldsAdv(array('y', 'm'), 'c');
|
|
}
|
|
return array();
|
|
}
|
|
/**
|
|
* Function to get orders count by date
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @param array $vDate - start and end date
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function getProductAmountForMonth($vDate){
|
|
|
|
$vReturn = array();
|
|
if(!empty($vDate) && is_array($vDate)){
|
|
|
|
$sSql = "
|
|
SELECT
|
|
FROM_UNIXTIME(cc.date, '%c') as m,
|
|
FROM_UNIXTIME(cc.date, '%e') as d,
|
|
SUM(cc.count) * -1 as c,
|
|
cc.op_type
|
|
FROM
|
|
mod_products_to_count cc
|
|
WHERE
|
|
cc.op_type IN (". cmsOrdersController::PRODUCT_OPERATION_ORDER_SEND .", ". cmsOrdersController::PRODUCT_OPERATION_BUYS_MODULE .")
|
|
AND cc.date BETWEEN {$vDate['s']} AND {$vDate['e']}
|
|
GROUP BY
|
|
cc.op_type, m, d
|
|
";
|
|
|
|
$this->db->query($sSql);
|
|
$vReturn = $this->db->getFieldBasedArrayFieldsAdv(array('m', 'd', 'op_type'), 'c');
|
|
}
|
|
|
|
return $vReturn;
|
|
}
|
|
/**
|
|
* Function to get orders count by date
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @param array $vDate - start and end date
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function getProductAmountForYear($vDate){
|
|
if(!empty($vDate) && is_array($vDate)){
|
|
$sSql = "
|
|
SELECT
|
|
FROM_UNIXTIME(cc.date, '%c') as m,
|
|
FROM_UNIXTIME(cc.date, '%Y') as y,
|
|
SUM(cc.count) * -1 as c,
|
|
cc.op_type
|
|
FROM
|
|
mod_products_to_count cc
|
|
WHERE
|
|
cc.op_type IN (". cmsOrdersController::PRODUCT_OPERATION_ORDER_SEND .", ". cmsOrdersController::PRODUCT_OPERATION_BUYS_MODULE .")
|
|
AND cc.date BETWEEN {$vDate['s']} AND {$vDate['e']}
|
|
GROUP BY
|
|
cc.op_type, y, m
|
|
";
|
|
|
|
$this->db->query($sSql);
|
|
return $this->db->getFieldBasedArrayFieldsAdv(array('y', 'm', 'op_type'), 'c');
|
|
}
|
|
return array();
|
|
}
|
|
|
|
|
|
/**
|
|
* Function to get orders by date
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @param array $vDate - start and end date
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function getOrdersByDate($vDate){
|
|
if(!empty($vDate) && is_array($vDate)){
|
|
$sSql = "
|
|
SELECT
|
|
o_nr,
|
|
o_mail,
|
|
o_date
|
|
FROM
|
|
mod_orders
|
|
WHERE
|
|
o_date BETWEEN {$vDate['s']} AND {$vDate['e']}
|
|
ORDER BY o_date DESC
|
|
";
|
|
$this->db->query($sSql);
|
|
return $this->db->getArray();
|
|
}
|
|
return array();
|
|
}
|
|
|
|
/**
|
|
* Function to get actions by date
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @param array $vDate - start and end date
|
|
* @param array $vIds - user ids which we can see in action log
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function getActionsByDate($vDate, $vIds = array()){
|
|
|
|
if(!empty($vDate) && is_array($vDate)){
|
|
|
|
$sSql = "
|
|
SELECT *
|
|
FROM `" . cDbLog::C_BASE_ACTION_TABLE . "`
|
|
WHERE time BETWEEN {$vDate['s']} AND {$vDate['e']} ". (!empty($vIds) && is_array($vIds) ? " AND user_id IN (". implode(",", $vIds) .")" : "") ."
|
|
ORDER BY time DESC
|
|
";
|
|
|
|
$this->db->query($sSql);
|
|
return $this->db->getArray();
|
|
}
|
|
return array();
|
|
}
|
|
|
|
/**
|
|
* Function to get actions by date
|
|
*
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @category sysEmpty Module
|
|
* @param array $vExclude - ids to exclude
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function getSiteUsersIds($vExclude = array()){
|
|
|
|
$sSql = "
|
|
SELECT id
|
|
FROM site_users"
|
|
. ( $vExclude ? " WHERE id NOT IN (". implode(",", $vExclude) .")" : "" );
|
|
|
|
$this->db->query($sSql);
|
|
return $this->db->getKeyValBasedArray('id', 'id');
|
|
|
|
}
|
|
}
|