public function load($idString, $app = null)
 {
     //parse $idString
     $this->Id = $idString;
     $idArray = explode('/', $idString);
     $affiliateId = $idArray[0];
     $invoiceId = $idArray[1];
     $dateString = $idArray[2];
     $index = $idArray[3];
     $date = DateTime::createFromFormat(Infusionsoft_Service::apiDateFormat, $dateString);
     $dateString = $date->format(Infusionsoft_Service::apiDateFormat);
     $date->modify('+1 second');
     $dateAndOneSecondString = $date->format('Ymd\\TH:i:s');
     //This is the base method that returns a data array
     $commissions = Infusionsoft_APIAffiliateService::affCommissions($affiliateId, $dateString, $dateAndOneSecondString, $app);
     $commissionsInvoice = array();
     //commissions with matching invoice Id
     foreach ($commissions as $commission) {
         if ($commission->InvoiceId == $invoiceId) {
             $commissionsInvoice[] = $commission;
         }
     }
     if ($index >= 0 && $index < count($commissionsInvoice)) {
         $this->data = $commissionsInvoice[$index]->toArray();
     } else {
         throw new Infusionsoft_Exception("Invalid commission Id");
     }
 }
 public static function queryWithOrderBy($object, $queryData, $orderByField, $ascending = true, $limit = 1000, $month = 0, $returnFields = false, Infusionsoft_App $app = null)
 {
     //Set a hard date for earliest_month_to_query so that we don't get into infinite loops trying to find commissions in the 1700's (this happens when you sync an empty application)
     if ($month == 0) {
         $firstOrder = Infusionsoft_DataService::queryWithOrderBy(new Infusionsoft_Job(), array('Id' => '%'), 'Id', true, 1);
         if (!empty($firstOrder)) {
             self::$earliest_month_to_query = $firstOrder[0]->DateCreated;
         }
     }
     if (empty(self::$earliest_month_to_query)) {
         self::$earliest_month_to_query = '2013-01-01';
     }
     //Calculate beginning of this month
     $startDate = date('Y-m-01 00:00:00', strtotime(" - {$month} months"));
     $startDate = date(Infusionsoft_Service::apiDateFormat, strtotime($startDate));
     $endDate = date('Y-m-t 23:59:59', strtotime($startDate));
     $endDate = date(Infusionsoft_Service::apiDateFormat, strtotime($endDate));
     //get an array of all affiliates
     $affiliates = self::$affiliates_cache;
     if (empty($affiliates)) {
         $page = 0;
         do {
             $affiliatesPage = Infusionsoft_DataService::query(new Infusionsoft_Affiliate(), array('Id' => '%'), 1000, $page, array('Id'), $app);
             $page += 1;
             $affiliates = array_merge($affiliates, $affiliatesPage);
         } while (sizeof($affiliatesPage) >= 1000);
     }
     //Now get all of the commissions from each one
     $objects = array();
     while (count($objects) < $limit && $startDate >= self::$earliest_month_to_query) {
         foreach ($affiliates as $affiliate) {
             if (get_class($object) == 'Infusionsoft_Commission') {
                 $objects = array_merge($objects, Infusionsoft_APIAffiliateService::affCommissions($affiliate->Id, $startDate, $endDate, $app));
             } elseif (get_class($object) == 'Infusionsoft_Clawback') {
                 $objects = array_merge($objects, Infusionsoft_APIAffiliateService::affClawbacks($affiliate->Id, $startDate, $endDate, $app));
             }
         }
         $startDate = date('Y-m-d', strtotime($startDate . '- 1 month'));
         $endDate = date('Y-m-t 23:59:59', strtotime($startDate));
         $startDate = date(Infusionsoft_Service::apiDateFormat, strtotime($startDate));
         $endDate = date(Infusionsoft_Service::apiDateFormat, strtotime($endDate));
     }
     self::$orderByField = $orderByField;
     usort($objects, array('Infusionsoft_AffiliateDataService', 'sortCommissions'));
     return $objects;
 }
