0, // Maximum points to get 'earning_max_points' => 0, // Count of all entries 'earning_count' => 0, // -- The following arry elements are "read-only": -- // Exclude current userid 'earning_exclude_userid' => getMemberId(), // "earning group" 'earning_group' => 'INVALID', // "earning name" again 'earning_provider' => $earningProvider ); // Run the filter chain to get the data $filterData = runFilterChain('member_earning_table_data', $filterData); // Load the proper template and return it $output = loadTemplate('member_earning_data_' . strtolower($filterData['earning_group']), TRUE, $filterData); // Return it return $output; } // Handle earning id function doMemberEarning ($earningId, $dailyAmount, $isActive = 'Y') { // Does the user have this? if (countSumTotalData(bigintval($earningId), 'user_earning', 'id', 'earning_id', TRUE, ' AND `earning_userid`=' . getMemberId()) == 1) { // Then update it $status = updateMemberEarning($earningId, $dailyAmount, $isActive); } else { // Not found, so add it $status = insertMemberEarning($earningId, $dailyAmount, $isActive); } // Return status return $status; } // Insert member earning entry function insertMemberEarning ($earningId, $dailyAmount, $isActive = 'Y') { // Insert the record sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_user_earning` (`earning_id`, `earning_userid`, `earning_daily_amount`, `earning_active`) VALUES(%s,%s,%s,'%s')", array( bigintval($earningId), getMemberId(), bigintval($dailyAmount), $isActive ), __FUNCTION__, __LINE__); // Prepare content $content = array( 'insert_id' => getSqlInsertId(), 'earning_id' => bigintval($earningId), 'daily_amount' => bigintval($dailyAmount), 'is_active' => $isActive ); // Load email template $message = loadEmailTemplate('member_earning_added', $content, getMemberId()); // Send email out sendEmail(getMemberId(), '{--MEMBER_EARNING_ADDED_SUBJECT--}', $message); // Send admin notification sendAdminNotification('{--ADMIN_EARNING_INSERTED_SUBJECT--}', 'admin_earning_added', $content, getMemberId()); // Return status return isValidId($content['insert_id']); } // Update a given earning amount function updateMemberEarning ($earningId, $dailyAmount, $isActive = 'Y') { // By default the user does subscribe to an earning $moreSql = ''; // Does the user cancel the earning? if ($isActive == 'N') { // Then update cancellation timestamp as well $moreSql = ',`earning_canceled`=NOW()'; } // END - if // Update database record sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_earning` SET `earning_daily_amount`=%s, `earning_active`='%s' " . $moreSql . " WHERE `earning_id`=%s AND `earning_userid`=%s LIMIT 1", array( bigintval($dailyAmount), $isActive, bigintval($earningId), getMemberId() ), __FUNCTION__, __LINE__); // Determine whether something has changed $status = (!ifSqlHasZeroAffectedRows()); // Has the record changed? if ($status === TRUE) { // Prepare content $content = array( 'earning_id' => bigintval($earningId), 'daily_amount' => bigintval($dailyAmount), 'is_active' => $isActive ); // Then load email template for user $message = loadEmailTemplate('member_earning_updated', $content, getMemberId()); // Send email out sendEmail(getMemberId(), '{--MEMBER_EARNING_UPDATED_SUBJECT--}', $message); // Send admin notification sendAdminNotification('{--ADMIN_EARNING_UPDATED_SUBJECT--}', 'admin_earning_updated', $content, getMemberId()); } // END - if // Return status return $status; } // [EOF] ?>