public static function fetch($query, $ids)
 {
     $criteria = array();
     foreach ($query as $term) {
         $criteria[$term->name] = $term->toparam();
     }
     $criteria["ids"] = Braintree_CustomerSearch::ids()->in($ids)->toparam();
     $response = Braintree_Http::post('/customers/advanced_search', array('search' => $criteria));
     return Braintree_Util::extractattributeasarray($response['customers'], 'customer');
 }
 public function searchUserInBrainTree($objUser)
 {
     echo 'searchUserInBrainTree';
     //        $braintree_id = '12';
     $collection = Braintree_Customer::search([Braintree_CustomerSearch::id()->is($objUser->braintree_id), Braintree_CustomerSearch::addressFirstName()->is($objUser->full_name)]);
     //        $customer = Braintree_Customer::find($objUser->braintree_id);
     //        pr($customer);
     $arrUser = $collection->_ids;
     pr($arrUser);
 }
 public function fetch($query, $ids)
 {
     $criteria = array();
     foreach ($query as $term) {
         $criteria[$term->name] = $term->toparam();
     }
     $criteria["ids"] = Braintree_CustomerSearch::ids()->in($ids)->toparam();
     $path = $this->_config->merchantPath() . '/customers/advanced_search';
     $response = $this->_http->post($path, array('search' => $criteria));
     return Braintree_Util::extractattributeasarray($response['customers'], 'customer');
 }
 function test_createdAt()
 {
     $customer = Braintree_Customer::createNoValidate();
     $past = clone $customer->createdAt;
     $past->modify("-1 hour");
     $future = clone $customer->createdAt;
     $future->modify("+1 hour");
     $collection = Braintree_Customer::search(array(Braintree_CustomerSearch::id()->is($customer->id), Braintree_CustomerSearch::createdAt()->between($past, $future)));
     $this->assertEquals(1, $collection->maximumCount());
     $this->assertEquals($customer->id, $collection->firstItem()->id);
     $collection = Braintree_Customer::search(array(Braintree_CustomerSearch::id()->is($customer->id), Braintree_CustomerSearch::createdAt()->lessThanOrEqualTo($future)));
     $this->assertEquals(1, $collection->maximumCount());
     $this->assertEquals($customer->id, $collection->firstItem()->id);
     $collection = Braintree_Customer::search(array(Braintree_CustomerSearch::id()->is($customer->id), Braintree_CustomerSearch::createdAt()->greaterThanOrEqualTo($past)));
     $this->assertEquals(1, $collection->maximumCount());
     $this->assertEquals($customer->id, $collection->firstItem()->id);
 }
 function test_throwsIfNoOperatorNodeGiven()
 {
     $this->setExpectedException('InvalidArgumentException', 'Operator must be provided');
     Braintree_Customer::search(array(Braintree_CustomerSearch::creditCardExpirationDate()));
 }
 /**
  * Selects bulk of customers to process
  * 
  * @param Datetime $startDate
  * @param Datetime $endDate
  */
 protected function _selectBulk($startDate, $endDate = null)
 {
     if (is_null($endDate)) {
         $endDate = new Datetime();
     }
     try {
         $customers = Braintree_Customer::search(array(Braintree_CustomerSearch::createdAt()->between($startDate, $endDate)));
     } catch (Exception $e) {
         Mage::logException($e);
         $customers = false;
     }
     if ($customers) {
         if ($customers->maximumCount() == 0) {
             return;
         } else {
             if ($customers->maximumCount() >= self::BULK_MAX_SIZE) {
                 $this->_output('There are more than ' . self::BULK_MAX_SIZE . ' customers in interval between ' . $startDate->format('Y-m-d') . ' and ' . $endDate->format('Y-m-d') . '. Selecting smaller periods');
                 $customers = false;
             }
         }
     }
     if ($customers === false) {
         $median = clone $startDate;
         $interval = new DateInterval('P' . ceil($endDate->diff($startDate)->days / 2) . 'D');
         $median->add($interval);
         $this->_selectBulk($startDate, $median);
         $this->_selectBulk($median, $endDate);
     } else {
         $this->_processBulk($customers);
     }
 }
if (isset($_GET['action']) && $_GET['action'] == 'generateNewCustomer') {
    $faker = Faker\Factory::create();
    $firstName = $faker->firstName;
    $lastName = $faker->lastName;
    $createCustomer = Braintree_Customer::create(['firstName' => $firstName, 'lastName' => $lastName, 'company' => $faker->company, 'email' => $firstName . "." . $lastName . "@dummy.com", 'phone' => $faker->phoneNumber, 'fax' => $faker->phoneNumber]);
    if ($createCustomer->success) {
        echo '<div class="alert alert-success" role="alert">Customer "' . $firstName . " " . $lastName . '" is generated.</div>';
    } else {
        echo "<div class='alert alert-danger' role='alert'>{$createCustomer->message}</div>";
    }
}
// continue loading customers page
$now = new DateTime();
$past = clone $now;
$past = $past->modify("-5 month");
$customerCollection = Braintree_Customer::search([Braintree_CustomerSearch::createdAt()->between($past, $now)]);
?>

<div class="page-header">
  <h1>Customers <small>click payment method to charge</small></h1>
</div>

<a href="./customers.php?action=generateNewCustomer" class="btn btn-primary">Generate new customer</a>
<br/><br/>

<table class="table table-striped">
  <thead>
    <tr>
      <th>ID</th>
      <th>First Name</th>
      <th>Last Name</th>