1 | |
2 | type SageIntacct = { |
3 | token: string |
4 | } |
5 | |
6 | * Update an inventory document |
7 | * Updates an existing Inventory Control document by setting field values. |
8 | */ |
9 | export async function main( |
10 | auth: SageIntacct, |
11 | key: string, |
12 | documentName: string, |
13 | body: { |
14 | key?: string |
15 | id?: string |
16 | documentNumber?: string |
17 | documentType?: string |
18 | isPrinted?: false | true |
19 | subTotal?: string |
20 | total?: string |
21 | subtotalInTxnCurrency?: string |
22 | totalInTxnCurrency?: string |
23 | state?: |
24 | | 'draft' |
25 | | 'pending' |
26 | | 'closed' |
27 | | 'inProgress' |
28 | | 'converted' |
29 | | 'partiallyConverted' |
30 | | 'convertedByLine' |
31 | | 'partiallyConvertedByLine' |
32 | | 'exception' |
33 | referenceNumber?: string |
34 | memo?: string |
35 | exchangeRate?: { |
36 | date?: string |
37 | rate?: string |
38 | typeId?: string |
39 | typeName?: string |
40 | } |
41 | transactionDate?: string |
42 | lastPrintedDate?: string |
43 | isAdjustmentDocument?: false | true |
44 | baseCurrency?: string |
45 | txnCurrency?: string |
46 | txnDefinition?: { |
47 | href?: string |
48 | key?: string |
49 | id?: string |
50 | documentType?: string |
51 | txnDefinitionTemplateClass?: string |
52 | updatesInventory?: 'no' | 'quantity' | 'value' | 'quantityAndValue' |
53 | increaseOrDecreaseInventory?: 'increase' | 'decrease' |
54 | } |
55 | sourceDocument?: { key?: string; id?: string; href?: string } |
56 | attachment?: { key?: string; id?: string; href?: string } |
57 | printedBy?: { href?: string; key?: string; id?: string } |
58 | warehouse?: { |
59 | key?: string |
60 | id?: string |
61 | defaultWarehouse?: string |
62 | href?: string |
63 | } |
64 | href?: string |
65 | entity?: { key?: string; id?: string; name?: string; href?: string } |
66 | audit?: { |
67 | createdDateTime?: string |
68 | modifiedDateTime?: string |
69 | createdBy?: string |
70 | modifiedBy?: string |
71 | } & { createdDateTime?: string } |
72 | lines?: { |
73 | key?: string |
74 | id?: string |
75 | href?: string |
76 | documentType?: string |
77 | memo?: string |
78 | lineDescription?: string |
79 | unitOfMeasure?: { key?: string; id?: string; href?: string } |
80 | unitQuantity?: string |
81 | quantity?: string |
82 | quantityConverted?: string |
83 | quantityRemaining?: string |
84 | cost?: string |
85 | unitCost?: string |
86 | extendedCost?: string |
87 | totalCost?: string |
88 | lineNumber?: number |
89 | costMethod?: 'average' | 'standard' | 'FIFO' | 'LIFO' |
90 | txnCurrency?: string |
91 | baseCurrency?: string |
92 | conversionType?: 'quantity' | 'price' |
93 | convertedPrice?: string |
94 | trackingDetail?: { |
95 | key?: string |
96 | id?: string |
97 | href?: string |
98 | quantity?: string |
99 | serialNumber?: string |
100 | lotNumber?: string |
101 | expirationDate?: string |
102 | aisle?: { href?: string; key?: string; id?: string } |
103 | bin?: { href?: string; key?: string; id?: string } |
104 | row?: { href?: string; key?: string; id?: string } |
105 | item?: { key?: string; id?: string; href?: string } |
106 | componentItem?: { key?: string; id?: string; href?: string } |
107 | audit?: { |
108 | createdDateTime?: string |
109 | modifiedDateTime?: string |
110 | createdBy?: string |
111 | modifiedBy?: string |
112 | } |
113 | inventoryDocumentLine?: { |
114 | key?: string |
115 | id?: string |
116 | documentType?: string |
117 | href?: string |
118 | } |
119 | }[] |
120 | documentHeader?: { |
121 | href?: string |
122 | key?: string |
123 | id?: string |
124 | documentNumber?: string |
125 | documentType?: string |
126 | } |
127 | dimensions?: { |
128 | location?: { key?: string; id?: string; name?: string; href?: string } |
129 | department?: { |
130 | key?: string |
131 | id?: string |
132 | name?: string |
133 | href?: string |
134 | } |
135 | employee?: { key?: string; id?: string; name?: string; href?: string } |
136 | project?: { key?: string; id?: string; name?: string; href?: string } |
137 | customer?: { key?: string; id?: string; name?: string; href?: string } |
138 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
139 | item?: { key?: string; id?: string; name?: string; href?: string } |
140 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
141 | class?: { key?: string; id?: string; name?: string; href?: string } |
142 | task?: { id?: string; key?: string; name?: string; href?: string } |
143 | costType?: { id?: string; key?: string; name?: string; href?: string } |
144 | asset?: { id?: string; key?: string; name?: string; href?: string } |
145 | contract?: { id?: string; key?: string; name?: string; href?: string } |
146 | affiliateEntity?: { |
147 | key?: string |
148 | id?: string |
149 | href?: string |
150 | name?: string |
151 | } |
152 | } & { |
153 | location?: { key?: string; id?: string; href?: string } |
154 | department?: { key?: string; id?: string; href?: string } |
155 | warehouse?: { key?: string; id?: string; href?: string } |
156 | project?: { key?: string; id?: string; href?: string } |
157 | task?: { id?: string; key?: string; href?: string } |
158 | } |
159 | sourceDocument?: { |
160 | href?: string |
161 | id?: string |
162 | documentType?: string |
163 | key?: string |
164 | } |
165 | sourceDocumentLine?: { |
166 | href?: string |
167 | id?: string |
168 | key?: string |
169 | documentType?: string |
170 | } |
171 | audit?: { |
172 | createdDateTime?: string |
173 | modifiedDateTime?: string |
174 | createdBy?: string |
175 | modifiedBy?: string |
176 | } & { createdDateTime?: string } |
177 | status?: 'active' | 'inactive' |
178 | }[] |
179 | history?: { |
180 | key?: string |
181 | id?: string |
182 | href?: string |
183 | convertedFrom?: { |
184 | key?: string |
185 | id?: string |
186 | documentType?: string |
187 | href?: string |
188 | } |
189 | convertedTo?: { |
190 | key?: string |
191 | id?: string |
192 | documentType?: string |
193 | href?: string |
194 | } |
195 | inventoryDocument?: { |
196 | key?: string |
197 | id?: string |
198 | documentType?: string |
199 | href?: string |
200 | } |
201 | }[] |
202 | subtotals?: { |
203 | key?: string |
204 | id?: string |
205 | href?: string |
206 | description?: string |
207 | percentValue?: string |
208 | absoluteValue?: string |
209 | txnAbsoluteValue?: string |
210 | isValueEditable?: false | true |
211 | isPercentEditable?: false | true |
212 | total?: string |
213 | txnTotal?: string |
214 | documentLine?: { |
215 | href?: string |
216 | key?: string |
217 | id?: string |
218 | documentType?: string |
219 | } |
220 | dimensions?: { |
221 | location?: { key?: string; id?: string; name?: string; href?: string } |
222 | department?: { |
223 | key?: string |
224 | id?: string |
225 | name?: string |
226 | href?: string |
227 | } |
228 | employee?: { key?: string; id?: string; name?: string; href?: string } |
229 | project?: { key?: string; id?: string; name?: string; href?: string } |
230 | customer?: { key?: string; id?: string; name?: string; href?: string } |
231 | vendor?: { key?: string; id?: string; name?: string; href?: string } |
232 | item?: { key?: string; id?: string; name?: string; href?: string } |
233 | warehouse?: { key?: string; id?: string; name?: string; href?: string } |
234 | class?: { key?: string; id?: string; name?: string; href?: string } |
235 | task?: { id?: string; key?: string; name?: string; href?: string } |
236 | costType?: { id?: string; key?: string; name?: string; href?: string } |
237 | asset?: { id?: string; key?: string; name?: string; href?: string } |
238 | contract?: { id?: string; key?: string; name?: string; href?: string } |
239 | affiliateEntity?: { |
240 | key?: string |
241 | id?: string |
242 | href?: string |
243 | name?: string |
244 | } |
245 | } & { |
246 | location?: { key?: string; id?: string; href?: string } |
247 | department?: { key?: string; id?: string; href?: string } |
248 | } |
249 | documentHeader?: { |
250 | href?: string |
251 | key?: string |
252 | documentType?: string |
253 | id?: string |
254 | } |
255 | audit?: { |
256 | createdDateTime?: string |
257 | modifiedDateTime?: string |
258 | createdBy?: string |
259 | modifiedBy?: string |
260 | } |
261 | }[] |
262 | postingSummary?: { key?: string; id?: string; href?: string } |
263 | journalEntry?: { key?: string; id?: string; href?: string } |
264 | status?: 'active' | 'inactive' |
265 | } & { id?: {} } |
266 | ) { |
267 | const url = new URL( |
268 | `https://api.intacct.com/ia/api/v1/objects/inventory-control/document::${documentName}/${key}` |
269 | ) |
270 |
|
271 | const response = await fetch(url, { |
272 | method: 'PATCH', |
273 | headers: { |
274 | 'Content-Type': 'application/json', |
275 | Authorization: 'Bearer ' + auth.token |
276 | }, |
277 | body: JSON.stringify(body) |
278 | }) |
279 | if (!response.ok) { |
280 | const text = await response.text() |
281 | throw new Error(`${response.status} ${text}`) |
282 | } |
283 | return await response.json() |
284 | } |
285 |
|