1 | |
2 | type SageIntacct = { |
3 | token: string |
4 | } |
5 | |
6 | * Update a document line |
7 | * Updates an existing purchasing document line by setting field values. Any fields not provided remain unchanged. |
8 |
|
9 |
|
10 | Permissions and other requirements |
11 |
|
12 | SubscriptionPurchasing |
13 | User typeBusiness, Employee, Project Manager, Warehouse |
14 | PermissionsList, View, Edit Purchasing documents |
15 |
|
16 |
|
17 |
|
18 |
|
19 | */ |
20 | export async function main( |
21 | auth: SageIntacct, |
22 | documentName: string, |
23 | key: string, |
24 | body: { |
25 | key?: string |
26 | id?: string |
27 | href?: string |
28 | documentType?: string |
29 | lineNumber?: number |
30 | item?: { key?: string; id?: string; href?: string } |
31 | memo?: string |
32 | unit?: string |
33 | quantity?: string |
34 | unitQuantity?: string |
35 | unitPrice?: string |
36 | price?: string |
37 | quantityConverted?: string |
38 | retailPrice?: string |
39 | priceConverted?: string |
40 | quantityToleranceVariance?: string |
41 | priceToleranceVariance?: string |
42 | audit?: { |
43 | createdDateTime?: string |
44 | modifiedDateTime?: string |
45 | createdBy?: string |
46 | modifiedBy?: string |
47 | } |
48 | status?: 'active' | 'inactive' |
49 | costMethod?: 'standard' | 'average' | 'FIFO' | 'LIFO' |
50 | sourceDocument?: { |
51 | key?: string |
52 | id?: string |
53 | documentType?: string |
54 | href?: string |
55 | } |
56 | sourceDocumentLine?: { |
57 | key?: string |
58 | id?: string |
59 | documentType?: string |
60 | href?: string |
61 | } |
62 | baseCurrency?: string |
63 | txnCurrency?: string |
64 | priceInTxnCurrency?: string |
65 | isBillable?: false | true |
66 | isBilled?: false | true |
67 | taxRate?: string |
68 | taxInBaseCurrency?: string |
69 | taxInTxnCurrency?: string |
70 | discount?: string |
71 | enableTax?: false | true |
72 | quantityRemaining?: string |
73 | conversionType?: 'quantity' | 'price' |
74 | dimensions?: { |
75 | location?: { key?: string; id?: string; name?: string; href?: string } |
76 | department?: { key?: string; id?: string; name?: string; href?: string } |
77 | employee?: { key?: string; id?: string; name?: string; href?: string } |
78 | project?: { key?: string; id?: string; name?: string; href?: string } |
79 | customer?: { key?: string; id?: string; name?: string; href?: string } |
80 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
81 | item?: { key?: string; id?: string; name?: string; href?: string } |
82 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
83 | class?: { key?: string; id?: string; name?: string; href?: string } |
84 | task?: { id?: string; key?: string; name?: string; href?: string } |
85 | costType?: { id?: string; key?: string; name?: string; href?: string } |
86 | asset?: { id?: string; key?: string; name?: string; href?: string } |
87 | contract?: { id?: string; key?: string; name?: string; href?: string } |
88 | affiliateEntity?: { |
89 | key?: string |
90 | id?: string |
91 | href?: string |
92 | name?: string |
93 | } |
94 | } & { |
95 | location?: { key?: string; id?: string; href?: string } |
96 | department?: { key?: string; id?: string; href?: string } |
97 | warehouse?: { key?: string; id?: string; href?: string } |
98 | project?: { key?: string; id?: string; href?: string } |
99 | task?: { id?: string; key?: string; href?: string } |
100 | } |
101 | requestedShippingDate?: string |
102 | shipByDate?: string |
103 | cancelAfterDate?: string |
104 | doNotShipBeforeDate?: string |
105 | doNotShipAfterDate?: string |
106 | deliveryDueDate?: string |
107 | orderConfirmationDate?: string |
108 | allocation?: { key?: string; id?: string; href?: string } |
109 | trackingDetail?: { |
110 | key?: string |
111 | id?: string |
112 | href?: string |
113 | quantity?: string |
114 | serialNumber?: string |
115 | lotNumber?: string |
116 | expirationDate?: string |
117 | aisle?: { href?: string; key?: string; id?: string } |
118 | bin?: { href?: string; key?: string; id?: string } |
119 | row?: { href?: string; key?: string; id?: string } |
120 | item?: { key?: string; id?: string; href?: string } |
121 | audit?: { |
122 | createdDateTime?: string |
123 | modifiedDateTime?: string |
124 | createdBy?: string |
125 | modifiedBy?: string |
126 | } |
127 | purchasingDocumentLine?: { |
128 | key?: string |
129 | id?: string |
130 | documentType?: string |
131 | href?: string |
132 | } |
133 | }[] |
134 | documentHeader?: { |
135 | key?: string |
136 | id?: string |
137 | documentType?: string |
138 | href?: string |
139 | } |
140 | lineSubtotals?: { |
141 | key?: string |
142 | id?: string |
143 | href?: string |
144 | description?: string |
145 | absoluteValue?: string |
146 | percentValue?: string |
147 | total?: string |
148 | txnAbsoluteValue?: string |
149 | txnTotal?: string |
150 | enableOverrideTax?: false | true |
151 | taxDetail?: { key?: string; id?: string; href?: string } |
152 | systemTaxDetail?: { key?: string; id?: string; href?: string } |
153 | dimensions?: { |
154 | location?: { key?: string; id?: string; name?: string; href?: string } |
155 | department?: { |
156 | key?: string |
157 | id?: string |
158 | name?: string |
159 | href?: string |
160 | } |
161 | employee?: { key?: string; id?: string; name?: string; href?: string } |
162 | project?: { key?: string; id?: string; name?: string; href?: string } |
163 | customer?: { key?: string; id?: string; name?: string; href?: string } |
164 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
165 | item?: { key?: string; id?: string; name?: string; href?: string } |
166 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
167 | class?: { key?: string; id?: string; name?: string; href?: string } |
168 | task?: { id?: string; key?: string; name?: string; href?: string } |
169 | costType?: { id?: string; key?: string; name?: string; href?: string } |
170 | asset?: { id?: string; key?: string; name?: string; href?: string } |
171 | contract?: { id?: string; key?: string; name?: string; href?: string } |
172 | affiliateEntity?: { |
173 | key?: string |
174 | id?: string |
175 | href?: string |
176 | name?: string |
177 | } |
178 | } & { |
179 | location?: { key?: string; id?: string; name?: string; href?: string } |
180 | department?: { |
181 | key?: string |
182 | id?: string |
183 | name?: string |
184 | href?: string |
185 | } |
186 | } |
187 | documentLine?: { |
188 | key?: string |
189 | id?: string |
190 | documentType?: string |
191 | href?: string |
192 | } |
193 | document?: { |
194 | key?: string |
195 | id?: string |
196 | documentType?: string |
197 | href?: string |
198 | } |
199 | status?: 'active' | 'inactive' |
200 | }[] |
201 | } & { id?: {} } |
202 | ) { |
203 | const url = new URL( |
204 | `https://api.intacct.com/ia/api/v1/objects/purchasing/document-line::${documentName}/${key}` |
205 | ) |
206 |
|
207 | const response = await fetch(url, { |
208 | method: 'PATCH', |
209 | headers: { |
210 | 'Content-Type': 'application/json', |
211 | Authorization: 'Bearer ' + auth.token |
212 | }, |
213 | body: JSON.stringify(body) |
214 | }) |
215 | if (!response.ok) { |
216 | const text = await response.text() |
217 | throw new Error(`${response.status} ${text}`) |
218 | } |
219 | return await response.json() |
220 | } |
221 |
|