0)) {
// Get task id from database
$result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `userid`=%s AND `task_type`='PAYOUT_REQUEST' AND task_created='".$tstamp."' LIMIT 1",
array(bigintval($userid)), __FILE__, __LINE__);
list($task) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
if (empty($task)) $task = '0';
} elseif ((empty($userid)) || ($userid == '0')) {
// Cannot obtain member id!
loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_FAILED_OBTAIN_USERID'));
} else {
// Get task id from URL
$task = getRequestElement('task');
}
if ((!empty($task)) && (!empty($userid)) && ($userid > 0)) {
// Load user's data
if (!fetchUserData($userid)) {
// Abort here because it is not valid!
debug_report_bug('No user account ' . $userid . ' found.');
} // END - if
if ((getRequestElement('do') == 'accept') && (!empty(getUserData('email')))) {
// Ok, now we can output the form or execute accepting
if (isFormSent()) {
// Obtain payout type and other data
$result = SQL_QUERY_ESC("SELECT `payout_id` FROM `{?_MYSQL_PREFIX?}_user_payouts` WHERE `id`=%s LIMIT 1",
array(bigintval(getRequestElement('pid'))), __FILE__, __LINE__);
list($ptype) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
if (!empty($ptype)) {
// Obtain data from payout type
$result = SQL_QUERY_ESC("SELECT `from_account`, `from_pass`, `engine_url`, `engine_ret_ok`, `engine_ret_failed`, `pass_enc`, `allow_url`
FROM
`{?_MYSQL_PREFIX?}_payout_types`
WHERE
`id`=%s
LIMIT 1",
array(bigintval($ptype)), __FILE__, __LINE__);
list($fuserid, $fpass, $eurl, $eok, $failed, $eenc, $allow) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
if (!empty($eurl)) {
// Ok, run URL...
switch ($eenc) {
case 'md5':
$fpass = md5($fpass);
$tpass = md5($tpass);
break;
case 'base64':
$fpass = base64_encode($fpass);
$tpass = base64_encode($tpass);
break;
}
// Transfer variables...
$eval = "\$URL = \"".$eurl."\";";
$reason = encodeString(getMessage('PAYOUT_REASON_PAYOUT'), false);
// Run code...
// @TODO Do we need this time-consuming eval() here?
eval($eval);
// Execute transfer
$ret = sendGetRequest($URL);
} else {
// No URL to run
$ret[0] = $eok;
}
if ($ret[0] == $eok) {
// Clear task
if ($task > 0) {
runFilterChain('solve_task', $task);
}
// Clear payout request
SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_payouts` SET `status`='ACCEPTED' WHERE `id`=%s LIMIT 1",
array(bigintval(getRequestElement('pid'))), __FILE__, __LINE__);
// Send out mail
$message = loadEmailTemplate('member_payout_accepted', postRequestElement('text'), $userid);
// Output message
if ($allow == 'Y') {
// Banner / Textlink request
loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_BANNER_ACCEPTED_NOTIFIED'));
} else {
// Normal request
loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_ACCEPTED_NOTIFIED'));
}
// Finally send mail
sendEmail(getUserData('email'), getMessage('PAYOUT_ACCEPTED_SUBJECT'), $message);
} else {
// Something goes wrong... :-(
$content = implode("
", $ret);
loadTemplate('admin_payout_failed_transfer', false, $content);
}
} else {
// Cannot load payout id
loadTemplate('admin_settings_saved', false, "
{--PAYOUT_FAILED_OBTAIN_PAYOUT_ID--}
");
}
} else {
// Prepare content
$content = array(
'task' => $task,
'pid' => bigintval(getRequestElement('pid')),
'user' => "".translateGender(getUserData('gender'))." ".getUserData('surname')." ".getUserData('family')."",
);
// Load template
loadTemplate('admin_payout_accept_form', false, $content);
}
} elseif ((getRequestElement('do') == 'reject') && (!empty(getUserData('email')))) {
// Ok, now we can output the form or execute rejecting
if (isFormSent()) {
if ($task > 0) {
// Clear task
runFilterChain('solve_task', $task);
} // END - if
// Clear payout request
SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_payouts` SET `status`='REJECTED' WHERE `id`=%s LIMIT 1",
array(bigintval(getRequestElement('pid'))), __FILE__, __LINE__);
// Send out mail
$message = loadEmailTemplate('member_payout_rejected', postRequestElement('text'), $userid);
// Output message
loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_REJECTED_NOTIFIED'));
// Finally send mail
sendEmail(getUserData('email'), getMessage('PAYOUT_REJECTED_SUBJECT'), $message);
} else {
// Prepare content
$content = array(
'task' => $task,
'pid' => bigintval(getRequestElement('pid')),
'user' => "".translateGender(getUserData('gender'))." ".getUserData('surname')." ".getUserData('family')."",
);
// Load template
loadTemplate('admin_payout_reject_form', false, $content);
}
} else {
// Cannot load user data
loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_FAILED_OBTAIN_USERDATA'));
}
} elseif ((empty($task)) || ($task == '0')) {
// Failed loading task id
loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_FAILED_OBTAIN_TASK_ID'));
}
} else {
if (getRequestElement('do') == 'delete') {
// Delete all requests
$result = SQL_QUERY("TRUNCATE `{?_MYSQL_PREFIX?}_user_payouts`", __FILE__, __LINE__);
} // END - if
// Search for payouts
$result = SQL_QUERY("SELECT
p.id, p.userid, p.payout_total, p.target_account,
p.target_bank, t.type, p.payout_timestamp, p.status,
t.allow_url AS allow, p.target_url AS url, p.link_text AS alt,
p.banner_url AS banner
FROM
`{?_MYSQL_PREFIX?}_user_payouts` AS p
LEFT JOIN
`{?_MYSQL_PREFIX?}_payout_types` AS t
ON
p.payout_id=t.id
ORDER BY
p.payout_timestamp DESC", __FILE__, __LINE__);
if (SQL_NUMROWS($result) > 0) {
// List found payouts
$OUT = ''; $SW = 2;
while ($content = SQL_FETCHARRAY($result)) {
if ($content['status'] == 'NEW') {
// Generate links for direct accepting and rejecting
$content['status'] = "{--PAYOUT_ACCEPT_PAYOUT--} | {--PAYOUT_REJECT_PAYOUT--}";
} else {
// Translate status
$content['status'] = getMessage('PAYOUT_STATUS_'.strtoupper($content['status']).'');
$content['status'] = "".$content['status']."
";
}
// Nothing entered must be secured in member/what-payputs.php !
if ($content['allow'] == 'Y') {
// Banner/Textlink views/clicks request
if (!empty($content['banner'])) {
// Load template for the banner
$content['target_account'] = loadTemplate('admin_list_payouts_banner', true, $content);
} else {
// Textlink
$content['target_account'] = loadTemplate('admin_list_payouts_txt', true, $content);
}
// Admins can addionally test the URL for framekillers
$content['target_bank'] = "{--CLICK_HERE--}";
} else {
// e-currency payout request
if (empty($content['target_account'])) $content['target_account'] = '---';
if (empty($content['target_bank'])) $content['target_bank'] = '---';
}
// Remember data in array for the template
$content = array(
'sw' => $SW,
'ulink' => generateUserProfileLink($content['userid']),
'ptype' => translateComma($content['payout_total']) . ' ' . $content['type'],
'account' => $content['target_account'],
'bank' => $content['target_bank'],
'tstamp' => generateDateTime($content['payout_timestamp'], 2),
'status' => $content['status'],
);
// Add row and switch color
$OUT .= loadTemplate('admin_list_payouts_row', true, $content);
$SW = 3 - $SW;
}
// Free memory
SQL_FREERESULT($result);
// Load final template
loadTemplate('admin_list_payouts', false, $OUT);
} else {
// No payout requests are sent so far
loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_ADMIN_NO_REQUESTS_FOUND'));
}
}
// [EOF]
?>