1 | |
2 | type SageIntacct = { |
3 | token: string |
4 | } |
5 | |
6 | * Update a rate table |
7 | * Updates an existing rate table by setting field values. Any fields not provided remain unchanged. |
8 | */ |
9 | export async function main( |
10 | auth: SageIntacct, |
11 | key: string, |
12 | body: { |
13 | key?: string |
14 | id?: string |
15 | name?: string |
16 | description?: string |
17 | location?: { key?: string; id?: string; name?: string; href?: string } |
18 | audit?: { |
19 | createdDateTime?: string |
20 | modifiedDateTime?: string |
21 | createdBy?: string |
22 | modifiedBy?: string |
23 | } |
24 | status?: 'active' | 'inactive' |
25 | entity?: { key?: string; id?: string; name?: string; href?: string } |
26 | timesheetLines?: { |
27 | key?: string |
28 | id?: string |
29 | rateTable?: { key?: string; id?: string; name?: string; href?: string } |
30 | href?: string |
31 | lineNumber?: number |
32 | description?: string |
33 | startDate?: string |
34 | markupPercent?: string |
35 | laborRate?: string |
36 | accumulationType?: { key?: string; id?: string; href?: string } |
37 | standardCostType?: { |
38 | key?: string |
39 | id?: string |
40 | name?: string |
41 | href?: string |
42 | } |
43 | standardTask?: { |
44 | key?: string |
45 | id?: string |
46 | name?: string |
47 | href?: string |
48 | } |
49 | employeePosition?: { |
50 | key?: string |
51 | id?: string |
52 | name?: string |
53 | href?: string |
54 | } |
55 | laborClass?: { key?: string; id?: string; name?: string; href?: string } |
56 | laborShift?: { key?: string; id?: string; name?: string; href?: string } |
57 | laborUnion?: { key?: string; id?: string; name?: string; href?: string } |
58 | timeType?: { key?: string; id?: string; name?: string; href?: string } |
59 | dimensions?: { |
60 | location?: { key?: string; id?: string; name?: string; href?: string } |
61 | department?: { |
62 | key?: string |
63 | id?: string |
64 | name?: string |
65 | href?: string |
66 | } |
67 | employee?: { key?: string; id?: string; name?: string; href?: string } |
68 | project?: { key?: string; id?: string; name?: string; href?: string } |
69 | customer?: { key?: string; id?: string; name?: string; href?: string } |
70 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
71 | item?: { key?: string; id?: string; name?: string; href?: string } |
72 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
73 | class?: { key?: string; id?: string; name?: string; href?: string } |
74 | task?: { id?: string; key?: string; name?: string; href?: string } |
75 | costType?: { id?: string; key?: string; name?: string; href?: string } |
76 | asset?: { id?: string; key?: string; name?: string; href?: string } |
77 | contract?: { id?: string; key?: string; name?: string; href?: string } |
78 | affiliateEntity?: { |
79 | key?: string |
80 | id?: string |
81 | href?: string |
82 | name?: string |
83 | } |
84 | } |
85 | audit?: { |
86 | createdDateTime?: string |
87 | modifiedDateTime?: string |
88 | createdBy?: string |
89 | modifiedBy?: string |
90 | } |
91 | }[] |
92 | purchasingLines?: { |
93 | key?: string |
94 | id?: string |
95 | rateTable?: { key?: string; id?: string; name?: string; href?: string } |
96 | href?: string |
97 | lineNumber?: number |
98 | description?: string |
99 | startDate?: string |
100 | markupPercent?: string |
101 | unitPrice?: string |
102 | accumulationType?: { key?: string; id?: string; href?: string } |
103 | standardCostType?: { |
104 | key?: string |
105 | id?: string |
106 | name?: string |
107 | href?: string |
108 | } |
109 | standardTask?: { |
110 | key?: string |
111 | id?: string |
112 | name?: string |
113 | href?: string |
114 | } |
115 | dimensions?: { |
116 | location?: { key?: string; id?: string; name?: string; href?: string } |
117 | department?: { |
118 | key?: string |
119 | id?: string |
120 | name?: string |
121 | href?: string |
122 | } |
123 | employee?: { key?: string; id?: string; name?: string; href?: string } |
124 | project?: { key?: string; id?: string; name?: string; href?: string } |
125 | customer?: { key?: string; id?: string; name?: string; href?: string } |
126 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
127 | item?: { key?: string; id?: string; name?: string; href?: string } |
128 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
129 | class?: { key?: string; id?: string; name?: string; href?: string } |
130 | task?: { id?: string; key?: string; name?: string; href?: string } |
131 | costType?: { id?: string; key?: string; name?: string; href?: string } |
132 | asset?: { id?: string; key?: string; name?: string; href?: string } |
133 | contract?: { id?: string; key?: string; name?: string; href?: string } |
134 | affiliateEntity?: { |
135 | key?: string |
136 | id?: string |
137 | href?: string |
138 | name?: string |
139 | } |
140 | } |
141 | audit?: { |
142 | createdDateTime?: string |
143 | modifiedDateTime?: string |
144 | createdBy?: string |
145 | modifiedBy?: string |
146 | } |
147 | }[] |
148 | accountsPayableLines?: { |
149 | key?: string |
150 | id?: string |
151 | rateTable?: { key?: string; id?: string; name?: string; href?: string } |
152 | href?: string |
153 | lineNumber?: number |
154 | description?: string |
155 | startDate?: string |
156 | markupPercent?: string |
157 | accumulationType?: { key?: string; id?: string; href?: string } |
158 | standardCostType?: { |
159 | key?: string |
160 | id?: string |
161 | name?: string |
162 | href?: string |
163 | } |
164 | standardTask?: { |
165 | key?: string |
166 | id?: string |
167 | name?: string |
168 | href?: string |
169 | } |
170 | dimensions?: { |
171 | location?: { key?: string; id?: string; name?: string; href?: string } |
172 | department?: { |
173 | key?: string |
174 | id?: string |
175 | name?: string |
176 | href?: string |
177 | } |
178 | employee?: { key?: string; id?: string; name?: string; href?: string } |
179 | project?: { key?: string; id?: string; name?: string; href?: string } |
180 | customer?: { key?: string; id?: string; name?: string; href?: string } |
181 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
182 | item?: { key?: string; id?: string; name?: string; href?: string } |
183 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
184 | class?: { key?: string; id?: string; name?: string; href?: string } |
185 | task?: { id?: string; key?: string; name?: string; href?: string } |
186 | costType?: { id?: string; key?: string; name?: string; href?: string } |
187 | asset?: { id?: string; key?: string; name?: string; href?: string } |
188 | contract?: { id?: string; key?: string; name?: string; href?: string } |
189 | affiliateEntity?: { |
190 | key?: string |
191 | id?: string |
192 | href?: string |
193 | name?: string |
194 | } |
195 | } |
196 | audit?: { |
197 | createdDateTime?: string |
198 | modifiedDateTime?: string |
199 | createdBy?: string |
200 | modifiedBy?: string |
201 | } |
202 | }[] |
203 | journalLines?: { |
204 | key?: string |
205 | id?: string |
206 | rateTable?: { key?: string; id?: string; name?: string; href?: string } |
207 | href?: string |
208 | lineNumber?: number |
209 | description?: string |
210 | startDate?: string |
211 | markupPercent?: string |
212 | accumulationType?: { key?: string; id?: string; href?: string } |
213 | standardCostType?: { |
214 | key?: string |
215 | id?: string |
216 | name?: string |
217 | href?: string |
218 | } |
219 | standardTask?: { |
220 | key?: string |
221 | id?: string |
222 | name?: string |
223 | href?: string |
224 | } |
225 | dimensions?: { |
226 | location?: { key?: string; id?: string; name?: string; href?: string } |
227 | department?: { |
228 | key?: string |
229 | id?: string |
230 | name?: string |
231 | href?: string |
232 | } |
233 | employee?: { key?: string; id?: string; name?: string; href?: string } |
234 | project?: { key?: string; id?: string; name?: string; href?: string } |
235 | customer?: { key?: string; id?: string; name?: string; href?: string } |
236 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
237 | item?: { key?: string; id?: string; name?: string; href?: string } |
238 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
239 | class?: { key?: string; id?: string; name?: string; href?: string } |
240 | task?: { id?: string; key?: string; name?: string; href?: string } |
241 | costType?: { id?: string; key?: string; name?: string; href?: string } |
242 | asset?: { id?: string; key?: string; name?: string; href?: string } |
243 | contract?: { id?: string; key?: string; name?: string; href?: string } |
244 | affiliateEntity?: { |
245 | key?: string |
246 | id?: string |
247 | href?: string |
248 | name?: string |
249 | } |
250 | } |
251 | audit?: { |
252 | createdDateTime?: string |
253 | modifiedDateTime?: string |
254 | createdBy?: string |
255 | modifiedBy?: string |
256 | } |
257 | }[] |
258 | creditCardLines?: { |
259 | key?: string |
260 | id?: string |
261 | rateTable?: { key?: string; id?: string; name?: string; href?: string } |
262 | href?: string |
263 | lineNumber?: number |
264 | description?: string |
265 | startDate?: string |
266 | markupPercent?: string |
267 | accumulationType?: { key?: string; id?: string; href?: string } |
268 | standardCostType?: { |
269 | key?: string |
270 | id?: string |
271 | name?: string |
272 | href?: string |
273 | } |
274 | standardTask?: { |
275 | key?: string |
276 | id?: string |
277 | name?: string |
278 | href?: string |
279 | } |
280 | dimensions?: { |
281 | location?: { key?: string; id?: string; name?: string; href?: string } |
282 | department?: { |
283 | key?: string |
284 | id?: string |
285 | name?: string |
286 | href?: string |
287 | } |
288 | employee?: { key?: string; id?: string; name?: string; href?: string } |
289 | project?: { key?: string; id?: string; name?: string; href?: string } |
290 | customer?: { key?: string; id?: string; name?: string; href?: string } |
291 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
292 | item?: { key?: string; id?: string; name?: string; href?: string } |
293 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
294 | class?: { key?: string; id?: string; name?: string; href?: string } |
295 | task?: { id?: string; key?: string; name?: string; href?: string } |
296 | costType?: { id?: string; key?: string; name?: string; href?: string } |
297 | asset?: { id?: string; key?: string; name?: string; href?: string } |
298 | contract?: { id?: string; key?: string; name?: string; href?: string } |
299 | affiliateEntity?: { |
300 | key?: string |
301 | id?: string |
302 | href?: string |
303 | name?: string |
304 | } |
305 | } |
306 | audit?: { |
307 | createdDateTime?: string |
308 | modifiedDateTime?: string |
309 | createdBy?: string |
310 | modifiedBy?: string |
311 | } |
312 | }[] |
313 | employeeExpenseLines?: { |
314 | key?: string |
315 | id?: string |
316 | rateTable?: { key?: string; id?: string; name?: string; href?: string } |
317 | href?: string |
318 | lineNumber?: number |
319 | description?: string |
320 | startDate?: string |
321 | markupPercent?: string |
322 | accumulationType?: { key?: string; id?: string; href?: string } |
323 | standardCostType?: { |
324 | key?: string |
325 | id?: string |
326 | name?: string |
327 | href?: string |
328 | } |
329 | standardTask?: { |
330 | key?: string |
331 | id?: string |
332 | name?: string |
333 | href?: string |
334 | } |
335 | dimensions?: { |
336 | location?: { key?: string; id?: string; name?: string; href?: string } |
337 | department?: { |
338 | key?: string |
339 | id?: string |
340 | name?: string |
341 | href?: string |
342 | } |
343 | employee?: { key?: string; id?: string; name?: string; href?: string } |
344 | project?: { key?: string; id?: string; name?: string; href?: string } |
345 | customer?: { key?: string; id?: string; name?: string; href?: string } |
346 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
347 | item?: { key?: string; id?: string; name?: string; href?: string } |
348 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
349 | class?: { key?: string; id?: string; name?: string; href?: string } |
350 | task?: { id?: string; key?: string; name?: string; href?: string } |
351 | costType?: { id?: string; key?: string; name?: string; href?: string } |
352 | asset?: { id?: string; key?: string; name?: string; href?: string } |
353 | contract?: { id?: string; key?: string; name?: string; href?: string } |
354 | affiliateEntity?: { |
355 | key?: string |
356 | id?: string |
357 | href?: string |
358 | name?: string |
359 | } |
360 | } |
361 | audit?: { |
362 | createdDateTime?: string |
363 | modifiedDateTime?: string |
364 | createdBy?: string |
365 | modifiedBy?: string |
366 | } |
367 | }[] |
368 | } & { id?: {} } |
369 | ) { |
370 | const url = new URL(`https://api.intacct.com/ia/api/v1/objects/construction/rate-table/${key}`) |
371 |
|
372 | const response = await fetch(url, { |
373 | method: 'PATCH', |
374 | headers: { |
375 | 'Content-Type': 'application/json', |
376 | Authorization: 'Bearer ' + auth.token |
377 | }, |
378 | body: JSON.stringify(body) |
379 | }) |
380 | if (!response.ok) { |
381 | const text = await response.text() |
382 | throw new Error(`${response.status} ${text}`) |
383 | } |
384 | return await response.json() |
385 | } |
386 |
|