From c642110dfbe6f4a5367026be4885a5290f38e273 Mon Sep 17 00:00:00 2001
From: pumpkinball <91833653+pumpkinball@users.noreply.github.com>
Date: Wed, 15 Feb 2023 15:39:04 +0000
Subject: [PATCH] GetFilesAssocCount added GetFullyPaidDate for Invoice added
---
 authorization.php   |  2 +-
 example.php         | 37 +++++++++++++++++++++++++++++++++----
 get.php             | 21 ++++++++++++++++++++-
 xero-sdk-ui/xero.js |  4 +++-
 4 files changed, 57 insertions(+), 7 deletions(-)
diff --git a/authorization.php b/authorization.php
index 62e4dc6..da02c72 100755
--- a/authorization.php
+++ b/authorization.php
@@ -23,7 +23,7 @@
 
 	
 	$options = [
-		'scope' => ['openid email profile offline_access assets projects accounting.settings accounting.transactions accounting.contacts accounting.journals.read accounting.reports.read accounting.attachments']
+		'scope' => ['openid email profile offline_access assets projects accounting.settings accounting.transactions accounting.contacts accounting.journals.read accounting.reports.read accounting.attachments files files.read']
 		// finance.accountingactivity.read finance.bankstatementsplus.read finance.cashvalidation.read finance.statements.read
 	];
 
diff --git a/example.php b/example.php
index 71406f9..d9cbbdd 100755
--- a/example.php
+++ b/example.php
@@ -319,6 +319,13 @@ public function getAccountAttachmentById($xeroTenantId,$apiInstance,$returnObj=f
 		}
 	}	
 
+	public function getAssociationsCount($xeroTenantId, $filesApi)
+	{
+		$objects = "0c0f2162-7f7e-4816-a5f7-1e24a6299d3c,0bdc1542-6987-42f8-97a3-eb453f5314b7";
+        $result = $filesApi->getAssociationsCount($xeroTenantId,$objects);
+		echo '
'; print_r($result); echo '
';
+	}
+
 	public function getAccounts($xeroTenantId,$apiInstance,$returnObj=false)
 	{
 		$str = '';
@@ -665,14 +672,18 @@ public function getContacts($xeroTenantId,$apiInstance,$returnObj=false)
 //[Contacts:Read]
 // read all contacts 
 $result = $apiInstance->getContacts($xeroTenantId); 		
-
 // filter by contacts by status
 $where = 'ContactStatus=="ACTIVE"';
-$result2 = $apiInstance->getContacts($xeroTenantId, null, $where); 
+$order = "Name ASC";
+$page = 0;
+$includeArchived = true;
+$summaryOnly = true;
+$searchTerm = "";
+$result2 = $apiInstance->getContacts($xeroTenantId, null, $where, $order,null,$page,$includeArchived,$summaryOnly,$searchTerm); 
 //[/Contacts:Read]
 
-		$str = $str . "Get Contacts Total: " . count($result->getContacts()) . "
";
-		$str = $str . "Get ACTIVE Contacts Total: " . count($result2->getContacts()) . "
";
+    $str = $str . "Get Contacts Total: " . count($result->getContacts()) . "
";
+	$str = $str . "Get ACTIVE Contacts Total: " . count($result2->getContacts()) . "
";
 
 		if($returnObj) {
 			return $result2;
@@ -2041,6 +2052,24 @@ public function getPayment($xeroTenantId,$apiInstance,$returnObj=false)
 		}
 	}
 
+	public function getPaymentFullyPaidDate($xeroTenantId,$apiInstance,$returnObj=false)
+	{
+		$str = '';
+
+//[PaymentsFullyPaidDate:Read]						
+//$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
+$invoiceId = '1300d9d0-cf54-4b1b-9a75-8b338a8ca7df';
+$invoice = $apiInstance->getInvoice($xeroTenantId,$invoiceId);
+//$invoice->setInvoiceID($invoiceId);
+var_dump( $invoice->getInvoices()[0]->getFullyPaidOnDateAsDate());
+$result = $invoice->getInvoices()[0]->getFullyPaidOnDateAsDate(); 
+		$str = print_r($result,true) . "
";
+//[/PaymentsFullyPaidDate:Read]	
+
+return $str;
+		
+	}
+
 	public function createPayment($xeroTenantId,$apiInstance,$returnObj=false)
 	{
 		$str = '';
diff --git a/get.php b/get.php
index 8442d4a..a5b9d07 100755
--- a/get.php
+++ b/get.php
@@ -75,6 +75,11 @@
 	    $config
 	);
 
