//native
type SageIntacct = {
token: string
}
/**
* Update a change request
* Updates an existing change request by setting field values. Any fields not provided remain unchanged.
Permissions and other requirements
SubscriptionConstruction, Project Costing and Billing
User typeBusiness, Project Manager
PermissionsList, View, Edit Change requests
*/
export async function main(
auth: SageIntacct,
key: string,
body: {
key?: string
id?: string
href?: string
project?: { key?: string; id?: string; name?: string; href?: string }
projectCustomer?: {
key?: string
id?: string
name?: string
href?: string
}
changeRequestDate?: string
description?: string
changeRequestStatus?: {
key?: string
id?: string
workflowType?:
| 'none'
| 'original'
| 'revision'
| 'forecast'
| 'approvedChange'
| 'pendingChange'
| 'other'
href?: string
}
changeRequestType?: { key?: string; id?: string; href?: string }
changeRequestState?: 'draft' | 'posted'
costEffectiveDate?: string
priceEffectiveDate?: string
totalCost?: string
totalPrice?: string
projectChangeOrder?: { key?: string; id?: string; href?: string }
projectContractLineSource?:
| 'none'
| 'projectChangeOrder'
| 'changeRequest'
| 'changeRequestLine'
projectContract?: {
key?: string
id?: string
name?: string
href?: string
}
projectContractLine?: {
key?: string
id?: string
name?: string
href?: string
}
scope?: string
inclusions?: string
exclusions?: string
terms?: string
schedule?: {
scheduledStartDate?: string
actualStartDate?: string
scheduledCompletionDate?: string
revisedCompletionDate?: string
substantialCompletionDate?: string
actualCompletionDate?: string
noticeToProceedDate?: string
responseDueDate?: string
executedOnDate?: string
scheduleImpact?: 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
}
location?: { key?: string; id?: string; name?: string; href?: string }
changeRequestLines?: {
key?: string
id?: string
href?: string
changeRequest?: { key?: string; id?: string; href?: string }
workflowType?:
| 'none'
| 'original'
| 'revision'
| 'forecast'
| 'approvedChange'
| 'pendingChange'
| 'other'
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
}
}
numberOfProductionUnits?: string
productionUnitDescription?: string
quantity?: string
externalUOM?: string
unitCost?: string
cost?: string
unitPrice?: string
price?: string
priceMarkupPercent?: string
priceMarkupAmount?: string
linePrice?: string
projectChangeOrder?: { key?: string; id?: string; href?: string }
memo?: string
projectEstimate?: { key?: string; id?: string; href?: string }
glAccount?: { key?: string; id?: string; name?: string; href?: string }
projectContract?: {
key?: string
id?: string
name?: string
href?: string
}
projectContractLine?: {
key?: string
id?: string
name?: string
href?: string
}
audit?: {
createdDateTime?: string
modifiedDateTime?: string
createdBy?: string
modifiedBy?: string
}
}[]
attachment?: { key?: string; id?: string; href?: string }
audit?: {
createdDateTime?: string
modifiedDateTime?: string
createdBy?: string
modifiedBy?: string
}
entity?: { key?: string; id?: string; name?: string; href?: string }
} & { id?: {} }
) {
const url = new URL(
`https://api.intacct.com/ia/api/v1/objects/construction/change-request/${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