-
Notifications
You must be signed in to change notification settings - Fork 250
/
Copy pathLineSample.php
103 lines (97 loc) · 3.46 KB
/
LineSample.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
//Replace the line with require "vendor/autoload.php" if you are using the Samples from outside of _Samples folder
include('../config.php');
use QuickBooksOnline\API\Core\ServiceContext;
use QuickBooksOnline\API\DataService\DataService;
use QuickBooksOnline\API\PlatformService\PlatformService;
use QuickBooksOnline\API\Core\Http\Serialization\XmlObjectSerializer;
use QuickBooksOnline\API\Facades\Invoice;
use QuickBooksOnline\API\Facades\Line;
// Prep Data Services
$dataService = DataService::Configure(array(
'auth_mode' => 'oauth2',
'ClientID' => "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
'ClientSecret' => "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
'accessTokenKey' => "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
'refreshTokenKey' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'QBORealmID' => "xxxxxxxxxxxxxxxxxxx",
'baseUrl' => "development"
));
$dataService->setLogLocation("/Users/hlu2/Desktop/newFolderForLog");
$dataService->setMinorVersion("8");
$lineArray = array();
// create three Lines
$i = 0;
for($i = 1; $i<= 3; $i ++){
$LineObj = Line::create([
"Id" => $i,
"LineNum" => $i,
"Description" => "Pest Control Services",
"Amount" => 35.0,
"DetailType" => "SalesItemLineDetail",
"SalesItemLineDetail" => [
"ItemRef" => [
"value" => "1",
"name" => "Pest Control"
],
"UnitPrice" => 35,
"Qty" => 1,
"TaxCodeRef" => [
"value" => "NON"
]
]
]);
$lineArray[] = $LineObj;
}
//Add a new Invoice
$theResourceObj = Invoice::create([
"Line" => $lineArray,
"CustomerRef"=> [
"value"=> "1"
],
"BillEmail" => [
"Address" => "Familiystore@intuit.com"
],
"BillEmailCc" => [
"Address" => "a@intuit.com"
],
"BillEmailBcc" => [
"Address" => "v@intuit.com"
]
]);
$resultingObj = $dataService->Add($theResourceObj);
$error = $dataService->getLastError();
if ($error) {
echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
echo "The Helper message is: " . $error->getOAuthHelperError() . "\n";
echo "The Response message is: " . $error->getResponseBody() . "\n";
}
else {
echo "Created Id={$resultingObj->Id}. Reconstructed response body:\n\n";
$xmlBody = XmlObjectSerializer::getPostXmlFromArbitraryEntity($resultingObj, $urlResource);
echo $xmlBody . "\n";
}
/*
Created Customer Id=801. Reconstructed response body:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Customer xmlns:ns0="http://schema.intuit.com/finance/v3">
<ns0:Id>801</ns0:Id>
<ns0:SyncToken>0</ns0:SyncToken>
<ns0:MetaData>
<ns0:CreateTime>2013-08-05T07:41:45-07:00</ns0:CreateTime>
<ns0:LastUpdatedTime>2013-08-05T07:41:45-07:00</ns0:LastUpdatedTime>
</ns0:MetaData>
<ns0:GivenName>GivenName21574516</ns0:GivenName>
<ns0:FullyQualifiedName>GivenName21574516</ns0:FullyQualifiedName>
<ns0:CompanyName>CompanyName426009111</ns0:CompanyName>
<ns0:DisplayName>GivenName21574516</ns0:DisplayName>
<ns0:PrintOnCheckName>CompanyName426009111</ns0:PrintOnCheckName>
<ns0:Active>true</ns0:Active>
<ns0:Taxable>true</ns0:Taxable>
<ns0:Job>false</ns0:Job>
<ns0:BillWithParent>false</ns0:BillWithParent>
<ns0:Balance>0</ns0:Balance>
<ns0:BalanceWithJobs>0</ns0:BalanceWithJobs>
<ns0:PreferredDeliveryMethod>Print</ns0:PreferredDeliveryMethod>
</ns0:Customer>
*/