ElixirVault/www/system-brs-core/sys/sysEmpty/inc/sysEmptyModule.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');
}
}