win32 to unix line delimiters changed
[mailer.git] / 0.2.1 / inc / modules / admin / what-list_payouts.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 05/08/2004 *
4  * ================                             Last change: 08/12/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : what-list_payouts.php                            *
8  * -------------------------------------------------------------------- *
9  * Short description : List member's payout requests                    *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Auflistung der Auszahlungsanfragen               *
12  * -------------------------------------------------------------------- *
13  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
18  * This program is free software; you can redistribute it and/or modify *
19  * it under the terms of the GNU General Public License as published by *
20  * the Free Software Foundation; either version 2 of the License, or    *
21  * (at your option) any later version.                                  *
22  *                                                                      *
23  * This program is distributed in the hope that it will be useful,      *
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
26  * GNU General Public License for more details.                         *
27  *                                                                      *
28  * You should have received a copy of the GNU General Public License    *
29  * along with this program; if not, write to the Free Software          *
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Some security stuff...
35 if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
36 {
37         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
38         require($INC);
39 }
40 // Add description as navigation point
41 ADD_DESCR("admin", basename(__FILE__));
42
43 if (!empty($_GET['pid']))
44 {
45         // First let's get the member's ID
46         $result = SQL_QUERY_ESC("SELECT userid, target_account, payout_total, payout_timestamp, password FROM "._MYSQL_PREFIX."_user_payouts WHERE id=%d LIMIT 1",
47          array($_GET['pid']), __FILE__, __LINE__);
48         list($uid, $tuid, $points, $tstamp, $tpass) = SQL_FETCHROW($result);
49         SQL_FREERESULT($result);
50
51         // Obtain some data
52         if (empty($_GET['task']) && (!empty($uid)) && ($uid > 0))
53         {
54                 // Get task ID from database
55                 $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE userid=%d AND task_type='PAYOUT_REQUEST' AND task_created='".$tstamp."' LIMIT 1",
56                  array(bigintval($uid)), __FILE__, __LINE__);
57                 list($task) = SQL_FETCHROW($result);
58                 SQL_FREERESULT($result);
59                 if (empty($task)) $task = "0";
60
61         }
62          elseif ((empty($uid)) || ($uid == "0"))
63         {
64                 // Cannot obtain member ID!
65                 LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_FAILED_OBTAIN_USERID);
66         }
67          else
68         {
69                 // Get task ID from URL
70                 $task = $_GET['task'];
71         }
72         if ((!empty($task)) && (!empty($uid)) && ($uid > 0))
73         {
74                 // Load user's data
75                 $result = SQL_QUERY_ESC("SELECT email, sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
76                  array(bigintval($uid)), __FILE__, __LINE__);
77                 list($email, $sex, $surname, $family) = SQL_FETCHROW($result);
78                 SQL_FREERESULT($result);
79
80                 // Konstante bauen
81                 define('PAYOUT_USERDATA_VALUE', "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".TRANSLATE_SEX($sex)." ".$surname." ".$family."</A>");
82
83                 if (($_GET['do'] == "accept") && (!empty($email)))
84                 {
85                         // Ok, now we can output the form or execute accepting
86                         if (isset($_POST['ok']))
87                         {
88                                 // Obtain payout type and other data
89                                 $result = SQL_QUERY_ESC("SELECT payout_id FROM "._MYSQL_PREFIX."_user_payouts WHERE id=%d LIMIT 1",
90                                  array(bigintval($_GET['pid'])), __FILE__, __LINE__);
91                                 list($ptype) = SQL_FETCHROW($result);
92                                 SQL_FREERESULT($result);
93
94                                 if (!empty($ptype))
95                                 {
96                                         // Obtain data from payout type
97                                         $result = SQL_QUERY_ESC("SELECT from_account, from_pass, engine_url, engine_ret_ok, engine_ret_failed, pass_enc, allow_url FROM "._MYSQL_PREFIX."_payout_types WHERE id=%d LIMIT 1",
98                                          array(bigintval($ptype)), __FILE__, __LINE__);
99                                         list($fuid, $fpass, $eurl, $eok, $failed, $eenc, $allow) = SQL_FETCHROW($result);
100                                         SQL_FREERESULT($result);
101
102                                         if (!empty($eurl))
103                                         {
104                                                 // Ok, run URL...
105                                                 $eurl = COMPILE_CODE($eurl);
106                                                 switch ($eenc)
107                                                 {
108                                                 case "md5":
109                                                         $fpass = md5($fpass);
110                                                         $tpass = md5($tpass);
111                                                         break;
112
113                                                 case "base64":
114                                                         $fpass = base64_encode($fpass);
115                                                         $tpass = base64_encode($tpass);
116                                                         break;
117                                                 }
118
119                                                 // Transfer variables...
120                                                 $eval = "\$URL = \"".$eurl."\";";
121                                                 $reason = urlencode(base64_encode(PAYOUT_REASON_PAYOUT));
122
123                                                 // Run code...
124                                                 eval($eval);
125
126                                                 // Execute transfer
127                                                 $ret = @file($URL);
128                                         }
129                                          else
130                                         {
131                                                 // No URL to run
132                                                 $ret[0] = $eok;
133                                         }
134                                         if ($ret[0] == $eok)
135                                         {
136                                                 // Clear task
137                                                 if ($task > 0)
138                                                 {
139                                                         $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
140                                                          array(bigintval($task)),__FILE__, __LINE__);
141                                                 }
142
143                                                 // Clear payout request
144                                                 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_payouts SET status='ACCEPTED' WHERE id=%d LIMIT 1",
145                                                  array(bigintval($_GET['pid'])), __FILE__, __LINE__);
146
147                                                 // Send out mail
148                                                 $msg = LOAD_EMAIL_TEMPLATE("member_payout_accepted", $_POST['text'], $uid);
149
150                                                 // Output message
151                                                 if ($allow == "Y")
152                                                 {
153                                                         // Banner / Textlink request
154                                                         LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_BANNER_ACCEPTED_NOTIFIED);
155                                                 }
156                                                  else
157                                                 {
158                                                         // Normal request
159                                                         LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_ACCEPTED_NOTIFIED);
160                                                 }
161
162                                                 // Finally send mail
163                                                 SEND_EMAIL($email, PAYOUT_ACCEPTED_SUBJECT, $msg);
164                                         }
165                                          else
166                                         {
167                                                 // Something goes wrong... :-(
168                                                 $content = implode("<BR>", $ret);
169                                                 LOAD_TEMPLATE("admin_payout_failed_transfer", false, $content);
170                                         }
171                                 }
172                                  else
173                                 {
174                                         // Cannot load payout id
175                                         OUTPUT_HTML ("<STRONG class=\"admin_failed\">".PAYOUT_FAILED_OBTAIN_PAYOUT_ID."</STRONG>");
176                                 }
177                         }
178                          else
179                         {
180                                 // Load template
181                                 LOAD_TEMPLATE("admin_payout_accept_form", false, $task);
182                         }
183                 }
184                  elseif (($_GET['do'] == "reject") && (!empty($email)))
185                 {
186                         // Ok, now we can output the form or execute rejecting
187                         if (isset($_POST['ok']))
188                         {
189                                 if ($task > 0)
190                                 {
191                                         // Clear task
192                                         $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
193                                          array(bigintval($task)), __FILE__, __LINE__);
194                                 }
195
196                                 // Clear payout request
197                                 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_payouts SET status='REJECTED' WHERE id=%d LIMIT 1",
198                                  array(bigintval($_GET['pid'])), __FILE__, __LINE__);
199
200                                 // Send out mail
201                                 $msg = LOAD_EMAIL_TEMPLATE("member_payout_rejected", $_POST['text'], $uid);
202
203                                 // Output message
204                                 LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_REJECTED_NOTIFIED);
205
206                                 // Finally send mail
207                                 SEND_EMAIL($email, PAYOUT_REJECTED_SUBJECT, $msg);
208                         }
209                          else
210                         {
211                                 // Load template
212                                 LOAD_TEMPLATE("admin_payout_reject_form", false, $task);
213                         }
214                 }
215                  else
216                 {
217                         // Cannot load user data
218                         LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_FAILED_OBTAIN_USERDATA);
219                 }
220         }
221          elseif((empty($task)) || ($task == "0"))
222         {
223                 // Failed loading task ID
224                 LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_FAILED_OBTAIN_TASK_ID);
225         }
226 }
227  else
228 {
229         if (empty($_GET['do'])) $_GET['do'] = "";
230         if ($_GET['do'] == "delete")
231         {
232                 // Delete all requests
233                 $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_payouts", __FILE__, __LINE__);
234         }
235
236         // Search for payouts
237         $result = SQL_QUERY("SELECT p.id, p.userid AS uid, p.payout_total, p.target_account, p.target_bank, t.type, p.payout_timestamp, p.status, t.allow_url AS allow, p.target_url AS url, p.link_text AS alt, p.banner_url AS banner
238 FROM "._MYSQL_PREFIX."_user_payouts AS p, "._MYSQL_PREFIX."_payout_types AS t
239 WHERE p.payout_id=t.id
240 ORDER BY p.payout_timestamp DESC", __FILE__, __LINE__);
241
242         if (SQL_NUMROWS($result) > 0)
243         {
244                 // List found payouts
245                 $OUT = ""; $SW = 2;
246                 while (list($pid, $uid, $total, $account, $bank, $type, $tstamp, $status, $allow, $url, $alt, $banner) = SQL_FETCHROW($result))
247                 {
248                         if ($status == "NEW")
249                         {
250                                 // Generate links for direct accepting and rejecting
251                                 $status = "<A href=\"".URL."/modules.php?module=admin&amp;what=list_payouts&amp;do=accept&amp;pid=".$pid."\">".PAYOUT_ACCEPT_PAYOUT."</A>&nbsp;|&nbsp;<A href=\"".URL."/modules.php?module=admin&amp;what=list_payouts&amp;do=reject&amp;pid=".$pid."\">".PAYOUT_REJECT_PAYOUT."</A>";
252                         }
253                          else
254                         {
255                                 // Translate status
256                                 $evl = "\$status = PAYOUT_STATUS_".strtoupper($status).";";
257                                 eval($evl);
258                                 $status = "<FONT class=\"admin_failed\">".$status."</FONT>";
259                         }
260
261                         // Nothing entered must be secured in member/what-payputs.php !
262                         if ($allow == "Y")
263                         {
264                                 // Banner/Textlink views/clicks request
265                                 if (!empty($banner))
266                                 {
267                                         // Prepare array for the banner
268                                         $content = array(
269                                                 'banner' => $banner,
270                                                 'alt'    => $alt,
271                                                 'url'    => $url,
272                                         );
273
274                                         // Load template for the banner
275                                         $account = LOAD_TEMPLATE("admin_list_payouts_banner", true, $content);
276                                 }
277                                  else
278                                 {
279                                         // Textlink
280                                         $content = array(
281                                                 'txt_link' => $alt,
282                                                 'txt_url'  => $url,
283                                         );
284                                         $account = LOAD_TEMPLATE("admin_list_payouts_txt", true, $content);
285                                 }
286
287                                 // Admins can addionally test the URL for framekillers
288                                 $bank = "<A href=\"".FRAMETESTER($url)."\" target=\"_blank\">".CLICK_HERE."</A>";
289                         }
290                          else
291                         {
292                                 // e-currency payout request
293                                 if (empty($account)) $account = "---";
294                                 if (empty($bank))    $bank    = "---";
295                         }
296
297                         // Remember data in array for the template
298                         $content = array(
299                                 'sw'      => $SW,
300                                 'ulink'   => ADMIN_USER_PROFILE_LINK($uid),
301                                 'ptype'   => TRANSLATE_COMMA($total)." ".COMPILE_CODE($type),
302                                 'account' => $account,
303                                 'bank'    => $bank,
304                                 'tstamp'  => MAKE_DATETIME($tstamp, "2"),
305                                 'status'  => $status,
306                         );
307
308                         // Add row and switch color
309                         $OUT .= LOAD_TEMPLATE("admin_list_payouts_row", true, $content);
310                         $SW = 3 - $SW;
311                 }
312
313                 // Free memory
314                 SQL_FREERESULT($result);
315                 define('__PAYOUT_ROWS', $OUT);
316
317                 // Load final template
318                 LOAD_TEMPLATE("admin_list_payouts");
319         }
320          else
321         {
322                 // No payout requests are sent so far
323                 LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_ADMIN_NO_REQUESTS_FOUND);
324         }
325 }
326 //
327 ?>