* @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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'); } }