029364057183c32ed747190cd6823e954b3041b1
[mailer.git] / inc / modules / admin / what-del_email.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 02/12/2004 *
4  * ===================                          Last change: 02/27/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : what-del_email.php                               *
8  * -------------------------------------------------------------------- *
9  * Short description : Delete a bonus or normal mail                    *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Bonus- / Mitglied-Mail loeschen                  *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
17  * -------------------------------------------------------------------- *
18  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
19  * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
20  * For more information visit: http://www.mxchange.org                  *
21  *                                                                      *
22  * This program is free software; you can redistribute it and/or modify *
23  * it under the terms of the GNU General Public License as published by *
24  * the Free Software Foundation; either version 2 of the License, or    *
25  * (at your option) any later version.                                  *
26  *                                                                      *
27  * This program is distributed in the hope that it will be useful,      *
28  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
29  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
30  * GNU General Public License for more details.                         *
31  *                                                                      *
32  * You should have received a copy of the GNU General Public License    *
33  * along with this program; if not, write to the Free Software          *
34  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
35  * MA  02110-1301  USA                                                  *
36  ************************************************************************/
37
38 // Some security stuff...
39 if ((!defined('__SECURITY')) || (!isAdmin())) {
40         die();
41 } // END - if
42
43 // Add description as navigation point
44 addYouAreHereLink('admin', __FILE__);
45
46 // Init counter for deleted mails
47 $count = '0';
48
49 if (isGetRequestParameterSet('mid')) {
50         // Load email data
51         $result = SQL_QUERY_ESC("SELECT `id`, `sender`, `subject`, `url`, `timestamp`, `cat_id`, `payment_id` FROM `{?_MYSQL_PREFIX?}_pool` WHERE `id`=%s LIMIT 1",
52                 array(bigintval(getRequestParameter('mid'))), __FILE__, __LINE__);
53
54         // Delete mail only once
55         if (SQL_NUMROWS($result) == 1) {
56                 // Load data
57                 $content = SQL_FETCHARRAY($result);
58
59                 // Get points we shall pay back per mail
60                 $content['price'] = getPaymentPoints($content['payment_id'], 'price');
61                 // @TODO Unused: cat_id, payment_id
62
63                 // Prepare data for the template
64                 $content['timestamp'] = generateDateTime($content['timestamp'], 0);
65
66                 // Load template
67                 loadTemplate('admin_delete_email_normal', false, $content);
68
69                 // Load email template and send the email away
70                 $message_user = loadEmailTemplate('member_order_deleted', $content, $content['sender']);
71                 sendEmail($content['sender'], '{--MEMBER_ORDER_DELETED--}', $message_user);
72
73                 // Fetch right stats_id from pool
74                 $result_pool = SQL_QUERY_ESC("SELECT
75         s.id
76 FROM
77         `{?_MYSQL_PREFIX?}_user_stats` AS s
78 LEFT JOIN
79         `{?_MYSQL_PREFIX?}_pool` AS p
80 ON
81         s.pool_id=p.id
82 WHERE
83         s.`pool_id`=%s
84 LIMIT 1",
85                         array(bigintval(getRequestParameter('mid'))), __FILE__, __LINE__);
86                 if (SQL_NUMROWS($result_pool) == 1) {
87                         // Fetch stats id
88                         list($stats_id) = SQL_FETCHROW($result_pool);
89
90                         // Get all user links
91                         $links = countSumTotalData($stats_id, 'user_links', 'userid', 'stats_id', true);
92
93                         // Reset sent mails for recipient(s)
94                         reduceRecipientReceivedMails('stats_id', getRequestParameter('mid'), $links);
95
96                         // Calc total points and pay them back
97                         $totalPoints = $links * $content['price'];
98
99                         // Shall we pay the points back to the user?
100                         if ($totalPoints == 0) {
101                                 // No points repayed!
102                                 displayMessage('{--ADMIN_NO_POINTS_REPAYED--}');
103                         } elseif (getConfig('repay_deleted_mails') != 'SHRED') {
104                                 //* DEBUG: */ debugOutput($stats_id . ':' . $totalPoints . '/' . $links . '/' . $content['price']);
105                                 // Shall we payback to user or jackpot?
106                                 if (getConfig('repay_deleted_mails') == 'JACKPOT') {
107                                         // Set jackpot
108                                         $content['sender'] = '0';
109                                 } // END - if
110
111                                 // Pay back points
112                                 //* DEBUG: */ debugOutput('PAYBACK:'.$content['sender']);
113                                 addPointsDirectly('mail_deleted', $content['sender'], $totalPoints);
114
115                                 // Output message
116                                 if (getConfig('repay_deleted_mails') == 'REPAY') {
117                                         // Repayed
118                                         displayMessage(getMaskedMessage('ADMIN_POINTS_REPAYED',
119                                                 '{%pipe,translateComma=' . $totalPoints . '%}'
120                                         ));
121                                 } else {
122                                         // To jackpot
123                                         displayMessage(getMaskedMessage('ADMIN_POINTS_TO_JACKPOT',
124                                                 '{%pipe,translateComma=' . $totalPoints . '%}'
125                                         ));
126                                 }
127                         } else {
128                                 // Points shredded!
129                                 displayMessage(getMaskedMessage('ADMIN_POINTS_SHREDDED', '{%pipe,translateComma=' . $totalPoints . '%}'));
130                         }
131
132                         // Remove links from DB
133                         SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `stats_id`=%s",
134                                 array(bigintval($stats_id)), __FILE__, __LINE__);
135                         $count += SQL_AFFECTEDROWS();
136
137                         // Load template for link
138                         displayMessage('<a href="{%url=modules.php?module=admin&amp;what=del_email&amp;pid=' . bigintval(getRequestParameter('mid')) . '%}">{--ADMIN_REMOVE_STATS_ENTRY--}</a>');
139                 } // END - if
140
141                 // Free the result
142                 SQL_FREERESULT($result_pool);
143
144                 // Delete mail from queue
145                 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_pool` WHERE `id`=%s LIMIT 1",
146                         array(bigintval(getRequestParameter('mid'))), __FILE__, __LINE__);
147                 $count += SQL_AFFECTEDROWS();
148
149                 // Output link for manually removing stats entry
150                 outputHtml(getMaskedMessage('ADMIN_DELETED_MAILS_COUNT', $count));
151         } else {
152                 // Mail already deleted!
153                 displayMessage('{--ADMIN_NORMAL_MAIL_ALREADY_DELETED--}');
154         }
155
156         // Free result
157         SQL_FREERESULT($result);
158 } elseif (isGetRequestParameterSet('pid')) {
159         // Remove stats entries
160         SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `pool_id`=%s LIMIT 1",
161                 array(bigintval(getRequestParameter('pid'))), __FILE__, __LINE__);
162
163         // Output message
164         displayMessage('{--ADMIN_USER_STATS_REMOVED--}');
165 } elseif ((isGetRequestParameterSet('bid')) && (isExtensionActive('bonus'))) {
166         // Load data from bonus mail
167         $result = SQL_QUERY_ESC("SELECT `id`, `subject`, `url`, `timestamp`, `mails_sent` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
168                 array(bigintval(getRequestParameter('bid'))), __FILE__, __LINE__);
169
170         // Delete mail only once
171         if (SQL_NUMROWS($result) == 1) {
172                 // Load data
173                 $content = SQL_FETCHARRAY($result);
174
175                 // Reset sent mails for recipient(s)
176                 reduceRecipientReceivedMails('bonus_id', getRequestParameter('bid'), $content['mails_sent']);
177
178                 // Init counter for deleted mails
179                 $count = '0';
180
181                 // Delete bonus mail entirely from database
182                 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
183                         array(bigintval(getRequestParameter('bid'))), __FILE__, __LINE__);
184                 $count += SQL_AFFECTEDROWS();
185                 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `bonus_id`=%s",
186                         array(bigintval(getRequestParameter('bid'))), __FILE__, __LINE__);
187                 $count += SQL_AFFECTEDROWS();
188
189                 // Prepare data for the template
190                 $content['timestamp'] = generateDateTime($content['timestamp'], 0);
191                 $content['cnt']       = $count;
192
193                 // Load template
194                 loadTemplate('admin_delete_email_bonus', false, $content);
195         } else {
196                 // Mail already deleted!
197                 displayMessage('{--ADMIN_BONUS_MAIL_ALREADY_DELETED--}');
198         }
199
200         // Free result
201         SQL_FREERESULT($result);
202 } elseif ((isGetRequestParameterSet('nid')) && (isExtensionInstalledAndNewer('bonus', '0.8.7'))) {
203         // Load data from bonus mail
204         $result = SQL_QUERY_ESC("SELECT `id`, `subject`, `url`, `timestamp` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
205                 array(bigintval(getRequestParameter('nid'))), __FILE__, __LINE__);
206
207         // Delete mail only once
208         if (SQL_NUMROWS($result) == 1) {
209                 // Load data
210                 $content = SQL_FETCHARRAY($result);
211
212                 // Init counter for deleted mails
213                 $count = '0';
214
215                 // Delete bonus mail entirely from database
216                 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
217                         array(bigintval(getRequestParameter('nid'))), __FILE__, __LINE__);
218                 $count += SQL_AFFECTEDROWS();
219                 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `bonus_id`=%s",
220                         array(bigintval(getRequestParameter('nid'))), __FILE__, __LINE__);
221                 $count += SQL_AFFECTEDROWS();
222
223                 // Prepare data for the template
224                 $content['timestamp'] = generateDateTime($content['timestamp'], 0);
225                 $content['cnt']       = $count;
226
227                 // Load template
228                 loadTemplate('admin_delete_email_notify', false, $content);
229         } else {
230                 // Mail already deleted!
231                 displayMessage('{--ADMIN_NOTIFY_MAIL_ALREADY_DELETED--}');
232         }
233
234         // Free result
235         SQL_FREERESULT($result);
236 } else {
237         // No mail orders fond
238         displayMessage('{--ADMIN_WRONG_CALL--}');
239 }
240
241 // [EOF]
242 ?>