1 | |
2 | type SageIntacct = { |
3 | token: string |
4 | } |
5 | |
6 | * Update an Order Entry document |
7 | * Updates an existing Order Entry document by setting field values. Any fields not provided remain unchanged. With Edit permissions to Order Entry transactions, most details for a transaction that has a state of Draft or Pending can be edited. |
8 |
|
9 |
|
10 | Permissions and other requirements |
11 |
|
12 | SubscriptionOrder Entry |
13 | User typeBusiness, Employee, Project Manager, Warehouse |
14 | PermissionsList, View, Edit Order Entry 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 | documentNumber?: string |
29 | documentType?: string |
30 | state?: |
31 | | 'submitted' |
32 | | 'approved' |
33 | | 'partiallyApproved' |
34 | | 'declined' |
35 | | 'draft' |
36 | | 'pending' |
37 | | 'closed' |
38 | | 'inProgress' |
39 | | 'converted' |
40 | | 'partiallyConverted' |
41 | | 'convertedByLine' |
42 | | 'partiallyConvertedByLine' |
43 | | 'exception' |
44 | isPrinted?: false | true |
45 | isBackordered?: false | true |
46 | subtotal?: string |
47 | subtotalInTxnCurrency?: string |
48 | total?: string |
49 | totalInTxnCurrency?: string |
50 | baseCurrency?: string |
51 | txnCurrency?: string |
52 | exchangeRate?: { |
53 | date?: string |
54 | rate?: string |
55 | typeId?: string |
56 | typeName?: string |
57 | } |
58 | txnDate?: string |
59 | dueDate?: string |
60 | isSystemGeneratedDocument?: false | true |
61 | postingDate?: string |
62 | referenceNumber?: string |
63 | notes?: string |
64 | memo?: string |
65 | contractID?: string |
66 | contractDescription?: string |
67 | paymentStatus?: 'paid' | 'partiallyPaid' | 'open' |
68 | invoiceDate?: string |
69 | customerPONumber?: string |
70 | trackingNumber?: string |
71 | shipByDate?: string |
72 | shippedDate?: string |
73 | serviceDeliveryDate?: string |
74 | cancelAfterDate?: string |
75 | doNotShipBeforeDate?: string |
76 | doNotShipAfterDate?: string |
77 | requestedShippingDate?: string |
78 | retainagePercent?: number |
79 | scope?: string |
80 | inclusions?: string |
81 | exclusions?: string |
82 | terms?: string |
83 | schedule?: { |
84 | scheduledStartDate?: string |
85 | scheduledCompletionDate?: string |
86 | actualStartDate?: string |
87 | actualCompletionDate?: string |
88 | revisedCompletionDate?: string |
89 | substantialCompletionDate?: string |
90 | noticeToProceedDate?: string |
91 | responseDueDate?: string |
92 | executedOnDate?: string |
93 | scheduleImpactNotes?: string |
94 | } |
95 | internalReference?: { |
96 | referenceNumber?: string |
97 | initiatedBy?: { key?: string; id?: string; name?: string; href?: string } |
98 | verbalApprovalBy?: { |
99 | key?: string |
100 | id?: string |
101 | name?: string |
102 | href?: string |
103 | } |
104 | issuedBy?: { key?: string; id?: string; name?: string; href?: string } |
105 | issuedOnDate?: string |
106 | approvedBy?: { key?: string; id?: string; name?: string; href?: string } |
107 | approvedOnDate?: string |
108 | signedBy?: { key?: string; id?: string; name?: string; href?: string } |
109 | signedOnDate?: string |
110 | source?: string |
111 | sourceReferenceNumber?: string |
112 | } |
113 | externalReference?: { |
114 | referenceNumber?: string |
115 | verbalApprovalBy?: { key?: string; id?: string; href?: string } |
116 | approvedBy?: { key?: string; id?: string; href?: string } |
117 | approvedOnDate?: string |
118 | signedBy?: { key?: string; id?: string; href?: string } |
119 | signedOnDate?: string |
120 | } |
121 | performanceBond?: { |
122 | isRequired?: false | true |
123 | isReceived?: false | true |
124 | amount?: string |
125 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
126 | } |
127 | paymentBond?: { |
128 | isRequired?: false | true |
129 | isReceived?: false | true |
130 | amount?: string |
131 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
132 | } |
133 | revision?: { |
134 | isDocumentChanged?: false | true |
135 | revisedTotal?: string |
136 | revisedSubTotal?: string |
137 | revisedTotalInTxnCurrency?: string |
138 | revisedSubTotalInTxnCurrency?: string |
139 | changeLogNumber?: number |
140 | } |
141 | relatedDocumentNumber?: string |
142 | postedChangesTotal?: string |
143 | projectContractBilling?: { |
144 | externalReferenceNumber?: string |
145 | description?: string |
146 | contractDate?: string |
147 | billingThroughDate?: string |
148 | billingApplicationNumber?: string |
149 | } |
150 | billingSummary?: { |
151 | originalContractAmount?: string |
152 | netChangesAmount?: string |
153 | revisedContractAmount?: string |
154 | balanceToFinishAmount?: string |
155 | lessPriorApplicationAmount?: string |
156 | currentDueAmount?: string |
157 | retainage?: { |
158 | previousBalanceAmount?: string |
159 | balanceAmount?: string |
160 | billedAmount?: string |
161 | heldAmount?: string |
162 | completedAmount?: string |
163 | storedMaterialsAmount?: string |
164 | } |
165 | billingTotals?: { |
166 | completedToDateAmount?: string |
167 | storedMaterialsAmount?: string |
168 | heldAmount?: string |
169 | heldToDateAmount?: string |
170 | retainageOnThisInvoiceAmount?: string |
171 | earnedLessRetainageAmount?: string |
172 | lessRetainageHeldAmount?: string |
173 | netChangesAmount?: string |
174 | netChangesAdditionAmount?: string |
175 | netChangesDeductionAmount?: string |
176 | } |
177 | totalChangesApprovedPriorMonth?: { |
178 | additionsAmount?: string |
179 | deductionsAmount?: string |
180 | } |
181 | totalChangesApprovedThisMonth?: { |
182 | additionsAmount?: string |
183 | deductionsAmount?: string |
184 | } |
185 | } |
186 | architect?: { key?: string; id?: string; href?: string } |
187 | projectContract?: { |
188 | key?: string |
189 | id?: string |
190 | name?: string |
191 | href?: string |
192 | } |
193 | contacts?: { |
194 | primary?: { key?: string; id?: string } |
195 | shipTo?: { key?: string; id?: string } |
196 | billTo?: { key?: string; id?: string } |
197 | } |
198 | shippingMethod?: { key?: string; id?: string; href?: string } |
199 | printedByUser?: { key?: string; id?: string; href?: string } |
200 | txnDefinition?: { key?: string; id?: string; href?: string } |
201 | sourceDocument?: { |
202 | key?: string |
203 | id?: string |
204 | documentType?: string |
205 | href?: string |
206 | } |
207 | customer?: { key?: string; id?: string; name?: string; href?: string } |
208 | contract?: { key?: string; id?: string; href?: string } |
209 | paymentTerm?: { href?: string; key?: string; id?: string } |
210 | audit?: { |
211 | createdDateTime?: string |
212 | modifiedDateTime?: string |
213 | createdBy?: string |
214 | modifiedBy?: string |
215 | } & { createdDateTime?: string } |
216 | entity?: { key?: string; id?: string; name?: string; href?: string } |
217 | status?: 'active' | 'inactive' |
218 | taxSolution?: { |
219 | key?: string |
220 | id?: string |
221 | href?: string |
222 | taxCalculationMethod?: 'noTax' | 'simpleTax' | 'advancedTax' | 'avaTax' | 'VAT' |
223 | showMultilineTax?: false | true |
224 | } |
225 | lines?: { |
226 | key?: string |
227 | id?: string |
228 | href?: string |
229 | documentType?: string |
230 | lineNumber?: number |
231 | item?: { key?: string; id?: string; href?: string } |
232 | itemAlias?: { key?: string; id?: string; href?: string } |
233 | memo?: string |
234 | priceCalculationMemo?: string |
235 | unit?: string |
236 | quantity?: string |
237 | unitQuantity?: string |
238 | unitPrice?: string |
239 | price?: string |
240 | quantityConverted?: string |
241 | retailPrice?: string |
242 | audit?: { |
243 | createdDateTime?: string |
244 | modifiedDateTime?: string |
245 | createdBy?: string |
246 | modifiedBy?: string |
247 | } |
248 | status?: 'active' | 'inactive' |
249 | costMethod?: 'standard' | 'average' | 'FIFO' | 'LIFO' |
250 | discountPercent?: string |
251 | multiplier?: number |
252 | sourceDocument?: { |
253 | key?: string |
254 | id?: string |
255 | documentType?: string |
256 | href?: string |
257 | } |
258 | sourceDocumentLine?: { |
259 | key?: string |
260 | id?: string |
261 | documentType?: string |
262 | href?: string |
263 | } |
264 | isPriceProrated?: false | true |
265 | discountMemo?: string |
266 | baseCurrency?: string |
267 | txnCurrency?: string |
268 | priceInTxnCurrency?: string |
269 | isBillable?: false | true |
270 | isBilled?: false | true |
271 | taxRate?: string |
272 | taxInBaseCurrency?: string |
273 | taxInTxnCurrency?: string |
274 | discount?: string |
275 | enableTax?: false | true |
276 | quantityRemaining?: string |
277 | conversionType?: 'quantity' | 'price' |
278 | dimensions?: { |
279 | location?: { key?: string; id?: string; name?: string; href?: string } |
280 | department?: { |
281 | key?: string |
282 | id?: string |
283 | name?: string |
284 | href?: string |
285 | } |
286 | employee?: { key?: string; id?: string; name?: string; href?: string } |
287 | project?: { key?: string; id?: string; name?: string; href?: string } |
288 | customer?: { key?: string; id?: string; name?: string; href?: string } |
289 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
290 | item?: { key?: string; id?: string; name?: string; href?: string } |
291 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
292 | class?: { key?: string; id?: string; name?: string; href?: string } |
293 | task?: { id?: string; key?: string; name?: string; href?: string } |
294 | costType?: { id?: string; key?: string; name?: string; href?: string } |
295 | asset?: { id?: string; key?: string; name?: string; href?: string } |
296 | contract?: { id?: string; key?: string; name?: string; href?: string } |
297 | affiliateEntity?: { |
298 | key?: string |
299 | id?: string |
300 | href?: string |
301 | name?: string |
302 | } |
303 | } & { |
304 | location?: { key?: string; id?: string; href?: string } |
305 | department?: { key?: string; id?: string; href?: string } |
306 | warehouse?: { key?: string; id?: string; href?: string } |
307 | project?: { key?: string; id?: string; href?: string } |
308 | task?: { id?: string; key?: string; href?: string } |
309 | } |
310 | itemRenewalTemplate?: { key?: string; id?: string; href?: string } |
311 | revenueRecognitionStartDate?: string |
312 | revenueRecognitionEndDate?: string |
313 | requestedShippingDate?: string |
314 | shipByDate?: string |
315 | pickTicketPrintedDate?: string |
316 | cancelAfterDate?: string |
317 | doNotShipBeforeDate?: string |
318 | doNotShipAfterDate?: string |
319 | shippedDate?: string |
320 | allowDropship?: false | true |
321 | allowBuyToOrder?: false | true |
322 | revision?: { |
323 | unitQuantity?: string |
324 | quantity?: string |
325 | unitValue?: string |
326 | value?: string |
327 | valueInTxnCurrency?: string |
328 | price?: string |
329 | unitPrice?: string |
330 | priceInTxnCurrency?: string |
331 | } |
332 | draft?: { |
333 | unitQuantity?: string |
334 | quantity?: string |
335 | price?: string |
336 | basePrice?: string |
337 | } |
338 | posted?: { quantity?: string; price?: string; basePrice?: string } |
339 | addedByChangeDocument?: false | true |
340 | servicePeriodStartDate?: string |
341 | servicePeriodEndDate?: string |
342 | projectContractBilling?: { |
343 | externalReferenceNumber?: string |
344 | description?: string |
345 | billingType?: 'progressBill' | 'timeAndMaterial' |
346 | contractLineValue?: string |
347 | priorApplicationAmount?: string |
348 | completedThisPeriodAmount?: string |
349 | storedMaterialsAmount?: string |
350 | completedToDateAmount?: string |
351 | completedToDatePercent?: string |
352 | balanceRemaining?: string |
353 | totalConvertedAmount?: string |
354 | totalRemainingAmount?: string |
355 | isSummarized?: false | true |
356 | } |
357 | retainage?: { |
358 | percentage?: string |
359 | baseAmountRetained?: string |
360 | txnAmountRetained?: string |
361 | isReleaseLine?: false | true |
362 | previousBalanceAmount?: string |
363 | billAmount?: string |
364 | balanceAmount?: string |
365 | extendedPriceNetAmount?: string |
366 | extendedBasePriceNetAmount?: string |
367 | } |
368 | isReverseConversion?: false | true |
369 | reverseConversion?: { |
370 | price?: string |
371 | quantity?: string |
372 | standardPrice?: string |
373 | standardQuantity?: string |
374 | } |
375 | relatedDocument?: { key?: string; id?: string; href?: string } |
376 | relatedDocumentLine?: { key?: string; id?: string; href?: string } |
377 | projectContract?: { |
378 | key?: string |
379 | id?: string |
380 | name?: string |
381 | href?: string |
382 | } |
383 | projectContractLine?: { |
384 | key?: string |
385 | id?: string |
386 | name?: string |
387 | href?: string |
388 | } |
389 | taxSchedule?: { key?: string; id?: string; href?: string } |
390 | buyToOrderContact?: { key?: string; id?: string } |
391 | trackingDetail?: { |
392 | key?: string |
393 | id?: string |
394 | href?: string |
395 | quantity?: string |
396 | serialNumber?: string |
397 | lotNumber?: string |
398 | expirationDate?: string |
399 | aisle?: { href?: string; key?: string; id?: string } |
400 | bin?: { href?: string; key?: string; id?: string } |
401 | row?: { href?: string; key?: string; id?: string } |
402 | item?: { key?: string; id?: string; href?: string } |
403 | audit?: { |
404 | createdDateTime?: string |
405 | modifiedDateTime?: string |
406 | createdBy?: string |
407 | modifiedBy?: string |
408 | } |
409 | orderEntryDocumentLine?: { |
410 | key?: string |
411 | id?: string |
412 | documentType?: string |
413 | href?: string |
414 | } |
415 | }[] |
416 | documentHeader?: { |
417 | key?: string |
418 | id?: string |
419 | documentType?: string |
420 | href?: string |
421 | } |
422 | lineSubtotals?: { |
423 | key?: string |
424 | id?: string |
425 | href?: string |
426 | description?: string |
427 | absoluteValue?: string |
428 | percentValue?: string |
429 | total?: string |
430 | txnAbsoluteValue?: string |
431 | txnTotal?: string |
432 | enableOverrideTax?: false | true |
433 | taxDetail?: { key?: string; id?: string; href?: string } |
434 | systemTaxDetail?: { key?: string; id?: string; href?: string } |
435 | dimensions?: { |
436 | location?: { |
437 | key?: string |
438 | id?: string |
439 | name?: string |
440 | href?: string |
441 | } |
442 | department?: { |
443 | key?: string |
444 | id?: string |
445 | name?: string |
446 | href?: string |
447 | } |
448 | employee?: { |
449 | key?: string |
450 | id?: string |
451 | name?: string |
452 | href?: string |
453 | } |
454 | project?: { key?: string; id?: string; name?: string; href?: string } |
455 | customer?: { |
456 | key?: string |
457 | id?: string |
458 | name?: string |
459 | href?: string |
460 | } |
461 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
462 | item?: { key?: string; id?: string; name?: string; href?: string } |
463 | warehouse?: { |
464 | key?: string |
465 | id?: string |
466 | name?: string |
467 | href?: string |
468 | } |
469 | class?: { key?: string; id?: string; name?: string; href?: string } |
470 | task?: { id?: string; key?: string; name?: string; href?: string } |
471 | costType?: { |
472 | id?: string |
473 | key?: string |
474 | name?: string |
475 | href?: string |
476 | } |
477 | asset?: { id?: string; key?: string; name?: string; href?: string } |
478 | contract?: { |
479 | id?: string |
480 | key?: string |
481 | name?: string |
482 | href?: string |
483 | } |
484 | affiliateEntity?: { |
485 | key?: string |
486 | id?: string |
487 | href?: string |
488 | name?: string |
489 | } |
490 | } & { |
491 | location?: { |
492 | key?: string |
493 | id?: string |
494 | name?: string |
495 | href?: string |
496 | } |
497 | department?: { |
498 | key?: string |
499 | id?: string |
500 | name?: string |
501 | href?: string |
502 | } |
503 | } |
504 | documentLine?: { |
505 | key?: string |
506 | id?: string |
507 | documentType?: string |
508 | href?: string |
509 | } |
510 | document?: { |
511 | key?: string |
512 | id?: string |
513 | documentType?: string |
514 | href?: string |
515 | } |
516 | status?: 'active' | 'inactive' |
517 | }[] |
518 | }[] |
519 | subtotals?: { |
520 | key?: string |
521 | id?: string |
522 | href?: string |
523 | description?: string |
524 | percentValue?: string |
525 | absoluteValue?: string |
526 | txnAbsoluteValue?: string |
527 | total?: string |
528 | txnTotal?: string |
529 | documentLine?: { |
530 | key?: string |
531 | documentType?: string |
532 | id?: string |
533 | href?: string |
534 | } |
535 | audit?: { |
536 | createdDateTime?: string |
537 | modifiedDateTime?: string |
538 | createdBy?: string |
539 | modifiedBy?: string |
540 | } |
541 | dimensions?: { |
542 | location?: { key?: string; id?: string; name?: string; href?: string } |
543 | department?: { |
544 | key?: string |
545 | id?: string |
546 | name?: string |
547 | href?: string |
548 | } |
549 | employee?: { key?: string; id?: string; name?: string; href?: string } |
550 | project?: { key?: string; id?: string; name?: string; href?: string } |
551 | customer?: { key?: string; id?: string; name?: string; href?: string } |
552 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
553 | item?: { key?: string; id?: string; name?: string; href?: string } |
554 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
555 | class?: { key?: string; id?: string; name?: string; href?: string } |
556 | task?: { id?: string; key?: string; name?: string; href?: string } |
557 | costType?: { id?: string; key?: string; name?: string; href?: string } |
558 | asset?: { id?: string; key?: string; name?: string; href?: string } |
559 | contract?: { id?: string; key?: string; name?: string; href?: string } |
560 | affiliateEntity?: { |
561 | key?: string |
562 | id?: string |
563 | href?: string |
564 | name?: string |
565 | } |
566 | } & { |
567 | location?: { key?: string; id?: string; href?: string } |
568 | department?: { key?: string; id?: string; href?: string } |
569 | } |
570 | documentHeader?: { |
571 | key?: string |
572 | id?: string |
573 | documentType?: string |
574 | href?: string |
575 | } |
576 | }[] |
577 | history?: { |
578 | key?: string |
579 | id?: string |
580 | href?: string |
581 | convertedFrom?: { |
582 | key?: string |
583 | id?: string |
584 | documentType?: string |
585 | href?: string |
586 | } |
587 | convertedTo?: { |
588 | key?: string |
589 | id?: string |
590 | documentType?: string |
591 | href?: string |
592 | } |
593 | orderEntryDocument?: { |
594 | key?: string |
595 | id?: string |
596 | documentType?: string |
597 | href?: string |
598 | } |
599 | }[] |
600 | } & { id?: {} } |
601 | ) { |
602 | const url = new URL( |
603 | `https://api.intacct.com/ia/api/v1/objects/order-entry/document::${documentName}/${key}` |
604 | ) |
605 |
|
606 | const response = await fetch(url, { |
607 | method: 'PATCH', |
608 | headers: { |
609 | 'Content-Type': 'application/json', |
610 | Authorization: 'Bearer ' + auth.token |
611 | }, |
612 | body: JSON.stringify(body) |
613 | }) |
614 | if (!response.ok) { |
615 | const text = await response.text() |
616 | throw new Error(`${response.status} ${text}`) |
617 | } |
618 | return await response.json() |
619 | } |
620 |
|