//native
type SageIntacct = {
token: string
}
/**
* Update an Order Entry document
* 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.
Permissions and other requirements
SubscriptionOrder Entry
User typeBusiness, Employee, Project Manager, Warehouse
PermissionsList, View, Edit Order Entry documents
*/
export async function main(
auth: SageIntacct,
documentName: string,
key: string,
body: {
key?: string
id?: string
href?: string
documentNumber?: string
documentType?: string
state?:
| 'submitted'
| 'approved'
| 'partiallyApproved'
| 'declined'
| 'draft'
| 'pending'
| 'closed'
| 'inProgress'
| 'converted'
| 'partiallyConverted'
| 'convertedByLine'
| 'partiallyConvertedByLine'
| 'exception'
isPrinted?: false | true
isBackordered?: false | true
subtotal?: string
subtotalInTxnCurrency?: string
total?: string
totalInTxnCurrency?: string
baseCurrency?: string
txnCurrency?: string
exchangeRate?: {
date?: string
rate?: string
typeId?: string
typeName?: string
}
txnDate?: string
dueDate?: string
isSystemGeneratedDocument?: false | true
postingDate?: string
referenceNumber?: string
notes?: string
memo?: string
contractID?: string
contractDescription?: string
paymentStatus?: 'paid' | 'partiallyPaid' | 'open'
invoiceDate?: string
customerPONumber?: string
trackingNumber?: string
shipByDate?: string
shippedDate?: string
serviceDeliveryDate?: string
cancelAfterDate?: string
doNotShipBeforeDate?: string
doNotShipAfterDate?: string
requestedShippingDate?: string
retainagePercent?: number
scope?: string
inclusions?: string
exclusions?: string
terms?: string
schedule?: {
scheduledStartDate?: string
scheduledCompletionDate?: string
actualStartDate?: string
actualCompletionDate?: string
revisedCompletionDate?: string
substantialCompletionDate?: string
noticeToProceedDate?: string
responseDueDate?: string
executedOnDate?: string
scheduleImpactNotes?: string
}
internalReference?: {
referenceNumber?: string
initiatedBy?: { key?: string; id?: string; name?: string; href?: string }
verbalApprovalBy?: {
key?: string
id?: string
name?: string
href?: string
}
issuedBy?: { key?: string; id?: string; name?: string; href?: string }
issuedOnDate?: string
approvedBy?: { key?: string; id?: string; name?: string; href?: string }
approvedOnDate?: string
signedBy?: { key?: string; id?: string; name?: string; href?: string }
signedOnDate?: string
source?: string
sourceReferenceNumber?: string
}
externalReference?: {
referenceNumber?: string
verbalApprovalBy?: { key?: string; id?: string; href?: string }
approvedBy?: { key?: string; id?: string; href?: string }
approvedOnDate?: string
signedBy?: { key?: string; id?: string; href?: string }
signedOnDate?: string
}
performanceBond?: {
isRequired?: false | true
isReceived?: false | true
amount?: string
vendor?: { key?: string; id?: string; name?: string; href?: string }
}
paymentBond?: {
isRequired?: false | true
isReceived?: false | true
amount?: string
vendor?: { key?: string; id?: string; name?: string; href?: string }
}
revision?: {
isDocumentChanged?: false | true
revisedTotal?: string
revisedSubTotal?: string
revisedTotalInTxnCurrency?: string
revisedSubTotalInTxnCurrency?: string
changeLogNumber?: number
}
relatedDocumentNumber?: string
postedChangesTotal?: string
projectContractBilling?: {
externalReferenceNumber?: string
description?: string
contractDate?: string
billingThroughDate?: string
billingApplicationNumber?: string
}
billingSummary?: {
originalContractAmount?: string
netChangesAmount?: string
revisedContractAmount?: string
balanceToFinishAmount?: string
lessPriorApplicationAmount?: string
currentDueAmount?: string
retainage?: {
previousBalanceAmount?: string
balanceAmount?: string
billedAmount?: string
heldAmount?: string
completedAmount?: string
storedMaterialsAmount?: string
}
billingTotals?: {
completedToDateAmount?: string
storedMaterialsAmount?: string
heldAmount?: string
heldToDateAmount?: string
retainageOnThisInvoiceAmount?: string
earnedLessRetainageAmount?: string
lessRetainageHeldAmount?: string
netChangesAmount?: string
netChangesAdditionAmount?: string
netChangesDeductionAmount?: string
}
totalChangesApprovedPriorMonth?: {
additionsAmount?: string
deductionsAmount?: string
}
totalChangesApprovedThisMonth?: {
additionsAmount?: string
deductionsAmount?: string
}
}
architect?: { key?: string; id?: string; href?: string }
projectContract?: {
key?: string
id?: string
name?: string
href?: string
}
contacts?: {
primary?: { key?: string; id?: string }
shipTo?: { key?: string; id?: string }
billTo?: { key?: string; id?: string }
}
shippingMethod?: { key?: string; id?: string; href?: string }
printedByUser?: { key?: string; id?: string; href?: string }
txnDefinition?: { key?: string; id?: string; href?: string }
sourceDocument?: {
key?: string
id?: string
documentType?: string
href?: string
}
customer?: { key?: string; id?: string; name?: string; href?: string }
contract?: { key?: string; id?: string; href?: string }
paymentTerm?: { href?: string; key?: string; id?: string }
audit?: {
createdDateTime?: string
modifiedDateTime?: string
createdBy?: string
modifiedBy?: string
} & { createdDateTime?: string }
entity?: { key?: string; id?: string; name?: string; href?: string }
status?: 'active' | 'inactive'
taxSolution?: {
key?: string
id?: string
href?: string
taxCalculationMethod?: 'noTax' | 'simpleTax' | 'advancedTax' | 'avaTax' | 'VAT'
showMultilineTax?: false | true
}
lines?: {
key?: string
id?: string
href?: string
documentType?: string
lineNumber?: number
item?: { key?: string; id?: string; href?: string }
itemAlias?: { key?: string; id?: string; href?: string }
memo?: string
priceCalculationMemo?: string
unit?: string
quantity?: string
unitQuantity?: string
unitPrice?: string
price?: string
quantityConverted?: string
retailPrice?: string
audit?: {
createdDateTime?: string
modifiedDateTime?: string
createdBy?: string
modifiedBy?: string
}
status?: 'active' | 'inactive'
costMethod?: 'standard' | 'average' | 'FIFO' | 'LIFO'
discountPercent?: string
multiplier?: number
sourceDocument?: {
key?: string
id?: string
documentType?: string
href?: string
}
sourceDocumentLine?: {
key?: string
id?: string
documentType?: string
href?: string
}
isPriceProrated?: false | true
discountMemo?: string
baseCurrency?: string
txnCurrency?: string
priceInTxnCurrency?: string
isBillable?: false | true
isBilled?: false | true
taxRate?: string
taxInBaseCurrency?: string
taxInTxnCurrency?: string
discount?: string
enableTax?: false | true
quantityRemaining?: string
conversionType?: 'quantity' | 'price'
dimensions?: {
location?: { key?: string; id?: string; name?: string; href?: string }
department?: {
key?: string
id?: string
name?: string
href?: string
}
employee?: { key?: string; id?: string; name?: string; href?: string }
project?: { key?: string; id?: string; name?: string; href?: string }
customer?: { key?: string; id?: string; name?: string; href?: string }
vendor?: { key?: string; id?: string; name?: string; href?: string }
item?: { key?: string; id?: string; name?: string; href?: string }
warehouse?: { key?: string; id?: string; name?: string; href?: string }
class?: { key?: string; id?: string; name?: string; href?: string }
task?: { id?: string; key?: string; name?: string; href?: string }
costType?: { id?: string; key?: string; name?: string; href?: string }
asset?: { id?: string; key?: string; name?: string; href?: string }
contract?: { id?: string; key?: string; name?: string; href?: string }
affiliateEntity?: {
key?: string
id?: string
href?: string
name?: string
}
} & {
location?: { key?: string; id?: string; href?: string }
department?: { key?: string; id?: string; href?: string }
warehouse?: { key?: string; id?: string; href?: string }
project?: { key?: string; id?: string; href?: string }
task?: { id?: string; key?: string; href?: string }
}
itemRenewalTemplate?: { key?: string; id?: string; href?: string }
revenueRecognitionStartDate?: string
revenueRecognitionEndDate?: string
requestedShippingDate?: string
shipByDate?: string
pickTicketPrintedDate?: string
cancelAfterDate?: string
doNotShipBeforeDate?: string
doNotShipAfterDate?: string
shippedDate?: string
allowDropship?: false | true
allowBuyToOrder?: false | true
revision?: {
unitQuantity?: string
quantity?: string
unitValue?: string
value?: string
valueInTxnCurrency?: string
price?: string
unitPrice?: string
priceInTxnCurrency?: string
}
draft?: {
unitQuantity?: string
quantity?: string
price?: string
basePrice?: string
}
posted?: { quantity?: string; price?: string; basePrice?: string }
addedByChangeDocument?: false | true
servicePeriodStartDate?: string
servicePeriodEndDate?: string
projectContractBilling?: {
externalReferenceNumber?: string
description?: string
billingType?: 'progressBill' | 'timeAndMaterial'
contractLineValue?: string
priorApplicationAmount?: string
completedThisPeriodAmount?: string
storedMaterialsAmount?: string
completedToDateAmount?: string
completedToDatePercent?: string
balanceRemaining?: string
totalConvertedAmount?: string
totalRemainingAmount?: string
isSummarized?: false | true
}
retainage?: {
percentage?: string
baseAmountRetained?: string
txnAmountRetained?: string
isReleaseLine?: false | true
previousBalanceAmount?: string
billAmount?: string
balanceAmount?: string
extendedPriceNetAmount?: string
extendedBasePriceNetAmount?: string
}
isReverseConversion?: false | true
reverseConversion?: {
price?: string
quantity?: string
standardPrice?: string
standardQuantity?: string
}
relatedDocument?: { key?: string; id?: string; href?: string }
relatedDocumentLine?: { key?: string; id?: string; href?: string }
projectContract?: {
key?: string
id?: string
name?: string
href?: string
}
projectContractLine?: {
key?: string
id?: string
name?: string
href?: string
}
taxSchedule?: { key?: string; id?: string; href?: string }
buyToOrderContact?: { key?: string; id?: string }
trackingDetail?: {
key?: string
id?: string
href?: string
quantity?: string
serialNumber?: string
lotNumber?: string
expirationDate?: string
aisle?: { href?: string; key?: string; id?: string }
bin?: { href?: string; key?: string; id?: string }
row?: { href?: string; key?: string; id?: string }
item?: { key?: string; id?: string; href?: string }
audit?: {
createdDateTime?: string
modifiedDateTime?: string
createdBy?: string
modifiedBy?: string
}
orderEntryDocumentLine?: {
key?: string
id?: string
documentType?: string
href?: string
}
}[]
documentHeader?: {
key?: string
id?: string
documentType?: string
href?: string
}
lineSubtotals?: {
key?: string
id?: string
href?: string
description?: string
absoluteValue?: string
percentValue?: string
total?: string
txnAbsoluteValue?: string
txnTotal?: string
enableOverrideTax?: false | true
taxDetail?: { key?: string; id?: string; href?: string }
systemTaxDetail?: { key?: string; id?: string; href?: string }
dimensions?: {
location?: {
key?: string
id?: string
name?: string
href?: string
}
department?: {
key?: string
id?: string
name?: string
href?: string
}
employee?: {
key?: string
id?: string
name?: string
href?: string
}
project?: { key?: string; id?: string; name?: string; href?: string }
customer?: {
key?: string
id?: string
name?: string
href?: string
}
vendor?: { key?: string; id?: string; name?: string; href?: string }
item?: { key?: string; id?: string; name?: string; href?: string }
warehouse?: {
key?: string
id?: string
name?: string
href?: string
}
class?: { key?: string; id?: string; name?: string; href?: string }
task?: { id?: string; key?: string; name?: string; href?: string }
costType?: {
id?: string
key?: string
name?: string
href?: string
}
asset?: { id?: string; key?: string; name?: string; href?: string }
contract?: {
id?: string
key?: string
name?: string
href?: string
}
affiliateEntity?: {
key?: string
id?: string
href?: string
name?: string
}
} & {
location?: {
key?: string
id?: string
name?: string
href?: string
}
department?: {
key?: string
id?: string
name?: string
href?: string
}
}
documentLine?: {
key?: string
id?: string
documentType?: string
href?: string
}
document?: {
key?: string
id?: string
documentType?: string
href?: string
}
status?: 'active' | 'inactive'
}[]
}[]
subtotals?: {
key?: string
id?: string
href?: string
description?: string
percentValue?: string
absoluteValue?: string
txnAbsoluteValue?: string
total?: string
txnTotal?: string
documentLine?: {
key?: string
documentType?: string
id?: string
href?: string
}
audit?: {
createdDateTime?: string
modifiedDateTime?: string
createdBy?: string
modifiedBy?: string
}
dimensions?: {
location?: { key?: string; id?: string; name?: string; href?: string }
department?: {
key?: string
id?: string
name?: string
href?: string
}
employee?: { key?: string; id?: string; name?: string; href?: string }
project?: { key?: string; id?: string; name?: string; href?: string }
customer?: { key?: string; id?: string; name?: string; href?: string }
vendor?: { key?: string; id?: string; name?: string; href?: string }
item?: { key?: string; id?: string; name?: string; href?: string }
warehouse?: { key?: string; id?: string; name?: string; href?: string }
class?: { key?: string; id?: string; name?: string; href?: string }
task?: { id?: string; key?: string; name?: string; href?: string }
costType?: { id?: string; key?: string; name?: string; href?: string }
asset?: { id?: string; key?: string; name?: string; href?: string }
contract?: { id?: string; key?: string; name?: string; href?: string }
affiliateEntity?: {
key?: string
id?: string
href?: string
name?: string
}
} & {
location?: { key?: string; id?: string; href?: string }
department?: { key?: string; id?: string; href?: string }
}
documentHeader?: {
key?: string
id?: string
documentType?: string
href?: string
}
}[]
history?: {
key?: string
id?: string
href?: string
convertedFrom?: {
key?: string
id?: string
documentType?: string
href?: string
}
convertedTo?: {
key?: string
id?: string
documentType?: string
href?: string
}
orderEntryDocument?: {
key?: string
id?: string
documentType?: string
href?: string
}
}[]
} & { id?: {} }
) {
const url = new URL(
`https://api.intacct.com/ia/api/v1/objects/order-entry/document::${documentName}/${key}`
)
const response = await fetch(url, {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + auth.token
},
body: JSON.stringify(body)
})
if (!response.ok) {
const text = await response.text()
throw new Error(`${response.status} ${text}`)
}
return await response.json()
}
Submitted by hugo697 235 days ago