New feature of repaying points to user/jackpot/shred added
[mailer.git] / inc / modules / admin / what-del_email.php
index 136b0f947c738457cc69a636afc5275b44972d0d..635b6443e9a8399d987dfd9579420f75d676ad7f 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
-{
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
 
 // Add description as navigation point
 ADD_DESCR("admin", basename(__FILE__));
-OPEN_TABLE("100%", "admin_content admin_content_align", "");
-if (!empty($_GET['mid']))
-{
+
+if (!empty($_GET['mid'])) {
        // Load email data
-       $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+       $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp, payment_id FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
         array(bigintval($_GET['mid'])), __FILE__, __LINE__);
-       list ($id, $sender, $subject, $url, $timestamp,) = SQL_FETCHROW($result);
-       SQL_FREERESULT($result);
 
        // Delete mail only once
-       if ($sender > 0)
-       {
+       if (SQL_NUMROWS($result) == 1) {
+               // Load data
+               list ($id, $sender, $subject, $url, $timestamp, $payId) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Get points we shall pay back per mail
+               $price = GET_PAY_POINTS($payId, "price");
+
                // Prepare data for the template
                define('__ID'     , $id);
                define('__SENDER' , ADMIN_USER_PROFILE_LINK($sender));
@@ -79,46 +81,79 @@ if (!empty($_GET['mid']))
                // Fetch right stats_id from pool
                $result = SQL_QUERY_ESC("SELECT s.id FROM "._MYSQL_PREFIX."_user_stats AS s
 LEFT JOIN "._MYSQL_PREFIX."_pool AS p
-ON s.pool_id=%d LIMIT 1",
+ON s.pool_id=p.id
+WHERE s.pool_id=%d LIMIT 1",
  array(bigintval($_GET['mid'])), __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) == 1)
-               {
+               if (SQL_NUMROWS($result) == 1) {
                        // Fetch stats id
                        list($stats_id) = SQL_FETCHROW($result);
+
+                       // Free the result
                        SQL_FREERESULT($result);
 
+                       // Shall we pay the points back to the user?
+                       if ($_CONFIG['repay_deleted_mails'] != "NEVER") {
+                               // Get all user links
+                               $result = SQL_QUERY_ESC("SELECT COUNT(id) AS 'cnt' FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d",
+                                       array(bigintval($stats_id)), __FILE__, __LINE__);
+
+                               // Get unconfirmed links for calculation of total points
+                               list($links) = SQL_FETCHROW($result);
+
+                               // Free result
+                               SQL_FREERESULT($result);
+
+                               // Calc total points and pay them back
+                               $totalPoints = $links * $price;
+                               //* DEBUG: */ echo $stats_id.":".$totalPoints."/".$links."/".$price."<br />\n";
+                               if ($totalPoints > 0) {
+                                       // Shall we payback to user or jackpot?
+                                       if ($_CONFIG['repay_deleted_mails'] == "JACKPOT") {
+                                               // Set jackpot
+                                               $sender = 0;
+                                       }
+
+                                       // Pay back points
+                                       //* DEBUG: */ echo "PAYBACK:".$sender."<br />\n";
+                                       ADD_POINTS_REFSYSTEM($sender, $totalPoints, true, "0", false,"direct");
+
+                                       // Output message
+                                       LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_REPAYED,
+                                               number_format($totalPoints, 0, ",", ".")
+                                       ));
+                               } else {
+                                       // No points repayed!
+                                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_POINTS_REPAYED);
+                               }
+                       }
+
                        // Remove links from DB
                        $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d",
                         array(bigintval($stats_id)), __FILE__, __LINE__);
 
                        // Output link for manually removing stats entry
-                       LOAD_TEMPLATE ("admin_settings_saved", false, "<A href=\"".URL."/modules.php?module=admin&amp;what=del_email&amp;pid=".$_GET['mid']."\">".ADMIN_REMOVE_STATS_ENTRY."</A>");
+                       LOAD_TEMPLATE("admin_settings_saved", false, "<A href=\"".URL."/modules.php?module=admin&amp;what=del_email&amp;pid=".bigintval($_GET['mid'])."\">".ADMIN_REMOVE_STATS_ENTRY."</A>");
                }
-       }
-        else
-       {
+       } else {
                // Mail already deleted!
                LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NORMAL_MAIL_ALREADY_DELETED);
        }
-}
- elseif (!empty($_GET['pid']))
-{
+} elseif (!empty($_GET['pid'])) {
        // Remove stats entries
        $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
         array(bigintval($_GET['pid'])), __FILE__, __LINE__);
        LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_USER_STATS_REMOVED);
-}
- elseif ((!empty($_GET['bid'])) && (EXT_IS_ACTIVE("bonus")))
-{
+} elseif ((!empty($_GET['bid'])) && (EXT_IS_ACTIVE("bonus"))) {
        // Load data from bonus mail
        $result = SQL_QUERY_ESC("SELECT id, subject, url, timestamp FROM "._MYSQL_PREFIX."_bonus WHERE id=%d",
         array(bigintval($_GET['bid'])), __FILE__, __LINE__);
-       list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result);
-       SQL_FREERESULT($result);
 
        // Delete mail only once
-       if ($id > 0)
-       {
+       if (SQL_NUMROWS($result) == 1) {
+               // Load data
+               list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
                // Delete bonus mail entirely from database
                $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
                 array(bigintval($_GET['bid'])), __FILE__, __LINE__);
@@ -133,18 +168,14 @@ ON s.pool_id=%d LIMIT 1",
 
                // Load template
                LOAD_TEMPLATE("admin_del_email_bonus");
-       }
-        else
-       {
+       } else {
                // Mail already deleted!
                LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_MAIL_ALREADY_DELETED);
        }
-}
- else
-{
+} else {
        // No mail orders fond
-       LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_WRONG_CALL);
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_WRONG_CALL);
 }
-CLOSE_TABLE();
+
 //
 ?>