Contact (lookup) is a Foreign key GUID in Invoice entity record. Without filtering the Contact value you are looking for, the query will result you random 10 Invoices from top.
Try to set the WHERE condition in your code.
For example:
To filter the Contact by its emailaddress1 attribute, the sample in github look like this:
$contactKey = new \AlexaCRM\CRMToolkit\KeyAttributes();
$contactKey->add( 'emailaddress1', $contactKeyValue );
Another example referring this, you can do something like below to filter the particular Parent Contact.
/* Check the ID or AlexaCRM\CRMToolkit\KeyAttributes to retrieve the entity values */
if ($IDorKeyAttributes != null) {
/* Set EntityValues if specified Entity ID */
if (is_string($IDorKeyAttributes) && self::isGuid($IDorKeyAttributes)) {
/* Set the ID of Entity record */
$this->setID($IDorKeyAttributes);
/* Get the raw XML data */
$rawSoapResponse = $this->client->retrieveRaw($this, $columnSet);
/* NOTE: ParseRetrieveResponse method of AlexaCRM\CRMToolkit\AlexaSDK_Entity class, not the AlexaCRM\CRMToolkit\AlexaSDK class */
$this->parseRetrieveResponse($this->client, $this->LogicalName, $rawSoapResponse);
} else {
if ($IDorKeyAttributes instanceof KeyAttributes) {
if (version_compare($this->client->organizationVersion, "7.1.0", "<")) {
throw new Exception('Entity ID must be a valid GUID for the organization version lower then 7.1.0');
}
/* Set the keyAttributes array */
$this->keyAttributes = $IDorKeyAttributes;
/* Add the KeyAttribute values to the entity object values */
foreach ($IDorKeyAttributes->getKeys() as $key => $attribute) {
$this->propertyValues[$key] = array("Value" => $attribute, "Changed" => true);
}
/* Get the raw XML data */
try {
$rawSoapResponse = $this->client->retrieveRaw($this, $columnSet);
/* NOTE: ParseRetrieveResponse method of AlexaCRM\CRMToolkit\AlexaSDK_Entity class, not the AlexaCRM\CRMToolkit\AlexaSDK class */
$this->parseExecuteRetrieveResponse($this->client, $this->LogicalName, $rawSoapResponse);
} catch (SoapFault $sf) {
$errorCode = $sf->faultcode;
// undocumented feature
if ($errorCode == '-2147088239') {
$this->exists = false;
}
/* ToDo: Return exception with user-friendly details, maybe KeyAttribute parameters invalid */
}
}
}
}
Note: Am not a php person, to help you I did some research.