function saveTransaction($option)
{
    global $mainframe;
    $postRow = JRequest::get('post');
    $transaction = new CbodbTransaction($postRow['id']);
    $transaction->setAll($postRow);
    $msg = '';
    if (!isset($transaction->creditRate) || is_empty($transaction->creditRate)) {
        $transaction->creditRate = $transaction->getMemberCreditRate($transaction->memberID);
    }
    if ($transaction->getGranderTransactionType() == "Time") {
        // Time-based transaction: recalculate total time and credits
        $transaction->totalTime = calculateTotalTime($transaction->dateOpen, $transaction->dateClosed);
        $transaction->credits = calculateCredits($transaction->totalTime, $transaction->creditRate);
        $msg = "Total time: " . format_time_duration($transaction->totalTime) . ", Credits: {$transaction->credits}";
    }
    // added type 2 (Personal) to negative transaction type 2012.07.21 Bart McPherson Givecamp
    if ($transaction->type == 1001 || $transaction->type == 1003 || $transaction->type == 2) {
        /* This is a purchase - make sure credits are negative */
        if ($transaction->credits > 0) {
            $transaction->credits = -$transaction->credits;
        }
        CbodbItem::markTagAsSold($transaction->itemID);
        if ($transaction->type == 2) {
            $msg = "Total time: " . format_time_duration($transaction->totalTime) . ", Credits: {$transaction->credits}";
        }
    }
    if ($transaction->type == 1003) {
        /* this is a membership renewal - update the account */
        $member = new CbodbMember($transaction->memberID);
        if (strtotime($member->membershipExpire) < time()) {
            $member->membershipExpire = date("Y-m-d H:i:s", time() + 365 * 24 * 3600);
        } else {
            $member->membershipExpire = date("Y-m-d H:i:s", strtotime($member->membershipExpire) + 365 * 24 * 3600);
        }
        $member->isMember = 1;
        $member->saveData();
    }
    $transaction->saveData();
    $msg = "Transaction {$transaction->id} saved. " . $msg;
    // Going back to Show Transactions list
    // Saved the listing criteria as hidden form variables... use them to re-generate the previous view
    //$list_query_limit = $postRow['list_query_limit'] ? ('&limit=' . $postrow['list_query_limit']) : '';
    //$list_query_limitstart = $postRow['list_query_limitstart'] ? ('&limitstart=' . $postrow['list_query_limitstart']) : '';
    $list_query_member_id = $postRow['list_query_member_id'] ? '&member_id=' . $postrow['list_query_member_id'] : '';
    $list_query_dateStart = $postRow['list_query_dateStart'] ? '&dateStart=' . $postrow['list_query_dateStart'] : '';
    $list_query_dateEnd = $postRow['list_query_dateEnd'] ? '&dateEnd=' . $postrow['list_query_dateEnd'] : '';
    $mainframe->redirect('index.php?option=' . $option . '&task=transactions' . $list_query_member_id . $list_query_dateStart . $list_query_dateEnd, $msg);
}
示例#2
0
function loginMember($option)
{
    global $mainframe;
    $memberID = JRequest::getVar("memberID");
    $member = new CbodbMember($memberID);
    if (!$member->isLoggedIn()) {
        $transaction = new CbodbTransaction();
        $postrow = JRequest::get('post');
        $transaction->setAll($postrow);
        $loginType = JRequest::getVar("logintype");
        $transaction->dateOpen = date("Y-m-d H:i:s", time());
        foreach (HTML_cbodb::$cbodb_user_logintypes as $typeid => $typestring) {
            if (strcmp($loginType, $typestring) == 0) {
                $transaction->type = $typeid;
            }
        }
        if ($transaction->type == 1 || $transaction->type == 4) {
            // Volunteering or Staff
            $transaction->creditRate = $member->creditRate;
        } elseif ($transaction->type == 2) {
            // Personal Time: deduct
            $transaction->creditRate = -1 * $member->creditRate;
        }
        $transaction->saveData();
        $mainframe->redirect('index.php?option=' . $option . '&task=shop&key=3b767559374f5132236f6e68256b2529#top', 'You are logged in, thank you!');
    } else {
        $mainframe->redirect('index.php?option=' . $option . '&task=shop&key=3b767559374f5132236f6e68256b2529#top', 'You were already logged in!');
    }
}