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