X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=0.2.1%2Finc%2Fdoubler_send.php;fp=0.2.1%2Finc%2Fdoubler_send.php;h=374a8b19e4cc50097ddfe0f10991d6b8cad3a39d;hp=4ebe37ad0893ca393c2c56b474a91e0144d40d9b;hb=7bc25dd08431c94ce9edca131d56c1a36b13c28a;hpb=157ee010917df5ca07e6d31b42f67417b2516d74 diff --git a/0.2.1/inc/doubler_send.php b/0.2.1/inc/doubler_send.php index 4ebe37ad08..374a8b19e4 100644 --- a/0.2.1/inc/doubler_send.php +++ b/0.2.1/inc/doubler_send.php @@ -1,203 +1,203 @@ -= %s AND d.completed='N' AND d.is_ref='N' -ORDER BY d.timemark", array($DOUBLER_POINTS, $min), __FILE__, __LINE__); - -// Check for accounts with limitation -$result_main = SQL_QUERY_ESC("SELECT DISTINCT d.id, d.userid, d.points, d.remote_ip, d.timemark -FROM "._MYSQL_PREFIX."_doubler AS d -LEFT JOIN "._MYSQL_PREFIX."_user_data AS u -ON d.userid=u.userid -WHERE u.status='CONFIRMED' AND d.points <= %s AND d.points >= %s AND d.completed='N' AND d.is_ref='N' -ORDER BY d.timemark -LIMIT %s", array($DOUBLER_POINTS, $min, $CONFIG['doubler_max_sent']), __FILE__, __LINE__); - -if (((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) || ((SQL_NUMROWS($result_main) == $CONFIG['doubler_group_sent']) && ($CONFIG['doubler_sent_all'] == "N"))) -{ - // Switch to matching SQL resource - $result_load = $result_main; - if ((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) $result_load = $result_total; - - // At least one account was found - while(list($id, $uid, $points, $ip, $time) = SQL_FETCHROW($result_load)) - { - // Only double when points are enougth! - if ($DOUBLER_POINTS >= $points) - { - // Check for his ref points - $result_ref = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_doubler WHERE refid=%d AND completed='N' AND is_ref='Y'", - array(bigintval($uid)), __FILE__, __LINE__); - list($ref) = SQL_FETCHROW($result_ref); - - // Free memory - SQL_FREERESULT($result_ref); - - // Zero refid when empty (might be helpful!) - if (empty($ref)) $ref = 0; - if (($ref > 0) && ($DOUBLER_UID == $uid) && (!empty($ref))) - { - // Referral points found so add them and set line(s) to completed='Y' - $points += $ref; - $result_ref = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE refid=%d AND completed='N' AND is_ref='Y'", - array(bigintval($uid)), __FILE__, __LINE__); - } - else - { - // No referral points found - $ref = "0"; - } - - // Exclude webmaster from doubling... - if ($uid != $CONFIG['doubler_uid']) - { - // Add points - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1", - array($points, bigintval($uid)), __FILE__, __LINE__); - - // Update mediadata as well - if (GET_EXT_VERSION("mediadata") >= "0.0.4") - { - // Update database - MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points); - } - } - - // Set entry as "payed" - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE id=%d LIMIT 1", - array(bigintval($id)), __FILE__, __LINE__); - - $OK = false; - // Check for jackpot inclusion in doubling process - if (($jackpot > 0) && ($jackpot >= $points) && ($CONFIG['doubler_jackpot'] == "Y")) - { - // Subtract points from jackpot - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1", - array($points), __FILE__, __LINE__); - $jackpot -= $jackpot; - - // Okay, done! - $OK = true; - } - - // Exclude also webmaster's ID in taking points from webmaster's account - if (($user > 0) && ($user >= $points) && (!$OK) && ($CONFIG['doubler_uid'] > 0) && ($uid != $CONFIG['doubler_uid'])) - { - // Add points to used points - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid='' LIMIT 1", - array($points, $CONFIG['doubler_uid']), __FILE__, __LINE__); - - // Update mediadata as well - if (GET_EXT_VERSION("mediadata") >= "0.0.4") - { - // Update database - MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points); - } - - // Okay, done! - $OK = true; - } - - // Update doubler's account only when others are not updated - if (!$OK) - { - // Add points to used doubler points - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET doubler_used=doubler_used+%s WHERE config='0' LIMIT 1", - array($points), __FILE__, __LINE__); - - // Destroy cache - if (GET_EXT_VERSION("cache") >= "0.1.2") - { - if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy(); - } - } - - // Update variables to prevent errors - $CONFIG['doubler_used'] += $points; - $DOUBLER_POINTS -= $points; - - // Prepare array - $content = array( - // Doubler transmission ID - 'id' => $id, - // Doubled points - 'points' => TRANSLATE_COMMA($points), - // Timemark - 'when' => MAKE_DATETIME($time, "2"), - // IP number when the member submitted the doubling form - 'ip' => $ip, - ); - - // Load mail template and send mail away... - $msg = LOAD_EMAIL_TEMPLATE("member_doubler", $content, $uid); - SEND_EMAIL($uid, DOUBLER_MEMBER_SUBJECT, $msg); - } - } -} - -// Free memory -SQL_FREERESULT($result_total); -SQL_FREERESULT($result_main); - -// -?> += %s AND d.completed='N' AND d.is_ref='N' +ORDER BY d.timemark", array($DOUBLER_POINTS, $min), __FILE__, __LINE__); + +// Check for accounts with limitation +$result_main = SQL_QUERY_ESC("SELECT DISTINCT d.id, d.userid, d.points, d.remote_ip, d.timemark +FROM "._MYSQL_PREFIX."_doubler AS d +LEFT JOIN "._MYSQL_PREFIX."_user_data AS u +ON d.userid=u.userid +WHERE u.status='CONFIRMED' AND d.points <= %s AND d.points >= %s AND d.completed='N' AND d.is_ref='N' +ORDER BY d.timemark +LIMIT %s", array($DOUBLER_POINTS, $min, $CONFIG['doubler_max_sent']), __FILE__, __LINE__); + +if (((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) || ((SQL_NUMROWS($result_main) == $CONFIG['doubler_group_sent']) && ($CONFIG['doubler_sent_all'] == "N"))) +{ + // Switch to matching SQL resource + $result_load = $result_main; + if ((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) $result_load = $result_total; + + // At least one account was found + while(list($id, $uid, $points, $ip, $time) = SQL_FETCHROW($result_load)) + { + // Only double when points are enougth! + if ($DOUBLER_POINTS >= $points) + { + // Check for his ref points + $result_ref = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_doubler WHERE refid=%d AND completed='N' AND is_ref='Y'", + array(bigintval($uid)), __FILE__, __LINE__); + list($ref) = SQL_FETCHROW($result_ref); + + // Free memory + SQL_FREERESULT($result_ref); + + // Zero refid when empty (might be helpful!) + if (empty($ref)) $ref = 0; + if (($ref > 0) && ($DOUBLER_UID == $uid) && (!empty($ref))) + { + // Referral points found so add them and set line(s) to completed='Y' + $points += $ref; + $result_ref = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE refid=%d AND completed='N' AND is_ref='Y'", + array(bigintval($uid)), __FILE__, __LINE__); + } + else + { + // No referral points found + $ref = "0"; + } + + // Exclude webmaster from doubling... + if ($uid != $CONFIG['doubler_uid']) + { + // Add points + $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1", + array($points, bigintval($uid)), __FILE__, __LINE__); + + // Update mediadata as well + if (GET_EXT_VERSION("mediadata") >= "0.0.4") + { + // Update database + MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points); + } + } + + // Set entry as "payed" + $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE id=%d LIMIT 1", + array(bigintval($id)), __FILE__, __LINE__); + + $OK = false; + // Check for jackpot inclusion in doubling process + if (($jackpot > 0) && ($jackpot >= $points) && ($CONFIG['doubler_jackpot'] == "Y")) + { + // Subtract points from jackpot + $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1", + array($points), __FILE__, __LINE__); + $jackpot -= $jackpot; + + // Okay, done! + $OK = true; + } + + // Exclude also webmaster's ID in taking points from webmaster's account + if (($user > 0) && ($user >= $points) && (!$OK) && ($CONFIG['doubler_uid'] > 0) && ($uid != $CONFIG['doubler_uid'])) + { + // Add points to used points + $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid='' LIMIT 1", + array($points, $CONFIG['doubler_uid']), __FILE__, __LINE__); + + // Update mediadata as well + if (GET_EXT_VERSION("mediadata") >= "0.0.4") + { + // Update database + MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points); + } + + // Okay, done! + $OK = true; + } + + // Update doubler's account only when others are not updated + if (!$OK) + { + // Add points to used doubler points + $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET doubler_used=doubler_used+%s WHERE config='0' LIMIT 1", + array($points), __FILE__, __LINE__); + + // Destroy cache + if (GET_EXT_VERSION("cache") >= "0.1.2") + { + if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy(); + } + } + + // Update variables to prevent errors + $CONFIG['doubler_used'] += $points; + $DOUBLER_POINTS -= $points; + + // Prepare array + $content = array( + // Doubler transmission ID + 'id' => $id, + // Doubled points + 'points' => TRANSLATE_COMMA($points), + // Timemark + 'when' => MAKE_DATETIME($time, "2"), + // IP number when the member submitted the doubling form + 'ip' => $ip, + ); + + // Load mail template and send mail away... + $msg = LOAD_EMAIL_TEMPLATE("member_doubler", $content, $uid); + SEND_EMAIL($uid, DOUBLER_MEMBER_SUBJECT, $msg); + } + } +} + +// Free memory +SQL_FREERESULT($result_total); +SQL_FREERESULT($result_main); + +// +?>