Exemplo n.º 1
0
/* This cronjob will send out donation reminder e-mails for every user
 * that hasn't received an e-mail in the past month. It will also 
 * re-generate statistics for every campaign, and store them in the
 * historical statistics logs.
 */
/* First, we will update the exchange rates. */
Currency::UpdateRates();
/* Then, we'll start out sending reminder e-mails. */
try {
    $sSubscriptions = Subscription::CreateFromQuery("SELECT * FROM subscriptions WHERE `Confirmed` = 1 AND `Active` = 1 AND (`LastEmail` IS NULL OR `LastEmail` < DATE_SUB(NOW(), INTERVAL 1 MONTH))");
} catch (NotFoundException $e) {
    $sSubscriptions = array();
}
foreach ($sSubscriptions as $sSubscription) {
    $sSubscription->SendPaymentRequest();
}
/* Now, we'll log a historical statistics snapshot for every campaign. */
try {
    $sCampaigns = Campaign::CreateFromQuery("SELECT * FROM campaigns");
    $found = true;
} catch (NotFoundException $e) {
    /* No campaigns are in the database yet. */
    $found = false;
}
if ($found) {
    foreach ($sCampaigns as $sCampaign) {
        $sCampaign->UpdateStatistics();
        $sStatisticsEntry = $sCampaign->CreateStatisticsEntry();
        $sStatisticsEntry->InsertIntoDatabase();
    }
}
Exemplo n.º 2
0
/*
 * ReDonate is more free software. It is licensed under the WTFPL, which
 * allows you to do pretty much anything with it, without having to
 * ask permission. Commercial use is allowed, and no attribution is
 * required. We do politely request that you share your modifications
 * to benefit other developers, but you are under no enforced
 * obligation to do so :)
 * 
 * Please read the accompanying LICENSE document for the full WTFPL
 * licensing text.
 */
if (!isset($_APP)) {
    die("Unauthorized.");
}
try {
    $sCampaign = Campaign::CreateFromQuery("SELECT * FROM campaigns WHERE `UrlName` = :UrlName", array(":UrlName" => $router->uParameters[1]), 5, true);
} catch (NotFoundException $e) {
    throw new RouterException("Campaign does not exist.");
}
if ($sCampaign->VerifyAdministratorAccess($_SESSION['user_id']) === false) {
    throw new RouterException("Not authorized to administrate this campaign.");
}
$sCampaign->UpdateStatistics();
$sPaymentMethods = array();
try {
    foreach (PaymentMethod::CreateFromQuery("SELECT * FROM payment_methods WHERE `CampaignId` = :CampaignId", array(":CampaignId" => $sCampaign->sId)) as $sPaymentMethod) {
        $sNewMethod = $sPaymentMethod->GetLogo();
        $sNewMethod['address'] = $sPaymentMethod->sAddress;
        $sNewMethod['id'] = $sPaymentMethod->sId;
        $sPaymentMethods[] = $sNewMethod;
    }
Exemplo n.º 3
0
 * to benefit other developers, but you are under no enforced
 * obligation to do so :)
 * 
 * Please read the accompanying LICENSE document for the full WTFPL
 * licensing text.
 */
if (!isset($_APP)) {
    die("Unauthorized.");
}
$sCampaigns = array();
$sPercentages = array();
$sTotals = array();
$sProjections = array();
$sSubscribers = array();
try {
    foreach (Campaign::CreateFromQuery("SELECT * FROM campaigns WHERE `OwnerId` = :UserId", array(":UserId" => $sCurrentUser->sId)) as $sCampaign) {
        $sCampaign->UpdateStatistics();
        $sPaymentMethods = array();
        try {
            foreach (PaymentMethod::CreateFromQuery("SELECT * FROM payment_methods WHERE `CampaignId` = :CampaignId", array(":CampaignId" => $sCampaign->sId)) as $sPaymentMethod) {
                $sPaymentMethods[] = $sPaymentMethod->GetLogo();
            }
        } catch (NotFoundException $e) {
            /* No payment methods...? */
        }
        if ($sCampaign->sHaveData) {
            $sPercentages[] = $sCampaign->sDonationRate;
            $sTotals[] = $sCampaign->sMonthlyTotal;
            $sProjections[] = $sCampaign->sMonthlyProjection;
        }
        $sSubscribers[] = $sCampaign->sSubscriberCount;