PHP code example of macsidigital / laravel-xero
1. Go to this page and download the library: Download macsidigital/laravel-xero library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
macsidigital / laravel-xero example snippets php
MacsiDigital\Xero\Providers\XeroServiceProvider::class
bash
php artisan vendor:publish --provider="MacsiDigital\Xero\Providers\XeroServiceProvider"
php
$xero = new \MacsiDigital\Xero\Xero;
$xero->AccountingContact->functionName();
php
$xero = new \MacsiDigital\Xero\Xero;
$contacts = $xero->AccountingContact->all();
php
$xero = new \MacsiDigital\Xero\Xero;
$contacts = $xero->AccountingContact->where('Name', '=', 'Test Name')->get();
php
$xero = new \MacsiDigital\Xero\Xero;
$contact = $xero->AccountingContact->where('Name', '=', 'Test Name')->first();
php
$contact = $xero->AccountingContact->where('name', 'Test Name')->first();
if($contact == null){
$contact = $xero->AccountingContact->make([
'Name' => 'Test Name',
'FirstName' => 'First Name',
'LastName' => 'Last Name',
'EmailAddress' => '[email protected] ',
'IsCustomer' => true,
]);
$contact->addAddress($xero->AccountingAddress->make([
'AddressType' => 'POBOX',
'AddressLine1' => 'Test1',
'AddressLine2' => 'Test2',
'AddressLine3' => 'Test3',
'City' => 'City',
'PostalCode' => 'Test Code',
'Country' => 'Test Country',
]));
$contact->save();
}
$invoice = $xero->AccountingInvoice->make([
'Contact' => $contact,
]);
$invoice->addLineItem($xero->AccountingLineItem->make([
'Description' => 'Test Description',
'Quantity' => '1',
'UnitAmount' => '1234.56',
'AccountCode' => '200'
]));
$invoice->save();
php
namespace MacsiDigital\Xero;
use MacsiDigital\Xero\Support\Model;
class AccountingInvoice extends Model
{
const ENDPOINT = 'Invoices';
const NODE_NAME = 'Invoice';
const KEY_FIELD = 'InvoiceID';
protected $methods = ['get', 'post', 'put'];
protected $attributes = [
'Type' => 'ACCREC',
'Contact' => '',
'LineItems' => [],
'Date' => '',
'DueDate' => '',
'LineAmountTypes' => '',
'InvoiceNumber' => '',
'Reference' => '',
'BrandingThemeID' => '',
'Url' => '',
'CurrencyCode' => '',
'CurrencyRate' => '',
'Status' => '',
'SentToContact' => '',
'ExpectedPaymentDate' => '',
'PlannedPaymentDate' => '',
'SubTotal' => '',
'TotalTax' => '',
'Total' => '',
'TotalDiscount' => '',
'InvoiceID' => '',
'HasAttachments' => '',
'Payments' => [],
'Prepayments' => [],
'Overpayments' => [],
'AmountDue' => '',
'AmountPaid' => '',
'FullyPaidOnDate' => '',
'AmountCredited' => '',
'UpdatedDateUTC' => '',
'CreditNotes' => []
];
protected $relationships = [
'Contact' => '\MacsiDigital\Xero\Models\Accounting\Contact',
'LineItems' => '\MacsiDigital\Xero\Models\Accounting\LineItem',
'Payments' => '\MacsiDigital\Xero\Models\Accounting\Payment',
'Prepayments' => '\MacsiDigital\Xero\Models\Accounting\Prepayment',
'Overpayments' => '\MacsiDigital\Xero\Models\Accounting\Overpayment',
];
public function addLineItem($item)
{
$this->attributes['LineItems'][] = $item;
}
}