Trendsic Platform Service

<back to all web services

ChangeOrderSubmitRequest

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

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 ChangeOrderResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    ChangeOrder? Order;
    ChangeOrderContractSummary? Summary;

    ChangeOrderResponse({this.ResponseStatus,this.Order,this.Summary});
    ChangeOrderResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class ChangeOrderSubmitRequest implements IConvertible
{
    int? ProjectID;
    int? ChangeOrderID;

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

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

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

    getTypeName() => "ChangeOrderSubmitRequest";
    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()),
    'ChangeOrderResponse': TypeInfo(TypeOf.Class, create:() => ChangeOrderResponse()),
    'ChangeOrderSubmitRequest': TypeInfo(TypeOf.Class, create:() => ChangeOrderSubmitRequest()),
});

Dart ChangeOrderSubmitRequest DTOs

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

HTTP + OTHER

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

POST /v1/projects/{ProjectID}/change-orders/{ChangeOrderID}/submit HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"ProjectID":0,"ChangeOrderID":0}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Order":{"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-01T00:00:00.0000000","SubmittedAt":"0001-01-01T00:00:00.0000000","DecidedAt":"0001-01-01T00:00:00.0000000","CreatedBy":"String","CreatedAt":"0001-01-01T00:00:00.0000000","UpdatedAt":"0001-01-01T00:00:00.0000000","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}}