Trendsic Platform Service

<back to all web services

ChangeOrderListRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/projects/{ProjectID}/change-orders
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class ChangeOrderLine implements IConvertible
{
    int? ChangeOrderLineID;
    int? ChangeOrderID;
    String? Category;
    String? Description;
    double? CostUSD;
    double? MarkupPct;
    String? CostCode;
    int? SortOrder;

    ChangeOrderLine({this.ChangeOrderLineID,this.ChangeOrderID,this.Category,this.Description,this.CostUSD,this.MarkupPct,this.CostCode,this.SortOrder});
    ChangeOrderLine.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ChangeOrderLineID = json['ChangeOrderLineID'];
        ChangeOrderID = json['ChangeOrderID'];
        Category = json['Category'];
        Description = json['Description'];
        CostUSD = JsonConverters.toDouble(json['CostUSD']);
        MarkupPct = JsonConverters.toDouble(json['MarkupPct']);
        CostCode = json['CostCode'];
        SortOrder = json['SortOrder'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ChangeOrderLineID': ChangeOrderLineID,
        'ChangeOrderID': ChangeOrderID,
        'Category': Category,
        'Description': Description,
        'CostUSD': CostUSD,
        'MarkupPct': MarkupPct,
        'CostCode': CostCode,
        'SortOrder': SortOrder
    };

    getTypeName() => "ChangeOrderLine";
    TypeContext? context = _ctx;
}

class ChangeOrder implements IConvertible
{
    int? ChangeOrderID;
    String? ChangeOrderUID;
    int? ProjectID;
    String? CONumber;
    String? Title;
    String? Scope;
    String? Status;
    double? CostUSD;
    double? PriceUSD;
    int? ScheduleDays;
    double? OverheadProfitPct;
    String? PricingMethod;
    String? OriginType;
    String? OriginRef;
    String? CostCode;
    DateTime? OpenedAt;
    DateTime? SubmittedAt;
    DateTime? DecidedAt;
    String? CreatedBy;
    DateTime? CreatedAt;
    DateTime? UpdatedAt;
    int? DaysOpen;
    List<ChangeOrderLine>? Lines = [];

    ChangeOrder({this.ChangeOrderID,this.ChangeOrderUID,this.ProjectID,this.CONumber,this.Title,this.Scope,this.Status,this.CostUSD,this.PriceUSD,this.ScheduleDays,this.OverheadProfitPct,this.PricingMethod,this.OriginType,this.OriginRef,this.CostCode,this.OpenedAt,this.SubmittedAt,this.DecidedAt,this.CreatedBy,this.CreatedAt,this.UpdatedAt,this.DaysOpen,this.Lines});
    ChangeOrder.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ChangeOrderID = json['ChangeOrderID'];
        ChangeOrderUID = json['ChangeOrderUID'];
        ProjectID = json['ProjectID'];
        CONumber = json['CONumber'];
        Title = json['Title'];
        Scope = json['Scope'];
        Status = json['Status'];
        CostUSD = JsonConverters.toDouble(json['CostUSD']);
        PriceUSD = JsonConverters.toDouble(json['PriceUSD']);
        ScheduleDays = json['ScheduleDays'];
        OverheadProfitPct = JsonConverters.toDouble(json['OverheadProfitPct']);
        PricingMethod = json['PricingMethod'];
        OriginType = json['OriginType'];
        OriginRef = json['OriginRef'];
        CostCode = json['CostCode'];
        OpenedAt = JsonConverters.fromJson(json['OpenedAt'],'DateTime',context!);
        SubmittedAt = JsonConverters.fromJson(json['SubmittedAt'],'DateTime',context!);
        DecidedAt = JsonConverters.fromJson(json['DecidedAt'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
        DaysOpen = json['DaysOpen'];
        Lines = JsonConverters.fromJson(json['Lines'],'List<ChangeOrderLine>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ChangeOrderID': ChangeOrderID,
        'ChangeOrderUID': ChangeOrderUID,
        'ProjectID': ProjectID,
        'CONumber': CONumber,
        'Title': Title,
        'Scope': Scope,
        'Status': Status,
        'CostUSD': CostUSD,
        'PriceUSD': PriceUSD,
        'ScheduleDays': ScheduleDays,
        'OverheadProfitPct': OverheadProfitPct,
        'PricingMethod': PricingMethod,
        'OriginType': OriginType,
        'OriginRef': OriginRef,
        'CostCode': CostCode,
        'OpenedAt': JsonConverters.toJson(OpenedAt,'DateTime',context!),
        'SubmittedAt': JsonConverters.toJson(SubmittedAt,'DateTime',context!),
        'DecidedAt': JsonConverters.toJson(DecidedAt,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!),
        'DaysOpen': DaysOpen,
        'Lines': JsonConverters.toJson(Lines,'List<ChangeOrderLine>',context!)
    };

    getTypeName() => "ChangeOrder";
    TypeContext? context = _ctx;
}

class ChangeOrderContractSummary implements IConvertible
{
    int? ProjectID;
    double? OriginalContract;
    double? ApprovedCOValue;
    int? ApprovedCOCount;
    double? PendingCOValue;
    int? PendingCOCount;
    double? RevisedContract;
    double? PotentialContract;
    int? ApprovedScheduleDays;

    ChangeOrderContractSummary({this.ProjectID,this.OriginalContract,this.ApprovedCOValue,this.ApprovedCOCount,this.PendingCOValue,this.PendingCOCount,this.RevisedContract,this.PotentialContract,this.ApprovedScheduleDays});
    ChangeOrderContractSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ProjectID = json['ProjectID'];
        OriginalContract = JsonConverters.toDouble(json['OriginalContract']);
        ApprovedCOValue = JsonConverters.toDouble(json['ApprovedCOValue']);
        ApprovedCOCount = json['ApprovedCOCount'];
        PendingCOValue = JsonConverters.toDouble(json['PendingCOValue']);
        PendingCOCount = json['PendingCOCount'];
        RevisedContract = JsonConverters.toDouble(json['RevisedContract']);
        PotentialContract = JsonConverters.toDouble(json['PotentialContract']);
        ApprovedScheduleDays = json['ApprovedScheduleDays'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ProjectID': ProjectID,
        'OriginalContract': OriginalContract,
        'ApprovedCOValue': ApprovedCOValue,
        'ApprovedCOCount': ApprovedCOCount,
        'PendingCOValue': PendingCOValue,
        'PendingCOCount': PendingCOCount,
        'RevisedContract': RevisedContract,
        'PotentialContract': PotentialContract,
        'ApprovedScheduleDays': ApprovedScheduleDays
    };

    getTypeName() => "ChangeOrderContractSummary";
    TypeContext? context = _ctx;
}

class ChangeOrderListResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    int? ProjectID;
    List<ChangeOrder>? Orders = [];
    ChangeOrderContractSummary? Summary;

    ChangeOrderListResponse({this.ResponseStatus,this.ProjectID,this.Orders,this.Summary});
    ChangeOrderListResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        ProjectID = json['ProjectID'];
        Orders = JsonConverters.fromJson(json['Orders'],'List<ChangeOrder>',context!);
        Summary = JsonConverters.fromJson(json['Summary'],'ChangeOrderContractSummary',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'ProjectID': ProjectID,
        'Orders': JsonConverters.toJson(Orders,'List<ChangeOrder>',context!),
        'Summary': JsonConverters.toJson(Summary,'ChangeOrderContractSummary',context!)
    };

    getTypeName() => "ChangeOrderListResponse";
    TypeContext? context = _ctx;
}

class ChangeOrderListRequest implements IConvertible
{
    int? ProjectID;

