| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/Rfp/{RfpDocumentUID}/Estimate/Jobs/{TaskSeq}/assembly |
|---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class ResourcedPosition implements IConvertible
{
String? PositionTag;
double? Hours;
double? CrewSize;
double? Utilization;
double? FixedDays;
int? Headcount;
String? SourceReference;
String? Notes;
bool? IsInCatalog;
int? ContactID;
ResourcedPosition({this.PositionTag,this.Hours,this.CrewSize,this.Utilization,this.FixedDays,this.Headcount,this.SourceReference,this.Notes,this.IsInCatalog,this.ContactID});
ResourcedPosition.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PositionTag = json['PositionTag'];
Hours = JsonConverters.toDouble(json['Hours']);
CrewSize = JsonConverters.toDouble(json['CrewSize']);
Utilization = JsonConverters.toDouble(json['Utilization']);
FixedDays = JsonConverters.toDouble(json['FixedDays']);
Headcount = json['Headcount'];
SourceReference = json['SourceReference'];
Notes = json['Notes'];
IsInCatalog = json['IsInCatalog'];
ContactID = json['ContactID'];
return this;
}
Map<String, dynamic> toJson() => {
'PositionTag': PositionTag,
'Hours': Hours,
'CrewSize': CrewSize,
'Utilization': Utilization,
'FixedDays': FixedDays,
'Headcount': Headcount,
'SourceReference': SourceReference,
'Notes': Notes,
'IsInCatalog': IsInCatalog,
'ContactID': ContactID
};
getTypeName() => "ResourcedPosition";
TypeContext? context = _ctx;
}
class ResourcedEquipment implements IConvertible
{
int? EquipmentID;
String? EquipmentName;
String? MakeModel;
double? Quantity;
double? DurationDays;
double? Utilization;
double? FixedDays;
String? SourceReference;
String? Notes;
bool? IsInCatalog;
int? SuggestedEquipmentID;
String? SuggestedEquipmentName;
ResourcedEquipment({this.EquipmentID,this.EquipmentName,this.MakeModel,this.Quantity,this.DurationDays,this.Utilization,this.FixedDays,this.SourceReference,this.Notes,this.IsInCatalog,this.SuggestedEquipmentID,this.SuggestedEquipmentName});
ResourcedEquipment.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
EquipmentID = json['EquipmentID'];
EquipmentName = json['EquipmentName'];
MakeModel = json['MakeModel'];
Quantity = JsonConverters.toDouble(json['Quantity']);
DurationDays = JsonConverters.toDouble(json['DurationDays']);
Utilization = JsonConverters.toDouble(json['Utilization']);
FixedDays = JsonConverters.toDouble(json['FixedDays']);
SourceReference = json['SourceReference'];
Notes = json['Notes'];
IsInCatalog = json['IsInCatalog'];
SuggestedEquipmentID = json['SuggestedEquipmentID'];
SuggestedEquipmentName = json['SuggestedEquipmentName'];
return this;
}
Map<String, dynamic> toJson() => {
'EquipmentID': EquipmentID,
'EquipmentName': EquipmentName,
'MakeModel': MakeModel,
'Quantity': Quantity,
'DurationDays': DurationDays,
'Utilization': Utilization,
'FixedDays': FixedDays,
'SourceReference': SourceReference,
'Notes': Notes,
'IsInCatalog': IsInCatalog,
'SuggestedEquipmentID': SuggestedEquipmentID,
'SuggestedEquipmentName': SuggestedEquipmentName
};
getTypeName() => "ResourcedEquipment";
TypeContext? context = _ctx;
}
class ResourcedMaterial implements IConvertible
{
int? MaterialID;
String? MaterialName;
String? MakeModel;
double? Quantity;
double? QuantityPerUnit;
String? Unit;
String? SourceReference;
String? Notes;
bool? IsInCatalog;
int? SuggestedMaterialID;
String? SuggestedMaterialName;
ResourcedMaterial({this.MaterialID,this.MaterialName,this.MakeModel,this.Quantity,this.QuantityPerUnit,this.Unit,this.SourceReference,this.Notes,this.IsInCatalog,this.SuggestedMaterialID,this.SuggestedMaterialName});
ResourcedMaterial.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
MaterialID = json['MaterialID'];
MaterialName = json['MaterialName'];
MakeModel = json['MakeModel'];
Quantity = JsonConverters.toDouble(json['Quantity']);
QuantityPerUnit = JsonConverters.toDouble(json['QuantityPerUnit']);
Unit = json['Unit'];
SourceReference = json['SourceReference'];
Notes = json['Notes'];
IsInCatalog = json['IsInCatalog'];
SuggestedMaterialID = json['SuggestedMaterialID'];
SuggestedMaterialName = json['SuggestedMaterialName'];
return this;
}
Map<String, dynamic> toJson() => {
'MaterialID': MaterialID,
'MaterialName': MaterialName,
'MakeModel': MakeModel,
'Quantity': Quantity,
'QuantityPerUnit': QuantityPerUnit,
'Unit': Unit,
'SourceReference': SourceReference,
'Notes': Notes,
'IsInCatalog': IsInCatalog,
'SuggestedMaterialID': SuggestedMaterialID,
'SuggestedMaterialName': SuggestedMaterialName
};
getTypeName() => "ResourcedMaterial";
TypeContext? context = _ctx;
}
class TaskResourcing implements IConvertible
{
List<ResourcedPosition>? Positions = [];
List<ResourcedEquipment>? Equipment = [];
List<ResourcedMaterial>? Materials = [];
double? ResourcedForQuantity;
double? ProductionRatePerDay;
double? FixedDays;
TaskResourcing({this.Positions,this.Equipment,this.Materials,this.ResourcedForQuantity,this.ProductionRatePerDay,this.FixedDays});
TaskResourcing.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Positions = JsonConverters.fromJson(json['Positions'],'List<ResourcedPosition>',context!);
Equipment = JsonConverters.fromJson(json['Equipment'],'List<ResourcedEquipment>',context!);
Materials = JsonConverters.fromJson(json['Materials'],'List<ResourcedMaterial>',context!);
ResourcedForQuantity = JsonConverters.toDouble(json['ResourcedForQuantity']);
ProductionRatePerDay = JsonConverters.toDouble(json['ProductionRatePerDay']);
FixedDays = JsonConverters.toDouble(json['FixedDays']);
return this;
}
Map<String, dynamic> toJson() => {
'Positions': JsonConverters.toJson(Positions,'List<ResourcedPosition>',context!),
'Equipment': JsonConverters.toJson(Equipment,'List<ResourcedEquipment>',context!),
'Materials': JsonConverters.toJson(Materials,'List<ResourcedMaterial>',context!),
'ResourcedForQuantity': ResourcedForQuantity,
'ProductionRatePerDay': ProductionRatePerDay,
'FixedDays': FixedDays
};
getTypeName() => "TaskResourcing";
TypeContext? context = _ctx;
}
class SpecRefView implements IConvertible
{
String? Section;
String? Title;
String? Url;
SpecRefView({this.Section,this.Title,this.Url});
SpecRefView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Section = json['Section'];
Title = json['Title'];
Url = json['Url'];
return this;
}
Map<String, dynamic> toJson() => {
'Section': Section,
'Title': Title,
'Url': Url
};
getTypeName() => "SpecRefView";
TypeContext? context = _ctx;
}
class DodItemView implements IConvertible
{
String? Key;
String? Text;
bool? Checked;
String? Source;
DodItemView({this.Key,this.Text,this.Checked,this.Source});
DodItemView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Key = json['Key'];
Text = json['Text'];
Checked = json['Checked'];
Source = json['Source'];
return this;
}
Map<String, dynamic> toJson() => {
'Key': Key,
'Text': Text,
'Checked': Checked,
'Source': Source
};
getTypeName() => "DodItemView";
TypeContext? context = _ctx;
}
class WorkPackageView implements IConvertible
{
bool? HasPackage;
String? Scope;
String? LimitsOfWork;
List<SpecRefView>? SpecRefs = [];
List<String>? Constraints = [];
List<String>? HoldPoints = [];
List<DodItemView>? Dod = [];
String? SafetyNote;
String? Provenance;
String? SpecBook;
bool? UserEdited;
String? RedraftNote;
WorkPackageView({this.HasPackage,this.Scope,this.LimitsOfWork,this.SpecRefs,this.Constraints,this.HoldPoints,this.Dod,this.SafetyNote,this.Provenance,this.SpecBook,this.UserEdited,this.RedraftNote});
WorkPackageView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
HasPackage = json['HasPackage'];
Scope = json['Scope'];
LimitsOfWork = json['LimitsOfWork'];
SpecRefs = JsonConverters.fromJson(json['SpecRefs'],'List<SpecRefView>',context!);
Constraints = JsonConverters.fromJson(json['Constraints'],'List<String>',context!);
HoldPoints = JsonConverters.fromJson(json['HoldPoints'],'List<String>',context!);
Dod = JsonConverters.fromJson(json['Dod'],'List<DodItemView>',context!);
SafetyNote = json['SafetyNote'];
Provenance = json['Provenance'];
SpecBook = json['SpecBook'];
UserEdited = json['UserEdited'];
RedraftNote = json['RedraftNote'];
return this;
}
Map<String, dynamic> toJson() => {
'HasPackage': HasPackage,
'Scope': Scope,
'LimitsOfWork': LimitsOfWork,
'SpecRefs': JsonConverters.toJson(SpecRefs,'List<SpecRefView>',context!),
'Constraints': JsonConverters.toJson(Constraints,'List<String>',context!),
'HoldPoints': JsonConverters.toJson(HoldPoints,'List<String>',context!),
'Dod': JsonConverters.toJson(Dod,'List<DodItemView>',context!),
'SafetyNote': SafetyNote,
'Provenance': Provenance,
'SpecBook': SpecBook,
'UserEdited': UserEdited,
'RedraftNote': RedraftNote
};
getTypeName() => "WorkPackageView";
TypeContext? context = _ctx;
}
class EstimateCrewLineResult implements IConvertible
{
String? Role;
double? Hours;
double? StHours;
double? OtHours;
double? Rrop;
double? StCost;
double? OtCost;
double? Cost;
double? FringeCost;
bool? PremiumApplied;
bool? HasOt;
bool? NeedsRate;
EstimateCrewLineResult({this.Role,this.Hours,this.StHours,this.OtHours,this.Rrop,this.StCost,this.OtCost,this.Cost,this.FringeCost,this.PremiumApplied,this.HasOt,this.NeedsRate});
EstimateCrewLineResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Role = json['Role'];
Hours = JsonConverters.toDouble(json['Hours']);
StHours = JsonConverters.toDouble(json['StHours']);
OtHours = JsonConverters.toDouble(json['OtHours']);
Rrop = JsonConverters.toDouble(json['Rrop']);
StCost = JsonConverters.toDouble(json['StCost']);
OtCost = JsonConverters.toDouble(json['OtCost']);
Cost = JsonConverters.toDouble(json['Cost']);
FringeCost = JsonConverters.toDouble(json['FringeCost']);
PremiumApplied = json['PremiumApplied'];
HasOt = json['HasOt'];
NeedsRate = json['NeedsRate'];
return this;
}
Map<String, dynamic> toJson() => {
'Role': Role,
'Hours': Hours,
'StHours': StHours,
'OtHours': OtHours,
'Rrop': Rrop,
'StCost': StCost,
'OtCost': OtCost,
'Cost': Cost,
'FringeCost': FringeCost,
'PremiumApplied': PremiumApplied,
'HasOt': HasOt,
'NeedsRate': NeedsRate
};
getTypeName() => "EstimateCrewLineResult";
TypeContext? context = _ctx;
}
class EstimateEquipmentLineResult implements IConvertible
{
String? Name;
double? Quantity;
double? Rate;
bool? NeedsRate;
double? MobCost;
double? Cost;
bool? IsAvailabilityTracked;
bool? IsOwned;
String? AvailabilityLabel;
String? FreedFromProject;
DateTime? AvailableFrom;
String? RateKey;
String? RentalExplain;
double? UsageDays;
double? BilledDays;
EstimateEquipmentLineResult({this.Name,this.Quantity,this.Rate,this.NeedsRate,this.MobCost,this.Cost,this.IsAvailabilityTracked,this.IsOwned,this.AvailabilityLabel,this.FreedFromProject,this.AvailableFrom,this.RateKey,this.RentalExplain,this.UsageDays,this.BilledDays});
EstimateEquipmentLineResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Name = json['Name'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Rate = JsonConverters.toDouble(json['Rate']);
NeedsRate = json['NeedsRate'];
MobCost = JsonConverters.toDouble(json['MobCost']);
Cost = JsonConverters.toDouble(json['Cost']);
IsAvailabilityTracked = json['IsAvailabilityTracked'];
IsOwned = json['IsOwned'];
AvailabilityLabel = json['AvailabilityLabel'];
FreedFromProject = json['FreedFromProject'];
AvailableFrom = JsonConverters.fromJson(json['AvailableFrom'],'DateTime',context!);
RateKey = json['RateKey'];
RentalExplain = json['RentalExplain'];
UsageDays = JsonConverters.toDouble(json['UsageDays']);
BilledDays = JsonConverters.toDouble(json['BilledDays']);
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'Quantity': Quantity,
'Rate': Rate,
'NeedsRate': NeedsRate,
'MobCost': MobCost,
'Cost': Cost,
'IsAvailabilityTracked': IsAvailabilityTracked,
'IsOwned': IsOwned,
'AvailabilityLabel': AvailabilityLabel,
'FreedFromProject': FreedFromProject,
'AvailableFrom': JsonConverters.toJson(AvailableFrom,'DateTime',context!),
'RateKey': RateKey,
'RentalExplain': RentalExplain,
'UsageDays': UsageDays,
'BilledDays': BilledDays
};
getTypeName() => "EstimateEquipmentLineResult";
TypeContext? context = _ctx;
}
class EstimateMaterialLineResult implements IConvertible
{
String? Name;
double? Quantity;
String? Unit;
double? Rate;
bool? NeedsRate;
double? Cost;
String? RateKey;
EstimateMaterialLineResult({this.Name,this.Quantity,this.Unit,this.Rate,this.NeedsRate,this.Cost,this.RateKey});
EstimateMaterialLineResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Name = json['Name'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Unit = json['Unit'];
Rate = JsonConverters.toDouble(json['Rate']);
NeedsRate = json['NeedsRate'];
Cost = JsonConverters.toDouble(json['Cost']);
RateKey = json['RateKey'];
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'Quantity': Quantity,
'Unit': Unit,
'Rate': Rate,
'NeedsRate': NeedsRate,
'Cost': Cost,
'RateKey': RateKey
};
getTypeName() => "EstimateMaterialLineResult";
TypeContext? context = _ctx;
}
class EstimateSubcontractLine implements IConvertible
{
String? Vendor;
double? Amount;
String? Scope;
EstimateSubcontractLine({this.Vendor,this.Amount,this.Scope});
EstimateSubcontractLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Vendor = json['Vendor'];
Amount = JsonConverters.toDouble(json['Amount']);
Scope = json['Scope'];
return this;
}
Map<String, dynamic> toJson() => {
'Vendor': Vendor,
'Amount': Amount,
'Scope': Scope
};
getTypeName() => "EstimateSubcontractLine";
TypeContext? context = _ctx;
}
class EstimateJobResult implements IConvertible
{
int? Seq;
List<int>? DependsOn = [];
String? ItemNo;
String? Name;
String? Category;
String? SourceRef;
String? Unit;
double? Quantity;
String? PatternCode;
int? Workdays;
double? HoursPerDay;
bool? IsNight;
double? WeeklyHours;
double? OtFraction;
double? Days;
double? EffectiveProdPerDay;
bool? CrewPremiumApplied;
WorkPackageView? WorkPackage;
List<EstimateCrewLineResult>? Crew = [];
List<EstimateEquipmentLineResult>? Equipment = [];
List<EstimateMaterialLineResult>? Materials = [];
List<EstimateSubcontractLine>? Subcontracts = [];
double? CrewCost;
double? FringeCost;
double? EquipmentCost;
double? MaterialCost;
double? SubcontractCost;
double? Direct;
String? PricingBasis;
String? PricingRuleId;
double? PricingBandP25;
double? PricingBandP75;
int? PricingBandN;
String? PricingBandLabel;
double? BenchmarkUnitPrice;
double? BenchmarkRateMin;
double? BenchmarkRateMax;
int? BenchmarkSampleSize;
double? BenchmarkP25;
double? BenchmarkP75;
String? BenchmarkBasis;
double? UnitPriceOverride;
String? OverrideBasis;
double? ReferencePrice;
double? ReferenceRangeMin;
double? ReferenceRangeMax;
int? ReferenceN;
DateTime? ReferenceDate;
String? ReferenceBasis;
String? ReferenceUrl;
EstimateJobResult({this.Seq,this.DependsOn,this.ItemNo,this.Name,this.Category,this.SourceRef,this.Unit,this.Quantity,this.PatternCode,this.Workdays,this.HoursPerDay,this.IsNight,this.WeeklyHours,this.OtFraction,this.Days,this.EffectiveProdPerDay,this.CrewPremiumApplied,this.WorkPackage,this.Crew,this.Equipment,this.Materials,this.Subcontracts,this.CrewCost,this.FringeCost,this.EquipmentCost,this.MaterialCost,this.SubcontractCost,this.Direct,this.PricingBasis,this.PricingRuleId,this.PricingBandP25,this.PricingBandP75,this.PricingBandN,this.PricingBandLabel,this.BenchmarkUnitPrice,this.BenchmarkRateMin,this.BenchmarkRateMax,this.BenchmarkSampleSize,this.BenchmarkP25,this.BenchmarkP75,this.BenchmarkBasis,this.UnitPriceOverride,this.OverrideBasis,this.ReferencePrice,this.ReferenceRangeMin,this.ReferenceRangeMax,this.ReferenceN,this.ReferenceDate,this.ReferenceBasis,this.ReferenceUrl});
EstimateJobResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Seq = json['Seq'];
DependsOn = JsonConverters.fromJson(json['DependsOn'],'List<int>',context!);
ItemNo = json['ItemNo'];
Name = json['Name'];
Category = json['Category'];
SourceRef = json['SourceRef'];
Unit = json['Unit'];
Quantity = JsonConverters.toDouble(json['Quantity']);
PatternCode = json['PatternCode'];
Workdays = json['Workdays'];
HoursPerDay = JsonConverters.toDouble(json['HoursPerDay']);
IsNight = json['IsNight'];
WeeklyHours = JsonConverters.toDouble(json['WeeklyHours']);
OtFraction = JsonConverters.toDouble(json['OtFraction']);
Days = JsonConverters.toDouble(json['Days']);
EffectiveProdPerDay = JsonConverters.toDouble(json['EffectiveProdPerDay']);
CrewPremiumApplied = json['CrewPremiumApplied'];
WorkPackage = JsonConverters.fromJson(json['WorkPackage'],'WorkPackageView',context!);
Crew = JsonConverters.fromJson(json['Crew'],'List<EstimateCrewLineResult>',context!);
Equipment = JsonConverters.fromJson(json['Equipment'],'List<EstimateEquipmentLineResult>',context!);
Materials = JsonConverters.fromJson(json['Materials'],'List<EstimateMaterialLineResult>',context!);
Subcontracts = JsonConverters.fromJson(json['Subcontracts'],'List<EstimateSubcontractLine>',context!);
CrewCost = JsonConverters.toDouble(json['CrewCost']);
FringeCost = JsonConverters.toDouble(json['FringeCost']);
EquipmentCost = JsonConverters.toDouble(json['EquipmentCost']);
MaterialCost = JsonConverters.toDouble(json['MaterialCost']);
SubcontractCost = JsonConverters.toDouble(json['SubcontractCost']);
Direct = JsonConverters.toDouble(json['Direct']);
PricingBasis = json['PricingBasis'];
PricingRuleId = json['PricingRuleId'];
PricingBandP25 = JsonConverters.toDouble(json['PricingBandP25']);
PricingBandP75 = JsonConverters.toDouble(json['PricingBandP75']);
PricingBandN = json['PricingBandN'];
PricingBandLabel = json['PricingBandLabel'];
BenchmarkUnitPrice = JsonConverters.toDouble(json['BenchmarkUnitPrice']);
BenchmarkRateMin = JsonConverters.toDouble(json['BenchmarkRateMin']);
BenchmarkRateMax = JsonConverters.toDouble(json['BenchmarkRateMax']);
BenchmarkSampleSize = json['BenchmarkSampleSize'];
BenchmarkP25 = JsonConverters.toDouble(json['BenchmarkP25']);
BenchmarkP75 = JsonConverters.toDouble(json['BenchmarkP75']);
BenchmarkBasis = json['BenchmarkBasis'];
UnitPriceOverride = JsonConverters.toDouble(json['UnitPriceOverride']);
OverrideBasis = json['OverrideBasis'];
ReferencePrice = JsonConverters.toDouble(json['ReferencePrice']);
ReferenceRangeMin = JsonConverters.toDouble(json['ReferenceRangeMin']);
ReferenceRangeMax = JsonConverters.toDouble(json['ReferenceRangeMax']);
ReferenceN = json['ReferenceN'];
ReferenceDate = JsonConverters.fromJson(json['ReferenceDate'],'DateTime',context!);
ReferenceBasis = json['ReferenceBasis'];
ReferenceUrl = json['ReferenceUrl'];
return this;
}
Map<String, dynamic> toJson() => {
'Seq': Seq,
'DependsOn': JsonConverters.toJson(DependsOn,'List<int>',context!),
'ItemNo': ItemNo,
'Name': Name,
'Category': Category,
'SourceRef': SourceRef,
'Unit': Unit,
'Quantity': Quantity,
'PatternCode': PatternCode,
'Workdays': Workdays,
'HoursPerDay': HoursPerDay,
'IsNight': IsNight,
'WeeklyHours': WeeklyHours,
'OtFraction': OtFraction,
'Days': Days,
'EffectiveProdPerDay': EffectiveProdPerDay,
'CrewPremiumApplied': CrewPremiumApplied,
'WorkPackage': JsonConverters.toJson(WorkPackage,'WorkPackageView',context!),
'Crew': JsonConverters.toJson(Crew,'List<EstimateCrewLineResult>',context!),
'Equipment': JsonConverters.toJson(Equipment,'List<EstimateEquipmentLineResult>',context!),
'Materials': JsonConverters.toJson(Materials,'List<EstimateMaterialLineResult>',context!),
'Subcontracts': JsonConverters.toJson(Subcontracts,'List<EstimateSubcontractLine>',context!),
'CrewCost': CrewCost,
'FringeCost': FringeCost,
'EquipmentCost': EquipmentCost,
'MaterialCost': MaterialCost,
'SubcontractCost': SubcontractCost,
'Direct': Direct,
'PricingBasis': PricingBasis,
'PricingRuleId': PricingRuleId,
'PricingBandP25': PricingBandP25,
'PricingBandP75': PricingBandP75,
'PricingBandN': PricingBandN,
'PricingBandLabel': PricingBandLabel,
'BenchmarkUnitPrice': BenchmarkUnitPrice,
'BenchmarkRateMin': BenchmarkRateMin,
'BenchmarkRateMax': BenchmarkRateMax,
'BenchmarkSampleSize': BenchmarkSampleSize,
'BenchmarkP25': BenchmarkP25,
'BenchmarkP75': BenchmarkP75,
'BenchmarkBasis': BenchmarkBasis,
'UnitPriceOverride': UnitPriceOverride,
'OverrideBasis': OverrideBasis,
'ReferencePrice': ReferencePrice,
'ReferenceRangeMin': ReferenceRangeMin,
'ReferenceRangeMax': ReferenceRangeMax,
'ReferenceN': ReferenceN,
'ReferenceDate': JsonConverters.toJson(ReferenceDate,'DateTime',context!),
'ReferenceBasis': ReferenceBasis,
'ReferenceUrl': ReferenceUrl
};
getTypeName() => "EstimateJobResult";
TypeContext? context = _ctx;
}
class ApplyAssemblyResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
int? TaskSeq;
String? TemplateUID;
String? TemplateName;
double? Quantity;
String? Unit;
TaskResourcing? Resourcing;
EstimateJobResult? Job;
String? Headline;
ApplyAssemblyResponse({this.ResponseStatus,this.TaskSeq,this.TemplateUID,this.TemplateName,this.Quantity,this.Unit,this.Resourcing,this.Job,this.Headline});
ApplyAssemblyResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
TaskSeq = json['TaskSeq'];
TemplateUID = json['TemplateUID'];
TemplateName = json['TemplateName'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Unit = json['Unit'];
Resourcing = JsonConverters.fromJson(json['Resourcing'],'TaskResourcing',context!);
Job = JsonConverters.fromJson(json['Job'],'EstimateJobResult',context!);
Headline = json['Headline'];
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'TaskSeq': TaskSeq,
'TemplateUID': TemplateUID,
'TemplateName': TemplateName,
'Quantity': Quantity,
'Unit': Unit,
'Resourcing': JsonConverters.toJson(Resourcing,'TaskResourcing',context!),
'Job': JsonConverters.toJson(Job,'EstimateJobResult',context!),
'Headline': Headline
};
getTypeName() => "ApplyAssemblyResponse";
TypeContext? context = _ctx;
}
class ApplyAssemblyRequest implements IConvertible
{
String? RfpDocumentUID;
int? TaskSeq;
String? TemplateUID;
ApplyAssemblyRequest({this.RfpDocumentUID,this.TaskSeq,this.TemplateUID});
ApplyAssemblyRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpDocumentUID = json['RfpDocumentUID'];
TaskSeq = json['TaskSeq'];
TemplateUID = json['TemplateUID'];
return this;
}
Map<String, dynamic> toJson() => {
'RfpDocumentUID': RfpDocumentUID,
'TaskSeq': TaskSeq,
'TemplateUID': TemplateUID
};
getTypeName() => "ApplyAssemblyRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'ResourcedPosition': TypeInfo(TypeOf.Class, create:() => ResourcedPosition()),
'ResourcedEquipment': TypeInfo(TypeOf.Class, create:() => ResourcedEquipment()),
'ResourcedMaterial': TypeInfo(TypeOf.Class, create:() => ResourcedMaterial()),
'TaskResourcing': TypeInfo(TypeOf.Class, create:() => TaskResourcing()),
'List<ResourcedPosition>': TypeInfo(TypeOf.Class, create:() => <ResourcedPosition>[]),
'List<ResourcedEquipment>': TypeInfo(TypeOf.Class, create:() => <ResourcedEquipment>[]),
'List<ResourcedMaterial>': TypeInfo(TypeOf.Class, create:() => <ResourcedMaterial>[]),
'SpecRefView': TypeInfo(TypeOf.Class, create:() => SpecRefView()),
'DodItemView': TypeInfo(TypeOf.Class, create:() => DodItemView()),
'WorkPackageView': TypeInfo(TypeOf.Class, create:() => WorkPackageView()),
'List<SpecRefView>': TypeInfo(TypeOf.Class, create:() => <SpecRefView>[]),
'List<DodItemView>': TypeInfo(TypeOf.Class, create:() => <DodItemView>[]),
'EstimateCrewLineResult': TypeInfo(TypeOf.Class, create:() => EstimateCrewLineResult()),
'EstimateEquipmentLineResult': TypeInfo(TypeOf.Class, create:() => EstimateEquipmentLineResult()),
'EstimateMaterialLineResult': TypeInfo(TypeOf.Class, create:() => EstimateMaterialLineResult()),
'EstimateSubcontractLine': TypeInfo(TypeOf.Class, create:() => EstimateSubcontractLine()),
'EstimateJobResult': TypeInfo(TypeOf.Class, create:() => EstimateJobResult()),
'List<EstimateCrewLineResult>': TypeInfo(TypeOf.Class, create:() => <EstimateCrewLineResult>[]),
'List<EstimateEquipmentLineResult>': TypeInfo(TypeOf.Class, create:() => <EstimateEquipmentLineResult>[]),
'List<EstimateMaterialLineResult>': TypeInfo(TypeOf.Class, create:() => <EstimateMaterialLineResult>[]),
'List<EstimateSubcontractLine>': TypeInfo(TypeOf.Class, create:() => <EstimateSubcontractLine>[]),
'ApplyAssemblyResponse': TypeInfo(TypeOf.Class, create:() => ApplyAssemblyResponse()),
'ApplyAssemblyRequest': TypeInfo(TypeOf.Class, create:() => ApplyAssemblyRequest()),
});
Dart ApplyAssemblyRequest 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/Rfp/{RfpDocumentUID}/Estimate/Jobs/{TaskSeq}/assembly HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
RfpDocumentUID: 00000000000000000000000000000000,
TaskSeq: 0,
TemplateUID: 00000000000000000000000000000000
}
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
}
},
TaskSeq: 0,
TemplateUID: 00000000000000000000000000000000,
TemplateName: String,
Quantity: 0,
Unit: String,
Resourcing:
{
Positions:
[
{
PositionTag: String,
Hours: 0,
CrewSize: 0,
Utilization: 0,
FixedDays: 0,
Headcount: 0,
SourceReference: String,
Notes: String,
IsInCatalog: False,
ContactID: 0
}
],
Equipment:
[
{
EquipmentID: 0,
EquipmentName: String,
MakeModel: String,
Quantity: 0,
DurationDays: 0,
Utilization: 0,
FixedDays: 0,
SourceReference: String,
Notes: String,
IsInCatalog: False,
SuggestedEquipmentID: 0,
SuggestedEquipmentName: String
}
],
Materials:
[
{
MaterialID: 0,
MaterialName: String,
MakeModel: String,
Quantity: 0,
QuantityPerUnit: 0,
Unit: String,
SourceReference: String,
Notes: String,
IsInCatalog: False,
SuggestedMaterialID: 0,
SuggestedMaterialName: String
}
],
ResourcedForQuantity: 0,
ProductionRatePerDay: 0,
FixedDays: 0
},
Job:
{
Seq: 0,
DependsOn:
[
0
],
ItemNo: String,
Name: String,
Category: String,
SourceRef: String,
Unit: String,
Quantity: 0,
PatternCode: String,
Workdays: 0,
HoursPerDay: 0,
IsNight: False,
WeeklyHours: 0,
OtFraction: 0,
Days: 0,
EffectiveProdPerDay: 0,
CrewPremiumApplied: False,
WorkPackage:
{
HasPackage: False,
Scope: String,
LimitsOfWork: String,
SpecRefs:
[
{
Section: String,
Title: String,
Url: String
}
],
Constraints:
[
String
],
HoldPoints:
[
String
],
Dod:
[
{
Key: String,
Text: String,
Checked: False,
Source: String
}
],
SafetyNote: String,
Provenance: String,
SpecBook: String,
UserEdited: False,
RedraftNote: String
},
Crew:
[
{
Role: String,
Hours: 0,
StHours: 0,
OtHours: 0,
Rrop: 0,
StCost: 0,
OtCost: 0,
Cost: 0,
FringeCost: 0,
PremiumApplied: False,
HasOt: False,
NeedsRate: False
}
],
Equipment:
[
{
Name: String,
Quantity: 0,
Rate: 0,
NeedsRate: False,
MobCost: 0,
Cost: 0,
IsAvailabilityTracked: False,
IsOwned: False,
AvailabilityLabel: String,
FreedFromProject: String,
AvailableFrom: 0001-01-01,
RateKey: String,
RentalExplain: String,
UsageDays: 0,
BilledDays: 0
}
],
Materials:
[
{
Name: String,
Quantity: 0,
Unit: String,
Rate: 0,
NeedsRate: False,
Cost: 0,
RateKey: String
}
],
Subcontracts:
[
{
Vendor: String,
Amount: 0,
Scope: String
}
],
CrewCost: 0,
FringeCost: 0,
EquipmentCost: 0,
MaterialCost: 0,
SubcontractCost: 0,
Direct: 0,
PricingBasis: String,
PricingRuleId: String,
PricingBandP25: 0,
PricingBandP75: 0,
PricingBandN: 0,
PricingBandLabel: String,
BenchmarkUnitPrice: 0,
BenchmarkRateMin: 0,
BenchmarkRateMax: 0,
BenchmarkSampleSize: 0,
BenchmarkP25: 0,
BenchmarkP75: 0,
BenchmarkBasis: String,
UnitPriceOverride: 0,
OverrideBasis: String,
ReferencePrice: 0,
ReferenceRangeMin: 0,
ReferenceRangeMax: 0,
ReferenceN: 0,
ReferenceDate: 0001-01-01,
ReferenceBasis: String,
ReferenceUrl: String
},
Headline: String
}