<form>
            affiliateIds: <input type="text" name="affiliateIds" value="<?php 
if (isset($_REQUEST['affiliateIds'])) {
    echo htmlspecialchars($_REQUEST['affiliateIds']);
}
?>
"><br/>
    <input type="submit">
<input type="hidden" name="go">
</form>
<?php 
include '../infusionsoft.php';
include 'testUtils.php';
if (isset($_REQUEST['go'])) {
    $out = Infusionsoft_APIAffiliateService::affRunningTotals($_REQUEST['affiliateIds']);
    var_dump($out);
}
}
?>
"><br/>
            calls: <input type="text" name="calls" value="<?php 
if (isset($_REQUEST['calls'])) {
    echo htmlspecialchars($_REQUEST['calls']);
}
?>
"><br/>
            totalTime: <input type="text" name="totalTime" value="<?php 
if (isset($_REQUEST['totalTime'])) {
    echo htmlspecialchars($_REQUEST['totalTime']);
}
?>
"><br/>
            averageTime: <input type="text" name="averageTime" value="<?php 
if (isset($_REQUEST['averageTime'])) {
    echo htmlspecialchars($_REQUEST['averageTime']);
}
?>
"><br/>
    <input type="submit">
<input type="hidden" name="go">
</form>
<?php 
include '../infusionsoft.php';
include 'testUtils.php';
if (isset($_REQUEST['go'])) {
    $out = Infusionsoft_APIAffiliateService::updatePhoneStats($_REQUEST['firstName'], $_REQUEST['lastName'], $_REQUEST['calls'], $_REQUEST['totalTime'], $_REQUEST['averageTime']);
    var_dump($out);
}
<form>
            affiliateIds: <input type="text" name="affiliateIds" value="<?php 
if (isset($_REQUEST['affiliateIds'])) {
    echo htmlspecialchars($_REQUEST['affiliateIds']);
}
?>
"><br/>
            filterStartDate: <input type="text" name="filterStartDate" value="<?php 
if (isset($_REQUEST['filterStartDate'])) {
    echo htmlspecialchars($_REQUEST['filterStartDate']);
}
?>
"><br/>
            filterEndDate: <input type="text" name="filterEndDate" value="<?php 
if (isset($_REQUEST['filterEndDate'])) {
    echo htmlspecialchars($_REQUEST['filterEndDate']);
}
?>
"><br/>
    <input type="submit">
<input type="hidden" name="go">
</form>
<?php 
include '../infusionsoft.php';
include 'testUtils.php';
if (isset($_REQUEST['go'])) {
    $out = Infusionsoft_APIAffiliateService::affSummary($_REQUEST['affiliateIds'], $_REQUEST['filterStartDate'], $_REQUEST['filterEndDate']);
    var_dump($out);
}
<form>
            affiliateId: <input type="text" name="affiliateId" value="<?php 
if (isset($_REQUEST['affiliateId'])) {
    echo htmlspecialchars($_REQUEST['affiliateId']);
}
?>
"><br/>
            filterStartDate: <input type="text" name="filterStartDate" value="<?php 
if (isset($_REQUEST['filterStartDate'])) {
    echo htmlspecialchars($_REQUEST['filterStartDate']);
}
?>
"><br/>
            filterEndDate: <input type="text" name="filterEndDate" value="<?php 
if (isset($_REQUEST['filterEndDate'])) {
    echo htmlspecialchars($_REQUEST['filterEndDate']);
}
?>
"><br/>
    <input type="submit">
<input type="hidden" name="go">
</form>
<?php 
include '../infusionsoft.php';
include 'testUtils.php';
if (isset($_REQUEST['go'])) {
    $out = Infusionsoft_APIAffiliateService::affPayouts($_REQUEST['affiliateId'], $_REQUEST['filterStartDate'], $_REQUEST['filterEndDate']);
    var_dump($out);
}