/* Options: Date: 2026-07-08 20:26:44 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: PurchaseOrderReceiveRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ 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 json) { fromMap(json); } fromMap(Map 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 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? 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 json) { fromMap(json); } fromMap(Map 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',context!); return this; } Map 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',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 json) { fromMap(json); } fromMap(Map 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 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 json) { fromMap(json); } fromMap(Map 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 toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Order': JsonConverters.toJson(Order,'PurchaseOrder',context!), 'Summary': JsonConverters.toJson(Summary,'PurchaseOrderBuyoutSummary',context!) }; getTypeName() => "PurchaseOrderResponse"; TypeContext? context = _ctx; } // @Route("/v1/projects/{ProjectID}/purchase-orders/{PurchaseOrderID}/receive", "POST,OPTIONS") class PurchaseOrderReceiveRequest implements IReturn, IConvertible, IPost { int? ProjectID; int? PurchaseOrderID; List? Lines = []; bool? Close; PurchaseOrderReceiveRequest({this.ProjectID,this.PurchaseOrderID,this.Lines,this.Close}); PurchaseOrderReceiveRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; PurchaseOrderID = json['PurchaseOrderID']; Lines = JsonConverters.fromJson(json['Lines'],'List',context!); Close = json['Close']; return this; } Map toJson() => { 'ProjectID': ProjectID, 'PurchaseOrderID': PurchaseOrderID, 'Lines': JsonConverters.toJson(Lines,'List',context!), 'Close': Close }; createResponse() => PurchaseOrderResponse(); getResponseTypeName() => "PurchaseOrderResponse"; getTypeName() => "PurchaseOrderReceiveRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'PurchaseOrderLine': TypeInfo(TypeOf.Class, create:() => PurchaseOrderLine()), 'PurchaseOrder': TypeInfo(TypeOf.Class, create:() => PurchaseOrder()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'PurchaseOrderBuyoutSummary': TypeInfo(TypeOf.Class, create:() => PurchaseOrderBuyoutSummary()), 'PurchaseOrderResponse': TypeInfo(TypeOf.Class, create:() => PurchaseOrderResponse()), 'PurchaseOrderReceiveRequest': TypeInfo(TypeOf.Class, create:() => PurchaseOrderReceiveRequest()), });