Edits history of script submission #19762 for ' Update a change request (sage_intacct)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //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