+	$filesApi = new XeroAPI\XeroPHP\Api\FilesApi(
+	    new GuzzleHttp\Client(),
+	    $config
+	);
+
 	if (isset($_POST["endpoint"]) ) {
 		$endpoint = htmlspecialchars($_POST["endpoint"]);
 	} else {
@@ -278,7 +283,7 @@ function get_string_between($string, $start, $end){
 						echo $ex->createContacts($xeroTenantId,$accountingApi);
 						break;
 				        case "Read":
-				        echo $ex->getContact($xeroTenantId,$accountingApi);
+				        echo $ex->getContacts($xeroTenantId,$accountingApi);
 				        break;
 				        case "UpdateOrCreate":
 				        echo $ex->updateOrCreateContacts($xeroTenantId,$accountingApi);
@@ -416,6 +421,9 @@ function get_string_between($string, $start, $end){
 				    	case "Void":
 				        echo $ex->voidInvoice($xeroTenantId,$accountingApi);
 						break;
+						case "FullPaidDate":
+							echo $ex->getPaymentFullyPaidDate($xeroTenantId,$accountingApi);
+						break;	
 						default:
 					    echo $action . " action not supported in API";
 				    }
@@ -960,6 +968,17 @@ function get_string_between($string, $start, $end){
 				    }
 				 break;
 
+				 case "FilesAssocCount":
+				    switch($action)
+					{
+				    	case "Read":
+				        echo $ex->getAssociationsCount($xeroTenantId,$filesApi);
+				        break;
+				       	default:
+					    echo $action . " action not supported in API";
+				    }
+				 break;
+
 				 case "FinancialStatementBalanceSheet":
 				    switch($action)
 					{
diff --git a/xero-sdk-ui/xero.js b/xero-sdk-ui/xero.js
index 7e0b261..23beed5 100755
--- a/xero-sdk-ui/xero.js
+++ b/xero-sdk-ui/xero.js
@@ -34,7 +34,7 @@ var endpoint = [
     {name: "Currencies",action:[{name: "Create"},{name: "Read"}]},
     {name: "Employees",action:[{name: "Create"},{name: "CreateMulti"},{name: "Read"},{name: "Update"}]},
     {name: "ExpenseClaims",action:[{name: "Create"},{name: "Read"},{name: "Update"}]},
-    {name: "Invoices",action:[{name: "Create"},{name: "UpdateOrCreate"},{name: "ReadPdf"},{name: "Read"},{name: "Update"},{name: "Delete"},{name: "Void"}]},
+    {name: "Invoices",action:[{name: "Create"},{name: "UpdateOrCreate"},{name: "ReadPdf"},{name: "Read"},{name: "Update"},{name: "Delete"},{name: "Void"},{name: "FullPaidDate"}]},
     {name: "InvoiceReminders",action:[{name: "Read"}]},
     {name: "Items",action:[{name: "Create"},{name: "CreateMulti"},{name: "Read"},{name: "Update"},{name: "Delete"}]},
     {name: "Journals",action:[{name: "Read all"}, {name: "Read one by number"}]},
@@ -55,6 +55,8 @@ var endpoint = [
     {name: "TrackingCategories",action:[{name: "Create"},{name: "Read"},{name: "Update"},{name: "Delete"},{name: "Archive"}]},
     {name: "TrackingOptions",action:[{name: "Create"},{name: "Update"},{name: "Delete"}]},
     {name: "Users",action:[{name: "Read"}]},
+    {name: "---FILES---",action:[{name: ""}]},
+    {name: "FilesAssocCount",action:[{name: "Read"}]},
     {name: "---FIXED ASSETS---",action:[{name: ""}]},
     {name: "Asset",action:[{name: "Read"},{name: "Create"},{name: "Update"}]},
     {name: "Assets",action:[{name: "Read"}]},