| POST,OPTIONS | /v1/projects/{ProjectID}/purchase-orders/{PurchaseOrderID}/issue |
|---|
import 'package:servicestack/servicestack.dart';
class PurchaseOrderLine implements IConvertible
{
int? PurchaseOrderLineID;
int? PurchaseOrderID;
int? MaterialID;
String? Description;
String? Unit;
double? Qty;
double? UnitPrice;
double? QtyReceived;
String? CostCode;
int? SortOrder;
PurchaseOrderLine({this.PurchaseOrderLineID,this.PurchaseOrderID,this.MaterialID,this.Description,this.Unit,this.Qty,this.UnitPrice,this.QtyReceived,this.CostCode,this.SortOrder});
PurchaseOrderLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PurchaseOrderLineID = json['PurchaseOrderLineID'];
PurchaseOrderID = json['PurchaseOrderID'];
MaterialID = json['MaterialID'];
Description = json['Description'];
Unit = json['Unit'];
Qty = JsonConverters.toDouble(json['Qty']);
UnitPrice = JsonConverters.toDouble(json['UnitPrice']);
QtyReceived = JsonConverters.toDouble(json['QtyReceived']);
CostCode = json['CostCode'];
SortOrder = json['SortOrder'];
return this;
}
Map<String, dynamic> toJson() => {
'PurchaseOrderLineID': PurchaseOrderLineID,
'PurchaseOrderID': PurchaseOrderID,
'MaterialID': MaterialID,
'Description': Description,
'Unit': Unit,
'Qty': Qty,
'UnitPrice': UnitPrice,
'QtyReceived': QtyReceived,
'CostCode': CostCode,
'SortOrder': SortOrder
};
getTypeName() => "PurchaseOrderLine";
TypeContext? context = _ctx;
}
class PurchaseOrder implements IConvertible
{
int? PurchaseOrderID;
String? PurchaseOrderUID;
int? ProjectID;
String? PONumber;
String? Vendor;
String? Status;
double? AmountUSD;
String? CostCode;
DateTime? NeedByDate;
String? Notes;
DateTime? IssuedAt;
DateTime? ReceivedAt;
String? CreatedBy;
DateTime? CreatedAt;
DateTime? UpdatedAt;
int? LineCount;
String? FirstItem;
int? DaysToNeed;
List<PurchaseOrderLine>? Lines = [];
PurchaseOrder({this.PurchaseOrderID,this.PurchaseOrderUID,this.ProjectID,this.PONumber,this.Vendor,this.Status,this.AmountUSD,this.CostCode,this.NeedByDate,this.Notes,this.IssuedAt,this.ReceivedAt,this.CreatedBy,this.CreatedAt,this.UpdatedAt,this.LineCount,this.FirstItem,this.DaysToNeed,this.Lines});
PurchaseOrder.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PurchaseOrderID = json['PurchaseOrderID'];
PurchaseOrderUID = json['PurchaseOrderUID'];
ProjectID = json['ProjectID'];
PONumber = json['PONumber'];
Vendor = json['Vendor'];
Status = json['Status'];
AmountUSD = JsonConverters.toDouble(json['AmountUSD']);
CostCode = json['CostCode'];
NeedByDate = JsonConverters.fromJson(json['NeedByDate'],'DateTime',context!);
Notes = json['Notes'];
IssuedAt = JsonConverters.fromJson(json['IssuedAt'],'DateTime',context!);
ReceivedAt = JsonConverters.fromJson(json['ReceivedAt'],'DateTime',context!);
CreatedBy = json['CreatedBy'];
CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
LineCount = json['LineCount'];
FirstItem = json['FirstItem'];
DaysToNeed = json['DaysToNeed'];
Lines = JsonConverters.fromJson(json['Lines'],'List<PurchaseOrderLine>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'PurchaseOrderID': PurchaseOrderID,
'PurchaseOrderUID': PurchaseOrderUID,
'ProjectID': ProjectID,
'PONumber': PONumber,
'Vendor': Vendor,
'Status': Status,
'AmountUSD': AmountUSD,
'CostCode': CostCode,
'NeedByDate': JsonConverters.toJson(NeedByDate,'DateTime',context!),
'Notes': Notes,
'IssuedAt': JsonConverters.toJson(IssuedAt,'DateTime',context!),
'ReceivedAt': JsonConverters.toJson(ReceivedAt,'DateTime',context!),
'CreatedBy': CreatedBy,
'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!),
'LineCount': LineCount,
'FirstItem': FirstItem,
'DaysToNeed': DaysToNeed,
'Lines': JsonConverters.toJson(Lines,'List<PurchaseOrderLine>',context!)
};
getTypeName() => "PurchaseOrder";
TypeContext? context = _ctx;
}
class PurchaseOrderBuyoutSummary implements IConvertible
{
int? ProjectID;
double? MaterialBudget;
double? Committed;
double? Received;
int? OpenPOs;
int? LatePOs;
int? POCount;
double? RemainingBuyout;
PurchaseOrderBuyoutSummary({this.ProjectID,this.MaterialBudget,this.Committed,this.Received,this.OpenPOs,this.LatePOs,this.POCount,this.RemainingBuyout});
PurchaseOrderBuyoutSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ProjectID = json['ProjectID'];
MaterialBudget = JsonConverters.toDouble(json['MaterialBudget']);
Committed = JsonConverters.toDouble(json['Committed']);
Received = JsonConverters.toDouble(json['Received']);
OpenPOs = json['OpenPOs'];
LatePOs = json['LatePOs'];
POCount = json['POCount'];
RemainingBuyout = JsonConverters.toDouble(json['RemainingBuyout']);
return this;
}
Map<String, dynamic> toJson() => {
'ProjectID': ProjectID,
'MaterialBudget': MaterialBudget,
'Committed': Committed,
'Received': Received,
'OpenPOs': OpenPOs,
'LatePOs': LatePOs,
'POCount': POCount,
'RemainingBuyout': RemainingBuyout
};
getTypeName() => "PurchaseOrderBuyoutSummary";
TypeContext? context = _ctx;
}
class PurchaseOrderResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
PurchaseOrder? Order;
PurchaseOrderBuyoutSummary? Summary;
PurchaseOrderResponse({this.ResponseStatus,this.Order,this.Summary});
PurchaseOrderResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
Order = JsonConverters.fromJson(json['Order'],'PurchaseOrder',context!);
Summary = JsonConverters.fromJson(json['Summary'],'PurchaseOrderBuyoutSummary',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'Order': JsonConverters.toJson(Order,'PurchaseOrder',context!),
'Summary': JsonConverters.toJson(Summary,'PurchaseOrderBuyoutSummary',context!)
};
getTypeName() => "PurchaseOrderResponse";
TypeContext? context = _ctx;
}
class PurchaseOrderIssueRequest implements IConvertible
{
int? ProjectID;
int? PurchaseOrderID;
PurchaseOrderIssueRequest({this.ProjectID,this.PurchaseOrderID});
PurchaseOrderIssueRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ProjectID = json['ProjectID'];
PurchaseOrderID = json['PurchaseOrderID'];
return this;
}
Map<String, dynamic> toJson() => {
'ProjectID': ProjectID,
'PurchaseOrderID': PurchaseOrderID
};
getTypeName() => "PurchaseOrderIssueRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'PurchaseOrderLine': TypeInfo(TypeOf.Class, create:() => PurchaseOrderLine()),
'PurchaseOrder': TypeInfo(TypeOf.Class, create:() => PurchaseOrder()),
'List<PurchaseOrderLine>': TypeInfo(TypeOf.Class, create:() => <PurchaseOrderLine>[]),
'PurchaseOrderBuyoutSummary': TypeInfo(TypeOf.Class, create:() => PurchaseOrderBuyoutSummary()),
'PurchaseOrderResponse': TypeInfo(TypeOf.Class, create:() => PurchaseOrderResponse()),
'PurchaseOrderIssueRequest': TypeInfo(TypeOf.Class, create:() => PurchaseOrderIssueRequest()),
});
Dart PurchaseOrderIssueRequest 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}/issue HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ProjectID: 0,
PurchaseOrderID: 0
}
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
}
}