diff --git a/cronjobs/pplns_payout.php b/cronjobs/pplns_payout.php index f7cdb6b2..66d714d3 100755 --- a/cronjobs/pplns_payout.php +++ b/cronjobs/pplns_payout.php @@ -130,7 +130,7 @@ foreach ($aAllBlocks as $iIndex => $aBlock) { $aData['fee' ] = 0; $aData['donation'] = 0; - if ($config['fees'] > 0) + if ($config['fees'] > 0 && $aData['no_fees'] == 0) $aData['fee'] = number_format(round($config['fees'] / 100 * $aData['payout'], 8), 8); // Calculate donation amount, fees not included $aData['donation'] = number_format(round($user->getDonatePercent($user->getUserId($aData['username'])) / 100 * ( $aData['payout'] - $aData['fee']), 8), 8); diff --git a/cronjobs/pps_payout.php b/cronjobs/pps_payout.php index 5e6f673a..fc66ecff 100755 --- a/cronjobs/pps_payout.php +++ b/cronjobs/pps_payout.php @@ -72,7 +72,7 @@ foreach ($aAccountShares as $aData) { $aData['donation'] = 0; // Calculate block fees - if ($config['fees'] > 0) + if ($config['fees'] > 0 && $aData['no_fees'] == 0) $aData['fee'] = number_format(round($config['fees'] / 100 * $aData['payout'], 8), 8); // Calculate donation amount $aData['donation'] = number_format(round($user->getDonatePercent($user->getUserId($aData['username'])) / 100 * ( $aData['payout'] - $aData['fee']), 8), 8); diff --git a/cronjobs/proportional_payout.php b/cronjobs/proportional_payout.php index 36a9a1fe..47e55dc3 100755 --- a/cronjobs/proportional_payout.php +++ b/cronjobs/proportional_payout.php @@ -66,7 +66,7 @@ foreach ($aAllBlocks as $iIndex => $aBlock) { $aData['fee' ] = 0; $aData['donation'] = 0; - if ($config['fees'] > 0) + if ($config['fees'] > 0 && $aData['no_fees'] == 0) $aData['fee'] = number_format(round($config['fees'] / 100 * $aData['payout'], 8), 8); // Calculate donation amount, fees not included $aData['donation'] = number_format(round($user->getDonatePercent($user->getUserId($aData['username'])) / 100 * ( $aData['payout'] - $aData['fee']), 8), 8); diff --git a/public/include/classes/share.class.php b/public/include/classes/share.class.php index 7bcc6d14..9fe1ff16 100644 --- a/public/include/classes/share.class.php +++ b/public/include/classes/share.class.php @@ -97,6 +97,7 @@ class Share { SELECT a.id, SUBSTRING_INDEX( s.username , '.', 1 ) as username, + a.no_fees AS no_fees, IFNULL(SUM(IF(our_result='Y', 1, 0)), 0) AS valid, IFNULL(SUM(IF(our_result='N', 1, 0)), 0) AS invalid FROM $this->table AS s @@ -135,6 +136,7 @@ class Share { SELECT a.id, SUBSTRING_INDEX( s.username , '.', 1 ) as account, + a.no_fees AS no_fees, IFNULL(SUM(IF(our_result='Y', 1, 0)), 0) AS valid, IFNULL(SUM(IF(our_result='N', 1, 0)), 0) AS invalid FROM $this->tableArchive AS s diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php index e2d1848a..1452db89 100644 --- a/public/include/classes/statistics.class.php +++ b/public/include/classes/statistics.class.php @@ -224,6 +224,7 @@ class Statistics { a.id AS id, a.is_admin as is_admin, a.is_locked as is_locked, + a.no_fees as no_fees, a.username AS username, a.donate_percent AS donate_percent, a.email AS email, diff --git a/public/include/classes/user.class.php b/public/include/classes/user.class.php index 4f9f5cd4..9d2807b4 100644 --- a/public/include/classes/user.class.php +++ b/public/include/classes/user.class.php @@ -43,6 +43,9 @@ class User { public function getUserEmail($username) { return $this->getSingle($username, 'email', 'username', 's'); } + public function getUserNoFee($id) { + return $this->getSingle($id, 'no_fees', 'id'); + } public function getUserAdmin($id) { return $this->getSingle($id, 'is_admin', 'id'); } @@ -58,12 +61,19 @@ class User { public function getUserFailed($id) { return $this->getSingle($id, 'failed_logins', 'id'); } + public function isNoFee($id) { + return $this->getUserNoFee($id); + } public function isLocked($id) { return $this->getUserLocked($id); } public function isAdmin($id) { return $this->getUserAdmin($id); } + public function changeNoFee($id) { + $field = array('name' => 'no_fees', 'type' => 'i', 'value' => !$this->isNoFee($id)); + return $this->updateSingle($id, $field); + } public function changeLocked($id) { $field = array('name' => 'is_locked', 'type' => 'i', 'value' => !$this->isLocked($id)); return $this->updateSingle($id, $field); @@ -416,7 +426,7 @@ class User { $this->debug->append("Fetching user information for user id: $userID"); $stmt = $this->mysqli->prepare(" SELECT - id, username, pin, api_key, is_admin, is_anonymous, email, + id, username, pin, api_key, is_admin, is_anonymous, email, no_fees, IFNULL(donate_percent, '0') as donate_percent, coin_address, ap_threshold FROM $this->table WHERE id = ? LIMIT 0,1"); diff --git a/public/include/pages/admin/user.inc.php b/public/include/pages/admin/user.inc.php index ecb447b9..bc562bbf 100644 --- a/public/include/pages/admin/user.inc.php +++ b/public/include/pages/admin/user.inc.php @@ -11,16 +11,19 @@ if (!$user->isAuthenticated() || !$user->isAdmin($_SESSION['USERDATA']['id'])) { $aRoundShares = $statistics->getRoundShares(); -// Change account lock -if (@$_POST['do'] == 'lock') { +switch (@$_POST['do']) { +case 'lock': $supress_master = 1; $user->changeLocked($_POST['account_id']); -} - -// Change account admin -if (@$_POST['do'] == 'admin') { + break; +case 'fee': + $supress_master = 1; + $user->changeNoFee($_POST['account_id']); + break; +case 'admin': $supress_master = 1; $user->changeAdmin($_POST['account_id']); + break; } if (@$_POST['query']) { diff --git a/public/include/smarty_globals.inc.php b/public/include/smarty_globals.inc.php index 5f47bd65..053f1697 100644 --- a/public/include/smarty_globals.inc.php +++ b/public/include/smarty_globals.inc.php @@ -90,7 +90,7 @@ if (@$_SESSION['USERDATA']['id']) { // Some estimations if (@$aRoundShares['valid'] > 0) { $aGlobal['userdata']['est_block'] = round(( (int)$aGlobal['userdata']['shares']['valid'] / (int)$aRoundShares['valid'] ) * (float)$config['reward'], 8); - $aGlobal['userdata']['est_fee'] = round(((float)$config['fees'] / 100) * (float)$aGlobal['userdata']['est_block'], 8); + $aGlobal['userdata']['no_fees'] == 0 ? $aGlobal['userdata']['est_fee'] = round(((float)$config['fees'] / 100) * (float)$aGlobal['userdata']['est_block'], 8) : $aGlobal['userdata']['est_fee'] = 0; $aGlobal['userdata']['est_donation'] = round((( (float)$aGlobal['userdata']['donate_percent'] / 100) * ((float)$aGlobal['userdata']['est_block'] - (float)$aGlobal['userdata']['est_fee'])), 8); $aGlobal['userdata']['est_payout'] = round((float)$aGlobal['userdata']['est_block'] - (float)$aGlobal['userdata']['est_donation'] - (float)$aGlobal['userdata']['est_fee'], 8); } else { diff --git a/public/templates/mmcFE/admin/user/default.tpl b/public/templates/mmcFE/admin/user/default.tpl index fef10bfa..83dbf92d 100644 --- a/public/templates/mmcFE/admin/user/default.tpl +++ b/public/templates/mmcFE/admin/user/default.tpl @@ -1,4 +1,11 @@