    ChangeOrderListRequest({this.ProjectID});
    ChangeOrderListRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ProjectID = json['ProjectID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ProjectID': ProjectID
    };

    getTypeName() => "ChangeOrderListRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'ChangeOrderLine': TypeInfo(TypeOf.Class, create:() => ChangeOrderLine()),
    'ChangeOrder': TypeInfo(TypeOf.Class, create:() => ChangeOrder()),
    'List<ChangeOrderLine>': TypeInfo(TypeOf.Class, create:() => <ChangeOrderLine>[]),
    'ChangeOrderContractSummary': TypeInfo(TypeOf.Class, create:() => ChangeOrderContractSummary()),
    'ChangeOrderListResponse': TypeInfo(TypeOf.Class, create:() => ChangeOrderListResponse()),
    'List<ChangeOrder>': TypeInfo(TypeOf.Class, create:() => <ChangeOrder>[]),
    'ChangeOrderListRequest': TypeInfo(TypeOf.Class, create:() => ChangeOrderListRequest()),
});

Dart ChangeOrderListRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/projects/{ProjectID}/change-orders HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
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
		}
	},
	ProjectID: 0,
	Orders: 
	[
		{
			ChangeOrderID: 0,
			ChangeOrderUID: 00000000000000000000000000000000,
			ProjectID: 0,
			CONumber: String,
			Title: String,
			Scope: String,
			Status: String,
			CostUSD: 0,
			PriceUSD: 0,
			ScheduleDays: 0,
			OverheadProfitPct: 0,
			PricingMethod: String,
			OriginType: String,
			OriginRef: String,
			CostCode: String,
			OpenedAt: 0001-01-01,
			SubmittedAt: 0001-01-01,
			DecidedAt: 0001-01-01,
			CreatedBy: String,
			CreatedAt: 0001-01-01,
			UpdatedAt: 0001-01-01,
			DaysOpen: 0,
			Lines: 
			[
				{
					ChangeOrderLineID: 0,
					ChangeOrderID: 0,
					Category: String,
					Description: String,
					CostUSD: 0,
					MarkupPct: 0,
					CostCode: String,
					SortOrder: 0
				}
			]
		}
	],
	Summary: 
	{
		ProjectID: 0,
		OriginalContract: 0,
		ApprovedCOValue: 0,
		ApprovedCOCount: 0,
		PendingCOValue: 0,
		PendingCOCount: 0,
		RevisedContract: 0,
		PotentialContract: 0,
		ApprovedScheduleDays: 0
	}
}