X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmodules%2Fmember%2Fwhat-wernis.php;h=33ffa15f14a15f5753ceb695e21f56fd33a2f542;hb=e6d0294f587cab6b74f689ecdf2ebb3cf2b09e25;hp=02be8e2703a7040af351d755edf1d42b0b25fac6;hpb=4b0f1615f68ba3e76dbb0ca20fad505d8765931e;p=mailer.git diff --git a/inc/modules/member/what-wernis.php b/inc/modules/member/what-wernis.php index 02be8e2703..33ffa15f14 100644 --- a/inc/modules/member/what-wernis.php +++ b/inc/modules/member/what-wernis.php @@ -10,9 +10,14 @@ * -------------------------------------------------------------------- * * Kurzbeschreibung : Auszahlungsanfragen * * -------------------------------------------------------------------- * - * * + * $Revision:: $ * + * $Date:: $ * + * $Tag:: 0.2.1-FINAL $ * + * $Author:: $ * + * Needs to be in all Files and every File needs "svn propset * + * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * - * Copyright (c) 2003 - 2008 by Roland Haeder * + * Copyright (c) 2003 - 2009 by Roland Haeder * * For more information visit: http://www.mxchange.org * * * * This program is free software; you can redistribute it and/or modify * @@ -32,26 +37,267 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) { - $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; - require($INC); -} elseif (!IS_LOGGED_IN()) { +if (!defined('__SECURITY')) { + die(); +} elseif (!isMember()) { // User is not logged in - LOAD_URL(URL."/modules.php?module=index"); -} elseif ((!EXT_IS_ACTIVE("wernis")) && (!IS_ADMIN())) { - // Extension "wernis" is not activated - ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "wernis"); - return; + redirectToIndexMemberOnlyModule(); } // Add description as navigation point -ADD_DESCR("member", basename(__FILE__)); +addMenuDescription('member', __FILE__); + +if ((!isExtensionActive('wernis')) && (!isAdmin())) { + loadTemplate('admin_settings_saved', false, generateExtensionInactiveNotInstalledMessage('wernis')); + return; +} // END - if + +// Check if the admin has entered the data +if ((getConfig('wernis_api_id') == '') || (getConfig('wernis_api_md5') == '')) { + // Something important is missing... + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_API_DATA_MISSING')); + return; +} // END - if + +// Init the content array and points +$content = array(); $points = false; // Is the mode set (withdraw or payout) -if (!isset($_GET['mode'])) { +if ((!isGetRequestElementSet('mode')) || (getRequestElement('mode') == 'choose')) { // Let the user choose what he wants to do - LOAD_TEMPLATE("member_wernis_mode_choose"); + $content['refid'] = getConfig(('wernis_refid')); + $content['wds66_id'] = 0; + + // Get WDS66 id + $result = SQL_QUERY_ESC("SELECT wernis_userid FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", + array(getUserId()), __FILE__, __LINE__); + + // Are there some entries? + if (SQL_NUMROWS($result) == 1) { + // Fetch ID + list($content['wds66_id']) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Is there an ID? + if ((!empty($content['wds66_id'])) && (!isGetRequestElementSet('mode'))) { + // Then use an other "mode" + setRequestGetElement('mode', 'list'); + + // And load all rows! + $result = SQL_QUERY_ESC("SELECT `id`,`wernis_account`,`wernis_amount`,`wernis_timestamp`,`wernis_type` FROM `{?_MYSQL_PREFIX?}_user_wernis` WHERE `userid` = %s ORDER BY `wernis_timestamp` DESC", + array(getUserId()), __FILE__, __LINE__); + + // Load all rows + $content['rows'] = ''; $SW = 2; + while ($data = SQL_FETCHARRAY($result)) { + // Prepare data for output + $rowContent = array( + 'stamp' => generateDateTime($data['wernis_timestamp'], 2), + 'points' => translateComma($data['wernis_amount']), + 'acc' => bigintval($data['wernis_account']), + 'status' => WERNIS_TRANSFER_STATUS($data['wernis_type']), + 'raw_type' => strtolower($data['wernis_type']), + 'sw' => $SW, + ); + + // Load row template + $content['rows'] .= loadTemplate('member_wernis_mode_list_row', true, $rowContent); + $SW = 3 - $SW; + } + + // Free result + SQL_FREERESULT($result); + } else { + // Default links are not active! + $content['payout_link'] = '{--WERNIS_MEMBER_PAYOUT_DISABLED--}'; + $content['withdraw_link'] = '{--WERNIS_MEMBER_WITHDRAW_DISABLED--}'; + + // Is the payout mode active? + if (getConfig('wernis_payout_active') == 'Y') { + // Add link + $content['payout_link'] = "
{--MEMBER_WERNIS_MODE_PAYOUT--}
"; + } // END - if + + // Is the withdraw mode active? + if (getConfig('wernis_withdraw_active') == 'Y') { + // Add link + $content['withdraw_link'] = "
{--MEMBER_WERNIS_MODE_WITHDRAW--}
"; + } // END - if + + // Mode chooser! ;-) + setRequestGetElement('mode', 'choose'); + } +} elseif ((getRequestElement('mode') == 'payout') && (getConfig('wernis_payout_active') == 'Y')) { + // Get total points and check if the user can request a payout + $points = countSumTotalData(getUserId(), 'user_points', 'points') - countSumTotalData(getUserId(), 'user_data', 'used_points'); + + // Remove the registration fee + $points = $points - getConfig('points_register'); + + // Is there a percentage or fixed fee? + $points = WERNIS_TAKE_FEE($points, 'payout'); + + // Is this enougth for a payout? + if ($points < getConfig('wernis_min_payout')) { + // No, then abort here + loadTemplate('admin_settings_saved', false, sprintf( + getMessage('WERNIS_MEMBER_MIN_PAYOUT'), + translateComma(getConfig('wernis_min_payout')), + translateComma($points) + )); + return; + } // END - if + + // No dots here... + $points = explode('.', $points); + $points = bigintval($points[0]); + + // Add points to content array + $content['points'] = translateComma($points); + $content['min_points'] = translateComma(getConfig('wernis_min_payout')); + + // Add fees to array + WERNIS_ADD_FEES_TO_ARRAY($content); + + // Get WDS66 id + $content['wds66_id'] = ''; + $result = SQL_QUERY_ESC("SELECT `wernis_userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", + array(getUserId()), __FILE__, __LINE__); + + // Are there some entries? + if (SQL_NUMROWS($result) == 1) { + // Fetch ID + list($content['wds66_id']) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); +} elseif ((getRequestElement('mode') == 'withdraw') && (getConfig('wernis_withdraw_active') == 'Y')) { + // Get total points for just displaying them + $points = countSumTotalData(getUserId(), 'user_points', 'points') - countSumTotalData(getUserId(), 'user_data', 'used_points'); + + // Prepare data for the template + $content['points'] = translateComma($points); + $content['min_points'] = translateComma(getConfig('wernis_min_withdraw')); + $content['wds66_id'] = ''; + + // Add fees to array + WERNIS_ADD_FEES_TO_ARRAY($content); + + // Get WDS66 id + $result = SQL_QUERY_ESC("SELECT `wernis_userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", + array(getUserId()), __FILE__, __LINE__); + + // Are there some entries? + if (SQL_NUMROWS($result) == 1) { + // Fetch ID + list($content['wds66_id']) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); +} else { + // Invalid mode! + loadTemplate('admin_settings_saved', false, sprintf(getMessage('WERNIS_MEMBER_MODE_INVALID'), getRequestElement('mode'))); + return; } -// +// Is the formular sent? +if ((isFormSent()) && (isGetRequestElementSet('mode'))) { + // Is the user ID and password set? + if (!isPostRequestElementSet(('wds66_id'))) { + // Nothing entered in WDS66 user ID + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_EMPTY_USERNAME')); + } elseif (!isPostRequestElementSet(('wds66_password'))) { + // Nothing entered in WDS66 password + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_EMPTY_PASSWORD')); + } elseif (!isPostRequestElementSet(('amount'))) { + // Nothing entered in amount + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_EMPTY_AMOUNT')); + } elseif (postRequestElement('wds66_id') != bigintval(postRequestElement('wds66_id'))) { + // Only numbers in account ID! + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_INVALID_USERNAME')); + } elseif (postRequestElement('amount') != bigintval(postRequestElement('amount'))) { + // Only numbers in amount! + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_INVALID_AMOUNT')); + } else { + // Check input data depending on the mode and execute the requested mode + switch (getRequestElement('mode')) { + case 'withdraw': // Widthdraws WDS66 -> This exchange + if (postRequestElement('amount') < getConfig('wernis_min_withdraw')) { + // Not enougth entered! + loadTemplate('admin_settings_saved', false, sprintf(getMessage('WERNIS_MEMBER_AMOUNT_SMALLER_MIN'), translateComma(getConfig('wernis_min_withdraw')))); + } else { + // All is fine here so do the withdraw + $success = WERNIS_EXECUTE_WITHDRAW(postRequestElement('wds66_id'), md5(postRequestElement('wds66_password')), postRequestElement('amount')); + if ($success === true) { + // Add it to this amount + addPointsDirectly('wernis_withdraw', getUserId(), bigintval(postRequestElement('amount'))); + + // Update the user data as well.. + SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `wernis_userid`=%s WHERE `userid`=%s LIMIT 1", + array(bigintval(postRequestElement('wds66_id')), getUserId()), __FILE__, __LINE__); + + // All done! + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_WITHDRAW_DONE')); + return; + } elseif ((GET_WERNIS_ERROR_CODE() == 'user_failed') || (GET_WERNIS_ERROR_CODE() == 'own_failed') || (GET_WERNIS_ERROR_CODE() == 'amount_failed')) { + // Wrong login data + loadTemplate('admin_settings_saved', false, GET_WERNIS_ERROR_MESSAGE()); + } else { + // Something went wrong + loadTemplate('admin_settings_saved', false, sprintf(getMessage('WERNIS_MEMBER_WITHDRAW_FAILED'), GET_WERNIS_ERROR_MESSAGE())); + } + } + break; + + case 'payout': // Payout this exchange -> WDS66 + if (postRequestElement('amount') < getConfig('wernis_min_payout')) { + // Not enougth entered! + loadTemplate('admin_settings_saved', false, sprintf(getMessage('WERNIS_MEMBER_AMOUNT_SMALLER_MIN'), translateComma(getConfig('wernis_min_payout')))); + } elseif (postRequestElement('amount') > $points) { + // Not enougth points left! + loadTemplate('admin_settings_saved', false, sprintf(getMessage('WERNIS_MEMBER_PAYOUT_POINTS_DEPLETED'), bigintval(postRequestElement('amount')), bigintval($points))); + } else { + // All is fine here so do the withdraw + $success = WERNIS_EXECUTE_PAYOUT(postRequestElement('wds66_id'), postRequestElement('amount')); + if ($success === true) { + // Sub points + subtractPoints('wernis_payout', getUserId(), postRequestElement('amount')); + + // Update WDS66 id + SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `wernis_userid`=%s WHERE `userid`=%s LIMIT 1", + array(bigintval(postRequestElement('wds66_id')), getUserId()), __FILE__, __LINE__); + + // All done! + loadTemplate('admin_settings_saved', false, getMessage('WERNIS_MEMBER_PAYOUT_DONE')); + return; + } elseif ((GET_WERNIS_ERROR_CODE() == 'user_failed') || (GET_WERNIS_ERROR_CODE() == 'own_failed') || (GET_WERNIS_ERROR_CODE() == 'amount_failed') || (GET_WERNIS_ERROR_CODE() == 'api_amount_failed')) { + // Wrong login data + loadTemplate('admin_settings_saved', false, GET_WERNIS_ERROR_MESSAGE()); + } else { + // Something went wrong + loadTemplate('admin_settings_saved', false, sprintf(getMessage('WERNIS_MEMBER_WITHDRAW_FAILED'), GET_WERNIS_ERROR_MESSAGE())); + } + } + break; + + default: // Invalid mode! + logDebugMessage(__FILE__, __LINE__, sprintf("Invalid mode %s detected.", getRequestElement('mode'))); + loadTemplate('admin_settings_saved', false, sprintf(getMessage('WERNIS_MEMBER_MODE_INVALID'), getRequestElement('mode'))); + return; + } + } +} // END - if + +// Prepare mode for template name +$mode = sprintf("member_wernis_mode_%s", getRequestElement('mode')); + +// Load the template +loadTemplate($mode, false, $content); + +// [EOF] ?>