function mail_expense($description, $amount, $type, $timestamp, $booker_userid, $groupid, $members, $eventid, $deposit = 0) { if (!preg_match("/(,|\\.)/", $amount)) { $amount .= ".00"; } elseif (preg_match("/,/", $amount)) { $amount = str_replace(",", ".", $amount); } $userList = array(); foreach ($members as $id) { $userList[$id] = get_user_profile($id); } $allgroupmembers = get_groupmembers($groupid, false, true); $groupdetails = get_groupdetails($groupid); $balancelist = array_sort(get_group_balance_list($groupdetails), 'unformatted_balance', SORT_DESC); if ($deposit == 0) { $p1 = date('l jS \\of F Y'); $p3 = number_format($amount, DECIMALS, DSEP, TSEP); $p4 = ''; if (!empty($eventid)) { $eventdetails = get_eventdetails($eventid); $p4 = " for event \"{$eventdetails['eventname']}\""; } $p5 = $description; $p7 = number_format($amount / count($members), DECIMALS, DSEP, TSEP); $message = "On {1} {2} booked an expense of € {3}{4} with description \"{5}\".<br /><br />"; $message .= "You were listed as a participant, together with {6}.<br /><br />"; $message .= "The costs per person are € {7} making your balance € {8} which comes to position {9} in the group. "; $message .= "The balance list is now: <br /><br />{10}"; $message .= "<br /><br /><a href=\"" . LOGIN_URL . "\">Going Dutch</a>"; $from = '*****@*****.**'; $from_name = 'Going Dutch'; $subject = "Going Dutch expense booked in group \"{$groupdetails['name']}\""; $subject = addslashes($subject); foreach ($userList as $user) { // skip user if prefs are not set if (!isset($user['name_format']) || !isset($user['email_notify'])) { continue; } if ($user['user_id'] == $booker_userid) { $p2 = 'you have'; } else { $p2 = format_name($user['name_format'], $userList[$booker_userid]['username'], $userList[$booker_userid]['realname']) . ' has'; } $others = ''; foreach ($members as $participant) { if ($participant != $user['user_id']) { $others .= ', ' . format_name($user['name_format'], $userList[$participant]['username'], $userList[$participant]['realname']); } } // $p6 = preg_replace('/(.*),/', '$1 and', trim($others, ', ')); //$text = preg_replace('/(.*),/','$1 and',$text) $p8 = $balancelist[$user['user_id']]['balance']; $i = 1; foreach ($balancelist as $key => $val) { if ($key == $user['user_id']) { break; } $i++; } $p9 = $i; $tablehtml = create_memberlist_html_table($balancelist, $allgroupmembers, $user['name_format'], SORT_DESC); $p10 = $tablehtml; $a = 1; $body = str_format($message, $p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9, $p10); $pp = $amount / count($members); $floatval = floatval($user['email_notify']); if ($user['email_notify'] != '-1' && $pp >= $floatval) { // exec($command, $output = array()); // smtpmailer($user['email'], $from, $from_name, $subject, $body, $replyto = '', $sendas='to'); $replyto = ''; $sendas = 'to'; $background_mailfile = dirname(__FILE__) . '/background_mailer.php'; //$output = '/var/log/test'; $output = '/dev/null'; $body = addslashes($body); $cmd = "/usr/bin/php5 {$background_mailfile} {$user['email']} {$from} \"{$from_name}\" \"{$subject}\" \"{$body}\" \"{$replyto}\" \"{$sendas}\""; //exec("/usr/bin/php {$background_mailfile} {$user['email']} {$from} {$from_name} {$subject} {$body} {$replyto} {$sendas} > {$ouput} &"); exec("{$cmd} > {$output} &"); //exec("/usr/bin/php {$background_mailfile} {$user['email']} {$from} \"{$from_name}\" \"{$subject}\" \"{$body}\" \"{$replyto}\" \"{$sendas}\" > {$output} &"); } } // // foreach ($members as $key => $value) { // // } //$mysqldate = date('Y-m-d H:i:s', $timestamp); $sql = "INSERT INTO expenses (type, user_id, group_id, description, amount, expense_date, event_id, timestamp, currency) \n VALUES ('{$type}', '{$userid}', '{$groupid}', '{$description}', '{$amount}', FROM_UNIXTIME({$timestamp}), {$eventid}, CURRENT_TIMESTAMP , '1')"; // if (!$result = mysql_query($sql)) { // return false; // } else { // $expenseid = mysql_insert_id(); // foreach ($members as $key => $value) { // $sql = "INSERT INTO users_expenses (`user_id` , `expense_id`) VALUES ('$value', '$expenseid')"; // if (!$result = mysql_query($sql)) { // $inserterror = true; // } // } // if ($inserterror) // return false; // return true; // } } else { // making a deposit // for each person, make an expense with only deposit holder ($userid) as recipient // first register deposit to get a deposit id // $sql = "INSERT INTO deposits (holder, description) VALUES ($userid, '$description')"; // if (!$result = mysql_query($sql)) { // return false; // } else { // $depositid = mysql_insert_id(); // } // // foreach ($members as $key => $value) { // $sql = "INSERT INTO expenses (type, user_id, group_id, description, amount, expense_date, event_id, timestamp, currency, deposit_id) // VALUES ('$type', '$value', '$groupid', '$description', '$amount', FROM_UNIXTIME($timestamp), $eventid, CURRENT_TIMESTAMP , '1', $depositid)"; // if (!$result = mysql_query($sql)) { // return false; // } else { // $expenseid = mysql_insert_id(); // $sql = "INSERT INTO users_expenses (`user_id` , `expense_id`) VALUES ('$userid', '$expenseid')"; // if (!$result = mysql_query($sql)) { // $inserterror = true; // } // } // } } if ($inserterror) { return false; } return true; }
$eventid = $_GET['eventid']; } else { fatal_error("No event specified"); } // Get group for expense $groupid = get_groupid_by_eventid($eventid); // get permisssions for group $permissions = group_permissions($groupid, $user->data['user_id']); if (!$permissions || !array_key_exists(5, $permissions)) { fatal_error("No permissions for this event"); } // get message if (isset($_GET['msg'])) { $message = get_msg($_GET['msg']); } $details = get_eventdetails($eventid); $expense_types = get_expense_types(); $members = get_groupmembers($groupid); $members_size = count($members); foreach ($details['members'] as $key => $value) { $emembers[] = $key; } switch ($mode) { case "show": $show = true; break; case "edit": if (array_key_exists(4, $permissions) || $details['organizerid'] == $user->data['user_id']) { $showmembers = true; $edit = true; } else {