コード例 #1
0
ファイル: func.php プロジェクト: ambient-lounge/site
function fn_reward_points_rma_recalculate_order(&$item, &$mirror_item, &$type, &$ex_data, &$amount)
{
    if (!isset($item['extra']['exclude_from_calculate'])) {
        if (isset($mirror_item['extra']['points_info']['reward'])) {
            $item['extra']['points_info']['reward'] = floor((isset($item['primordial_amount']) ? $item['primordial_amount'] : $item['amount']) * ($mirror_item['extra']['points_info']['reward'] / $mirror_item['amount']));
        }
        if (isset($mirror_item['extra']['points_info']['price'])) {
            $item['extra']['points_info']['price'] = floor((isset($item['primordial_amount']) ? $item['primordial_amount'] : $item['amount']) * ($mirror_item['extra']['points_info']['price'] / $mirror_item['amount']));
        }
        if (in_array($type, array('O-', 'M-O+'))) {
            if (isset($item['extra']['points_info']['reward'])) {
                $points = ($type == 'O-' ? 1 : -1) * floor($amount * (!empty($item['amount']) ? $item['extra']['points_info']['reward'] / $item['amount'] : $mirror_item['extra']['points_info']['reward'] / $mirror_item['amount']));
                $additional_data = db_get_hash_single_array("SELECT type,data FROM ?:order_data WHERE order_id = ?i", array('type', 'data'), $ex_data['order_id']);
                if (!empty($additional_data[POINTS])) {
                    db_query('UPDATE ?:order_data SET ?u WHERE order_id = ?i AND type = ?s', array('data' => $additional_data[POINTS] + $points), $ex_data['order_id'], POINTS);
                }
                if (!empty($additional_data[ORDER_DATA_POINTS_GAIN]) && $additional_data[ORDER_DATA_POINTS_GAIN] == 'Y') {
                    $user_id = db_get_field("SELECT user_id FROM ?:orders WHERE order_id = ?i", $ex_data['order_id']);
                    $reason = array('return_id' => $ex_data['return_id'], 'to' => $ex_data['status_to'], 'from' => $ex_data['status_from']);
                    fn_change_user_points($points, $user_id, serialize($reason), CHANGE_DUE_RMA);
                }
            }
        }
    }
}
コード例 #2
0
ファイル: reward_points.php プロジェクト: heg-arc-ne/cscart
* PLEASE READ THE FULL TEXT  OF THE SOFTWARE  LICENSE   AGREEMENT  IN  THE *
* "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE.            *
****************************************************************************/
use Tygh\Mailer;
use Tygh\Registry;
if (!defined('BOOTSTRAP')) {
    die('Access denied');
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //
    //Change points
    //
    if ($mode == 'change_points') {
        $amount = intval($_REQUEST['reason']['amount']);
        if (!empty($amount)) {
            fn_change_user_points($_REQUEST['reason']['action'] == 'A' ? abs($amount) : -abs($amount), $_REQUEST['user_id'], $_REQUEST['reason']['reason'], $_REQUEST['reason']['action']);
            $force_notification = fn_get_notification_rules($_REQUEST);
            if (!empty($force_notification['C'])) {
                $user_data = db_get_row("SELECT firstname, email, lang_code FROM ?:users WHERE user_id = ?i", $_REQUEST['user_id']);
                Mailer::sendMail(array('to' => $user_data['email'], 'from' => 'default_company_users_department', 'data' => array('user_data' => $user_data, 'reason' => $_REQUEST['reason']), 'tpl' => 'addons/reward_points/notification.tpl', 'company_id' => empty($user_data['company_id']) ? 0 : $user_data['company_id']), 'C', $user_data['lang_code']);
            }
        }
    }
    if ($mode == 'm_delete') {
        foreach ($_REQUEST['change_ids'] as $change_id) {
            db_query("DELETE FROM ?:reward_point_changes WHERE change_id = ?i", $change_id);
        }
    }
    if ($mode == 'cleanup_logs') {
        db_query("DELETE FROM ?:reward_point_changes WHERE user_id = ?i", $_REQUEST['user_id']);
    }