function fn_get_gift_certificate_log($params, $items_per_page = 0) { if (empty($params['gift_cert_id'])) { return array(array(), $params); } $default_params = array('page' => 1, 'items_per_page' => $items_per_page); $params = array_merge($default_params, $params); $sortings = array('log_id' => "?:gift_certificates_log.log_id", 'timestamp' => "?:gift_certificates_log.timestamp", 'amount' => "?:gift_certificates_log.amount", 'debit' => "?:gift_certificates_log.debit", 'username' => "?:users.user_login", 'name' => "?:users.lastname", 'email' => "?:users.email", 'order_id' => "?:gift_certificates_log.order_id"); $sorting = db_sort($params, $sortings, 'log_id', 'desc'); $q_fields = array("?:gift_certificates_log.*", "?:users.user_login", "?:users.email", "?:users.firstname", "?:users.lastname", "?:orders.email as order_email", "?:orders.firstname as order_firstname", "?:orders.lastname as order_lastname"); $limit = ''; if (!empty($params['items_per_page'])) { $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:gift_certificates_log WHERE gift_cert_id = ?i", $params['gift_cert_id']); $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']); } $log = db_get_array("SELECT " . implode(',', $q_fields) . " FROM ?:gift_certificates_log LEFT JOIN ?:users ON ?:users.user_id = ?:gift_certificates_log.user_id LEFT JOIN ?:orders ON ?:orders.order_id = ?:gift_certificates_log.order_id WHERE gift_cert_id = ?i {$sorting} {$limit}", $params['gift_cert_id']); foreach ($log as $k => $v) { $prepared_log = fn_prepare_gift_certificate_log('products, debit_products', $v); $log[$k] = fn_array_merge($v, $prepared_log); } return array($log, $params); }
function fn_get_gift_certificate_log($gift_cert_id, $params) { if (empty($gift_cert_id)) { return false; } $params['page'] = empty($params['page']) ? 1 : $params['page']; $sortings = array('timestamp' => "?:gift_certificates_log.timestamp", 'amount' => "?:gift_certificates_log.amount", 'debit' => "?:gift_certificates_log.debit", 'username' => "?:users.user_login", 'name' => "?:users.lastname", 'email' => "?:users.email", 'order_id' => "?:gift_certificates_log.order_id"); $directions = array('asc' => 'asc', 'desc' => 'desc'); $sort_order = !empty($params['sort_order']) ? $params['sort_order'] : ''; $sort_by = !empty($params['sort_by']) ? $params['sort_by'] : ''; if (empty($sort_order) || empty($directions[$sort_order])) { $sort_order = 'desc'; } if (empty($sort_by) || empty($sortings[$sort_by])) { $sort_by = 'timestamp'; } $sort = "ORDER BY " . $sortings[$sort_by] . " " . $directions[$sort_order]; $q_fields = array("?:gift_certificates_log.*", "?:users.user_login", "?:users.email", "?:users.firstname", "?:users.lastname", "?:orders.email as order_email", "?:orders.firstname as order_firstname", "?:orders.lastname as order_lastname"); $total_items = db_get_field("SELECT COUNT(*) FROM ?:gift_certificates_log WHERE gift_cert_id = ?i", $gift_cert_id); $items_per_page = Registry::get('settings.Appearance.' . (AREA == 'A') ? 'admin_elements_per_page' : 'elements_per_page'); $limit = fn_paginate($params['page'], $total_items, $items_per_page); $log = db_get_array("SELECT " . implode(',', $q_fields) . " FROM ?:gift_certificates_log LEFT JOIN ?:users ON ?:users.user_id = ?:gift_certificates_log.user_id LEFT JOIN ?:orders ON ?:orders.order_id = ?:gift_certificates_log.order_id WHERE gift_cert_id = ?i {$sort} {$limit}", $gift_cert_id); foreach ($log as $k => $v) { $prepared_log = fn_prepare_gift_certificate_log('products, debit_products', $v); $log[$k] = fn_array_merge($v, $prepared_log); } return array($log, $sort_order == 'asc' ? 'desc' : 'asc', $sort_by); }