| POST,OPTIONS | /v1/projects/{ProjectID}/purchase-orders/{PurchaseOrderID}/receive |
|---|
export class PurchaseOrderLine
{
public PurchaseOrderLineID: number;
public PurchaseOrderID: number;
public MaterialID?: number;
public Description: string;
public Unit: string;
public Qty: number;
public UnitPrice: number;
public QtyReceived: number;
public CostCode: string;
public SortOrder: number;
public constructor(init?: Partial<PurchaseOrderLine>) { (Object as any).assign(this, init); }
}
export class PurchaseOrder
{
public PurchaseOrderID: number;
public PurchaseOrderUID: string;
public ProjectID: number;
public PONumber: string;
public Vendor: string;
public Status: string;
public AmountUSD: number;
public CostCode: string;
public NeedByDate?: string;
public Notes: string;
public IssuedAt?: string;
public ReceivedAt?: string;
public CreatedBy: string;
public CreatedAt?: string;
public UpdatedAt?: string;
public LineCount: number;
public FirstItem: string;
public DaysToNeed: number;
public Lines: PurchaseOrderLine[] = [];
public constructor(init?: Partial<PurchaseOrder>) { (Object as any).assign(this, init); }
}
export class PurchaseOrderBuyoutSummary
{
public ProjectID: number;
public MaterialBudget: number;
public Committed: number;
public Received: number;
public OpenPOs: number;
public LatePOs: number;
public POCount: number;
public RemainingBuyout: number;
public constructor(init?: Partial<PurchaseOrderBuyoutSummary>) { (Object as any).assign(this, init); }
}
export class PurchaseOrderResponse
{
public ResponseStatus: ResponseStatus;
public Order: PurchaseOrder;
public Summary: PurchaseOrderBuyoutSummary;
public constructor(init?: Partial<PurchaseOrderResponse>) { (Object as any).assign(this, init); }
}
export class PurchaseOrderReceiveRequest
{
public ProjectID: number;
public PurchaseOrderID: number;
public Lines: PurchaseOrderLine[] = [];
public Close: boolean;
public constructor(init?: Partial<PurchaseOrderReceiveRequest>) { (Object as any).assign(this, init); }
}
TypeScript PurchaseOrderReceiveRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/projects/{ProjectID}/purchase-orders/{PurchaseOrderID}/receive HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ProjectID: 0,
PurchaseOrderID: 0,
Lines:
[
{
PurchaseOrderLineID: 0,
PurchaseOrderID: 0,
MaterialID: 0,
Description: String,
Unit: String,
Qty: 0,
UnitPrice: 0,
QtyReceived: 0,
CostCode: String,
SortOrder: 0
}
],
Close: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
Order:
{
PurchaseOrderID: 0,
PurchaseOrderUID: 00000000000000000000000000000000,
ProjectID: 0,
PONumber: String,
Vendor: String,
Status: String,
AmountUSD: 0,
CostCode: String,
NeedByDate: 0001-01-01,
Notes: String,
IssuedAt: 0001-01-01,
ReceivedAt: 0001-01-01,
CreatedBy: String,
CreatedAt: 0001-01-01,
UpdatedAt: 0001-01-01,
LineCount: 0,
FirstItem: String,
DaysToNeed: 0,
Lines:
[
{
PurchaseOrderLineID: 0,
PurchaseOrderID: 0,
MaterialID: 0,
Description: String,
Unit: String,
Qty: 0,
UnitPrice: 0,
QtyReceived: 0,
CostCode: String,
SortOrder: 0
}
]
},
Summary:
{
ProjectID: 0,
MaterialBudget: 0,
Committed: 0,
Received: 0,
OpenPOs: 0,
LatePOs: 0,
POCount: 0,
RemainingBuyout: 0
}
}