//native
type SageIntacct = {
token: string
}
/**
* Create a document line
* Creates a new purchasing document line.
Permissions and other requirements
SubscriptionPurchasing
User typeBusiness, Employee, Project Manager, Warehouse
PermissionsList, View, Add Purchasing documents
*/
export async function main(
auth: SageIntacct,
documentName: string,
body: {
key?: string
id?: string
href?: string
documentType?: string
lineNumber?: number
item?: { key?: string; id?: string; href?: string }
memo?: string
unit?: string
quantity?: string
unitQuantity?: string
unitPrice?: string
price?: string
quantityConverted?: string
retailPrice?: string
priceConverted?: string
quantityToleranceVariance?: string
priceToleranceVariance?: string
audit?: {
createdDateTime?: string
modifiedDateTime?: string
createdBy?: string
modifiedBy?: string
}
status?: 'active' | 'inactive'
costMethod?: 'standard' | 'average' | 'FIFO' | 'LIFO'
sourceDocument?: {
key?: string
id?: string
documentType?: string
href?: string
}
sourceDocumentLine?: {
key?: string
id?: string
documentType?: string
href?: 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 }
}
requestedShippingDate?: string
shipByDate?: string
cancelAfterDate?: string
doNotShipBeforeDate?: string
doNotShipAfterDate?: string
deliveryDueDate?: string
orderConfirmationDate?: string
allocation?: { key?: string; id?: string; href?: 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
}
purchasingDocumentLine?: {
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'
}[]
} & { dimensions?: {}; documentHeader?: {} }
) {
const url = new URL(
`https://api.intacct.com/ia/api/v1/objects/purchasing/document-line::${documentName}`
)
const response = await fetch(url, {
method: 'POST',
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