| Requires any of the roles: | Agent, Administrator |
| GET,OPTIONS | /v1/Rfp/{RfpDocumentUID}/Estimate/Revisions/{RevisionNo} |
|---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class EstimateRevision implements IConvertible
{
int? EstimateRevisionID;
int? RfpDocumentID;
int? RevisionNo;
String? Label;
String? Reason;
String? Trigger;
double? TotalAmount;
int? LineCount;
String? CreatedBy;
DateTime? CreatedAt;
String? SnapshotJson;
EstimateRevision({this.EstimateRevisionID,this.RfpDocumentID,this.RevisionNo,this.Label,this.Reason,this.Trigger,this.TotalAmount,this.LineCount,this.CreatedBy,this.CreatedAt,this.SnapshotJson});
EstimateRevision.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
EstimateRevisionID = json['EstimateRevisionID'];
RfpDocumentID = json['RfpDocumentID'];
RevisionNo = json['RevisionNo'];
Label = json['Label'];
Reason = json['Reason'];
Trigger = json['Trigger'];
TotalAmount = JsonConverters.toDouble(json['TotalAmount']);
LineCount = json['LineCount'];
CreatedBy = json['CreatedBy'];
CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
SnapshotJson = json['SnapshotJson'];
return this;
}
Map<String, dynamic> toJson() => {
'EstimateRevisionID': EstimateRevisionID,
'RfpDocumentID': RfpDocumentID,
'RevisionNo': RevisionNo,
'Label': Label,
'Reason': Reason,
'Trigger': Trigger,
'TotalAmount': TotalAmount,
'LineCount': LineCount,
'CreatedBy': CreatedBy,
'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
'SnapshotJson': SnapshotJson
};
getTypeName() => "EstimateRevision";
TypeContext? context = _ctx;
}
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 WorkPackageSpecRef implements IConvertible
{
String? Section;
String? Title;
WorkPackageSpecRef({this.Section,this.Title});
WorkPackageSpecRef.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Section = json['Section'];
Title = json['Title'];
return this;
}
Map<String, dynamic> toJson() => {
'Section': Section,
'Title': Title
};
getTypeName() => "WorkPackageSpecRef";
TypeContext? context = _ctx;
}
class TaskWorkPackage implements IConvertible
{
String? Scope;
String? LimitsOfWork;
List<WorkPackageSpecRef>? SpecRefs = [];
List<String>? Constraints = [];
List<String>? HoldPoints = [];
List<String>? DefinitionOfDone = [];
String? SafetyNote;
String? RfpRef;
int? Confidence;
String? SpecBook;
String? UserScope;
List<int>? DodRemoved = [];
List<String>? DodExtra = [];
bool? UserEdited;
List<String>? DodChecked = [];
String? RedraftNote;
TaskWorkPackage({this.Scope,this.LimitsOfWork,this.SpecRefs,this.Constraints,this.HoldPoints,this.DefinitionOfDone,this.SafetyNote,this.RfpRef,this.Confidence,this.SpecBook,this.UserScope,this.DodRemoved,this.DodExtra,this.UserEdited,this.DodChecked,this.RedraftNote});
TaskWorkPackage.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Scope = json['Scope'];
LimitsOfWork = json['LimitsOfWork'];
SpecRefs = JsonConverters.fromJson(json['SpecRefs'],'List<WorkPackageSpecRef>',context!);
Constraints = JsonConverters.fromJson(json['Constraints'],'List<String>',context!);
HoldPoints = JsonConverters.fromJson(json['HoldPoints'],'List<String>',context!);
DefinitionOfDone = JsonConverters.fromJson(json['DefinitionOfDone'],'List<String>',context!);
SafetyNote = json['SafetyNote'];
RfpRef = json['RfpRef'];
Confidence = json['Confidence'];
SpecBook = json['SpecBook'];
UserScope = json['UserScope'];
DodRemoved = JsonConverters.fromJson(json['DodRemoved'],'List<int>',context!);
DodExtra = JsonConverters.fromJson(json['DodExtra'],'List<String>',context!);
UserEdited = json['UserEdited'];
DodChecked = JsonConverters.fromJson(json['DodChecked'],'List<String>',context!);
RedraftNote = json['RedraftNote'];
return this;
}
Map<String, dynamic> toJson() => {
'Scope': Scope,
'LimitsOfWork': LimitsOfWork,
'SpecRefs': JsonConverters.toJson(SpecRefs,'List<WorkPackageSpecRef>',context!),
'Constraints': JsonConverters.toJson(Constraints,'List<String>',context!),
'HoldPoints': JsonConverters.toJson(HoldPoints,'List<String>',context!),
'DefinitionOfDone': JsonConverters.toJson(DefinitionOfDone,'List<String>',context!),
'SafetyNote': SafetyNote,
'RfpRef': RfpRef,
'Confidence': Confidence,
'SpecBook': SpecBook,
'UserScope': UserScope,
'DodRemoved': JsonConverters.toJson(DodRemoved,'List<int>',context!),
'DodExtra': JsonConverters.toJson(DodExtra,'List<String>',context!),
'UserEdited': UserEdited,
'DodChecked': JsonConverters.toJson(DodChecked,'List<String>',context!),
'RedraftNote': RedraftNote
};
getTypeName() => "TaskWorkPackage";
TypeContext? context = _ctx;
}
class ProposedTask implements IConvertible
{
int? Seq;
String? Name;
String? Category;
double? Quantity;
String? Unit;
String? SourceItemNumber;
String? SourceReference;
String? Notes;
TaskResourcing? Resourcing;
double? DurationDays;
List<int>? DependsOn = [];
DateTime? EstimatedStartDate;
DateTime? EstimatedEndDate;
TaskWorkPackage? WorkPackage;
int? CreatedJobID;
ProposedTask({this.Seq,this.Name,this.Category,this.Quantity,this.Unit,this.SourceItemNumber,this.SourceReference,this.Notes,this.Resourcing,this.DurationDays,this.DependsOn,this.EstimatedStartDate,this.EstimatedEndDate,this.WorkPackage,this.CreatedJobID});
ProposedTask.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Seq = json['Seq'];
Name = json['Name'];
Category = json['Category'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Unit = json['Unit'];
SourceItemNumber = json['SourceItemNumber'];
SourceReference = json['SourceReference'];
Notes = json['Notes'];
Resourcing = JsonConverters.fromJson(json['Resourcing'],'TaskResourcing',context!);
DurationDays = JsonConverters.toDouble(json['DurationDays']);
DependsOn = JsonConverters.fromJson(json['DependsOn'],'List<int>',context!);
EstimatedStartDate = JsonConverters.fromJson(json['EstimatedStartDate'],'DateTime',context!);
EstimatedEndDate = JsonConverters.fromJson(json['EstimatedEndDate'],'DateTime',context!);
WorkPackage = JsonConverters.fromJson(json['WorkPackage'],'TaskWorkPackage',context!);
CreatedJobID = json['CreatedJobID'];
return this;
}
Map<String, dynamic> toJson() => {
'Seq': Seq,
'Name': Name,
'Category': Category,
'Quantity': Quantity,
'Unit': Unit,
'SourceItemNumber': SourceItemNumber,
'SourceReference': SourceReference,
'Notes': Notes,
'Resourcing': JsonConverters.toJson(Resourcing,'TaskResourcing',context!),
'DurationDays': DurationDays,
'DependsOn': JsonConverters.toJson(DependsOn,'List<int>',context!),
'EstimatedStartDate': JsonConverters.toJson(EstimatedStartDate,'DateTime',context!),
'EstimatedEndDate': JsonConverters.toJson(EstimatedEndDate,'DateTime',context!),
'WorkPackage': JsonConverters.toJson(WorkPackage,'TaskWorkPackage',context!),
'CreatedJobID': CreatedJobID
};
getTypeName() => "ProposedTask";
TypeContext? context = _ctx;
}
class AddendaChange implements IConvertible
{
String? ChangeId;
String? ChangeType;
int? TargetSeq;
String? ItemNumber;
String? ItemName;
String? Field;
String? OldValue;
String? NewValue;
String? Description;
String? Status;
AddendaChange({this.ChangeId,this.ChangeType,this.TargetSeq,this.ItemNumber,this.ItemName,this.Field,this.OldValue,this.NewValue,this.Description,this.Status});
AddendaChange.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ChangeId = json['ChangeId'];
ChangeType = json['ChangeType'];
TargetSeq = json['TargetSeq'];
ItemNumber = json['ItemNumber'];
ItemName = json['ItemName'];
Field = json['Field'];
OldValue = json['OldValue'];
NewValue = json['NewValue'];
Description = json['Description'];
Status = json['Status'];
return this;
}
Map<String, dynamic> toJson() => {
'ChangeId': ChangeId,
'ChangeType': ChangeType,
'TargetSeq': TargetSeq,
'ItemNumber': ItemNumber,
'ItemName': ItemName,
'Field': Field,
'OldValue': OldValue,
'NewValue': NewValue,
'Description': Description,
'Status': Status
};
getTypeName() => "AddendaChange";
TypeContext? context = _ctx;
}
class AddendaChangeSet implements IConvertible
{
String? ChangeSetId;
int? SourceRfpDocumentID;
String? SourceFileName;
String? DocumentType;
DateTime? ExtractedAtUtc;
String? Summary;
List<AddendaChange>? Changes = [];
AddendaChangeSet({this.ChangeSetId,this.SourceRfpDocumentID,this.SourceFileName,this.DocumentType,this.ExtractedAtUtc,this.Summary,this.Changes});
AddendaChangeSet.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ChangeSetId = json['ChangeSetId'];
SourceRfpDocumentID = json['SourceRfpDocumentID'];
SourceFileName = json['SourceFileName'];
DocumentType = json['DocumentType'];
ExtractedAtUtc = JsonConverters.fromJson(json['ExtractedAtUtc'],'DateTime',context!);
Summary = json['Summary'];
Changes = JsonConverters.fromJson(json['Changes'],'List<AddendaChange>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ChangeSetId': ChangeSetId,
'SourceRfpDocumentID': SourceRfpDocumentID,
'SourceFileName': SourceFileName,
'DocumentType': DocumentType,
'ExtractedAtUtc': JsonConverters.toJson(ExtractedAtUtc,'DateTime',context!),
'Summary': Summary,
'Changes': JsonConverters.toJson(Changes,'List<AddendaChange>',context!)
};
getTypeName() => "AddendaChangeSet";
TypeContext? context = _ctx;
}
class WageClassification implements IConvertible
{
String? Title;
double? BaseRate;
double? FringeRate;
String? ParishNote;
String? SourceLine;
double? BenchmarkFringeRate;
String? FringeCompareNote;
WageClassification({this.Title,this.BaseRate,this.FringeRate,this.ParishNote,this.SourceLine,this.BenchmarkFringeRate,this.FringeCompareNote});
WageClassification.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Title = json['Title'];
BaseRate = JsonConverters.toDouble(json['BaseRate']);
FringeRate = JsonConverters.toDouble(json['FringeRate']);
ParishNote = json['ParishNote'];
SourceLine = json['SourceLine'];
BenchmarkFringeRate = JsonConverters.toDouble(json['BenchmarkFringeRate']);
FringeCompareNote = json['FringeCompareNote'];
return this;
}
Map<String, dynamic> toJson() => {
'Title': Title,
'BaseRate': BaseRate,
'FringeRate': FringeRate,
'ParishNote': ParishNote,
'SourceLine': SourceLine,
'BenchmarkFringeRate': BenchmarkFringeRate,
'FringeCompareNote': FringeCompareNote
};
getTypeName() => "WageClassification";
TypeContext? context = _ctx;
}
class WageDeterminationResult implements IConvertible
{
int? SourceRfpDocumentID;
String? SourceFileName;
String? WdNumber;
DateTime? ExtractedAtUtc;
List<WageClassification>? Classifications = [];
String? Source;
bool? IsTrustworthy;
double? ExecutiveOrderFloor;
String? PublishedDate;
String? ProjectParish;
List<String>? Warnings = [];
WageDeterminationResult({this.SourceRfpDocumentID,this.SourceFileName,this.WdNumber,this.ExtractedAtUtc,this.Classifications,this.Source,this.IsTrustworthy,this.ExecutiveOrderFloor,this.PublishedDate,this.ProjectParish,this.Warnings});
WageDeterminationResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
SourceRfpDocumentID = json['SourceRfpDocumentID'];
SourceFileName = json['SourceFileName'];
WdNumber = json['WdNumber'];
ExtractedAtUtc = JsonConverters.fromJson(json['ExtractedAtUtc'],'DateTime',context!);
Classifications = JsonConverters.fromJson(json['Classifications'],'List<WageClassification>',context!);
Source = json['Source'];
IsTrustworthy = json['IsTrustworthy'];
ExecutiveOrderFloor = JsonConverters.toDouble(json['ExecutiveOrderFloor']);
PublishedDate = json['PublishedDate'];
ProjectParish = json['ProjectParish'];
Warnings = JsonConverters.fromJson(json['Warnings'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'SourceRfpDocumentID': SourceRfpDocumentID,
'SourceFileName': SourceFileName,
'WdNumber': WdNumber,
'ExtractedAtUtc': JsonConverters.toJson(ExtractedAtUtc,'DateTime',context!),
'Classifications': JsonConverters.toJson(Classifications,'List<WageClassification>',context!),
'Source': Source,
'IsTrustworthy': IsTrustworthy,
'ExecutiveOrderFloor': ExecutiveOrderFloor,
'PublishedDate': PublishedDate,
'ProjectParish': ProjectParish,
'Warnings': JsonConverters.toJson(Warnings,'List<String>',context!)
};
getTypeName() => "WageDeterminationResult";
TypeContext? context = _ctx;
}
class ProjectProposal implements IConvertible
{
int? RfpDocumentID;
String? Mode;
int? ProjectID;
int? ChangeOrderID;
String? ProjectName;
String? ClientName;
String? ProjectType;
String? ProjectLocation;
String? Scope;
String? ProjectDescription;
int? ContractDurationDays;
String? BidDueDate;
DateTime? EstimatedStartDate;
DateTime? EstimatedEndDate;
List<ProposedTask>? Tasks = [];
List<AddendaChangeSet>? PendingAddendaDiffs = [];
List<WageDeterminationResult>? WageDeterminations = [];
ProjectProposal({this.RfpDocumentID,this.Mode,this.ProjectID,this.ChangeOrderID,this.ProjectName,this.ClientName,this.ProjectType,this.ProjectLocation,this.Scope,this.ProjectDescription,this.ContractDurationDays,this.BidDueDate,this.EstimatedStartDate,this.EstimatedEndDate,this.Tasks,this.PendingAddendaDiffs,this.WageDeterminations});
ProjectProposal.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpDocumentID = json['RfpDocumentID'];
Mode = json['Mode'];
ProjectID = json['ProjectID'];
ChangeOrderID = json['ChangeOrderID'];
ProjectName = json['ProjectName'];
ClientName = json['ClientName'];
ProjectType = json['ProjectType'];
ProjectLocation = json['ProjectLocation'];
Scope = json['Scope'];
ProjectDescription = json['ProjectDescription'];
ContractDurationDays = json['ContractDurationDays'];
BidDueDate = json['BidDueDate'];
EstimatedStartDate = JsonConverters.fromJson(json['EstimatedStartDate'],'DateTime',context!);
EstimatedEndDate = JsonConverters.fromJson(json['EstimatedEndDate'],'DateTime',context!);
Tasks = JsonConverters.fromJson(json['Tasks'],'List<ProposedTask>',context!);
PendingAddendaDiffs = JsonConverters.fromJson(json['PendingAddendaDiffs'],'List<AddendaChangeSet>',context!);
WageDeterminations = JsonConverters.fromJson(json['WageDeterminations'],'List<WageDeterminationResult>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'RfpDocumentID': RfpDocumentID,
'Mode': Mode,
'ProjectID': ProjectID,
'ChangeOrderID': ChangeOrderID,
'ProjectName': ProjectName,
'ClientName': ClientName,
'ProjectType': ProjectType,
'ProjectLocation': ProjectLocation,
'Scope': Scope,
'ProjectDescription': ProjectDescription,
'ContractDurationDays': ContractDurationDays,
'BidDueDate': BidDueDate,
'EstimatedStartDate': JsonConverters.toJson(EstimatedStartDate,'DateTime',context!),
'EstimatedEndDate': JsonConverters.toJson(EstimatedEndDate,'DateTime',context!),
'Tasks': JsonConverters.toJson(Tasks,'List<ProposedTask>',context!),
'PendingAddendaDiffs': JsonConverters.toJson(PendingAddendaDiffs,'List<AddendaChangeSet>',context!),
'WageDeterminations': JsonConverters.toJson(WageDeterminations,'List<WageDeterminationResult>',context!)
};
getTypeName() => "ProjectProposal";
TypeContext? context = _ctx;
}
class EstimateSettingsView implements IConvertible
{
int? RfpEstimateID;
DateTime? StartDate;
DateTime? DeadlineDate;
int? WorkdaysPerWeek;
double? HoursPerDay;
double? WeatherPct;
double? OhpPct;
double? ContingencyPct;
double? BondPct;
List<DateTime>? Holidays = [];
DateTime? AppliedStartDate;
EstimateSettingsView({this.RfpEstimateID,this.StartDate,this.DeadlineDate,this.WorkdaysPerWeek,this.HoursPerDay,this.WeatherPct,this.OhpPct,this.ContingencyPct,this.BondPct,this.Holidays,this.AppliedStartDate});
EstimateSettingsView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpEstimateID = json['RfpEstimateID'];
StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
DeadlineDate = JsonConverters.fromJson(json['DeadlineDate'],'DateTime',context!);
WorkdaysPerWeek = json['WorkdaysPerWeek'];
HoursPerDay = JsonConverters.toDouble(json['HoursPerDay']);
WeatherPct = JsonConverters.toDouble(json['WeatherPct']);
OhpPct = JsonConverters.toDouble(json['OhpPct']);
ContingencyPct = JsonConverters.toDouble(json['ContingencyPct']);
BondPct = JsonConverters.toDouble(json['BondPct']);
Holidays = JsonConverters.fromJson(json['Holidays'],'List<DateTime>',context!);
AppliedStartDate = JsonConverters.fromJson(json['AppliedStartDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'RfpEstimateID': RfpEstimateID,
'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
'DeadlineDate': JsonConverters.toJson(DeadlineDate,'DateTime',context!),
'WorkdaysPerWeek': WorkdaysPerWeek,
'HoursPerDay': HoursPerDay,
'WeatherPct': WeatherPct,
'OhpPct': OhpPct,
'ContingencyPct': ContingencyPct,
'BondPct': BondPct,
'Holidays': JsonConverters.toJson(Holidays,'List<DateTime>',context!),
'AppliedStartDate': JsonConverters.toJson(AppliedStartDate,'DateTime',context!)
};
getTypeName() => "EstimateSettingsView";
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 EstimateCrewLineView implements IConvertible
{
String? Role;
double? Hours;
double? StHours;
double? OtHours;
bool? HasOt;
bool? PremiumApplied;
bool? NeedsRate;
String? RateKey;
String? Chip;
double? Rrop;
double? StCost;
double? OtCost;
double? Cost;
double? FringeCost;
EstimateCrewLineView({this.Role,this.Hours,this.StHours,this.OtHours,this.HasOt,this.PremiumApplied,this.NeedsRate,this.RateKey,this.Chip,this.Rrop,this.StCost,this.OtCost,this.Cost,this.FringeCost});
EstimateCrewLineView.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']);
HasOt = json['HasOt'];
PremiumApplied = json['PremiumApplied'];
NeedsRate = json['NeedsRate'];
RateKey = json['RateKey'];
Chip = json['Chip'];
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']);
return this;
}
Map<String, dynamic> toJson() => {
'Role': Role,
'Hours': Hours,
'StHours': StHours,
'OtHours': OtHours,
'HasOt': HasOt,
'PremiumApplied': PremiumApplied,
'NeedsRate': NeedsRate,
'RateKey': RateKey,
'Chip': Chip,
'Rrop': Rrop,
'StCost': StCost,
'OtCost': OtCost,
'Cost': Cost,
'FringeCost': FringeCost
};
getTypeName() => "EstimateCrewLineView";
TypeContext? context = _ctx;
}
class EstimateEquipmentLineView 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? Chip;
String? RentalExplain;
double? UsageDays;
double? BilledDays;
EstimateEquipmentLineView({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.Chip,this.RentalExplain,this.UsageDays,this.BilledDays});
EstimateEquipmentLineView.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'];
Chip = json['Chip'];
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,
'Chip': Chip,
'RentalExplain': RentalExplain,
'UsageDays': UsageDays,
'BilledDays': BilledDays
};
getTypeName() => "EstimateEquipmentLineView";
TypeContext? context = _ctx;
}
class EstimateMaterialLineView implements IConvertible
{
String? Name;
double? Quantity;
String? Unit;
double? Rate;
bool? NeedsRate;
double? Cost;
String? RateKey;
String? Chip;
EstimateMaterialLineView({this.Name,this.Quantity,this.Unit,this.Rate,this.NeedsRate,this.Cost,this.RateKey,this.Chip});
EstimateMaterialLineView.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'];
Chip = json['Chip'];
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'Quantity': Quantity,
'Unit': Unit,
'Rate': Rate,
'NeedsRate': NeedsRate,
'Cost': Cost,
'RateKey': RateKey,
'Chip': Chip
};
getTypeName() => "EstimateMaterialLineView";
TypeContext? context = _ctx;
}
class EstimateSubcontractView implements IConvertible
{
int? EstimateSubcontractID;
int? TaskSeq;
String? Vendor;
double? Amount;
String? Scope;
EstimateSubcontractView({this.EstimateSubcontractID,this.TaskSeq,this.Vendor,this.Amount,this.Scope});
EstimateSubcontractView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
EstimateSubcontractID = json['EstimateSubcontractID'];
TaskSeq = json['TaskSeq'];
Vendor = json['Vendor'];
Amount = JsonConverters.toDouble(json['Amount']);
Scope = json['Scope'];
return this;
}
Map<String, dynamic> toJson() => {
'EstimateSubcontractID': EstimateSubcontractID,
'TaskSeq': TaskSeq,
'Vendor': Vendor,
'Amount': Amount,
'Scope': Scope
};
getTypeName() => "EstimateSubcontractView";
TypeContext? context = _ctx;
}
class EstimateJobView implements IConvertible
{
int? Seq;
WorkPackageView? WorkPackage;
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;
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? ReferencePrice;
double? ReferenceRangeMin;
double? ReferenceRangeMax;
int? ReferenceN;
DateTime? ReferenceDate;
String? ReferenceBasis;
String? ReferenceUrl;
List<EstimateCrewLineView>? Crew = [];
List<EstimateEquipmentLineView>? Equipment = [];
List<EstimateMaterialLineView>? Materials = [];
List<EstimateSubcontractView>? Subcontracts = [];
EstimateJobView({this.Seq,this.WorkPackage,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.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.ReferencePrice,this.ReferenceRangeMin,this.ReferenceRangeMax,this.ReferenceN,this.ReferenceDate,this.ReferenceBasis,this.ReferenceUrl,this.Crew,this.Equipment,this.Materials,this.Subcontracts});
EstimateJobView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Seq = json['Seq'];
WorkPackage = JsonConverters.fromJson(json['WorkPackage'],'WorkPackageView',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'];
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']);
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'];
Crew = JsonConverters.fromJson(json['Crew'],'List<EstimateCrewLineView>',context!);
Equipment = JsonConverters.fromJson(json['Equipment'],'List<EstimateEquipmentLineView>',context!);
Materials = JsonConverters.fromJson(json['Materials'],'List<EstimateMaterialLineView>',context!);
Subcontracts = JsonConverters.fromJson(json['Subcontracts'],'List<EstimateSubcontractView>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Seq': Seq,
'WorkPackage': JsonConverters.toJson(WorkPackage,'WorkPackageView',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,
'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,
'ReferencePrice': ReferencePrice,
'ReferenceRangeMin': ReferenceRangeMin,
'ReferenceRangeMax': ReferenceRangeMax,
'ReferenceN': ReferenceN,
'ReferenceDate': JsonConverters.toJson(ReferenceDate,'DateTime',context!),
'ReferenceBasis': ReferenceBasis,
'ReferenceUrl': ReferenceUrl,
'Crew': JsonConverters.toJson(Crew,'List<EstimateCrewLineView>',context!),
'Equipment': JsonConverters.toJson(Equipment,'List<EstimateEquipmentLineView>',context!),
'Materials': JsonConverters.toJson(Materials,'List<EstimateMaterialLineView>',context!),
'Subcontracts': JsonConverters.toJson(Subcontracts,'List<EstimateSubcontractView>',context!)
};
getTypeName() => "EstimateJobView";
TypeContext? context = _ctx;
}
class BidScheduleLine implements IConvertible
{
String? ItemNo;
String? Description;
String? Unit;
double? Quantity;
double? UnitPrice;
double? Extension;
String? PricingBasis;
String? PricingRuleId;
double? PricingBandP25;
double? PricingBandP75;
int? PricingBandN;
String? PricingBandLabel;
double? BenchmarkDeltaPct;
bool? BenchmarkFlagged;
String? BenchmarkBasis;
String? Provenance;
String? ProvenanceNote;
int? UnpricedResources;
int? TotalResources;
BidScheduleLine({this.ItemNo,this.Description,this.Unit,this.Quantity,this.UnitPrice,this.Extension,this.PricingBasis,this.PricingRuleId,this.PricingBandP25,this.PricingBandP75,this.PricingBandN,this.PricingBandLabel,this.BenchmarkDeltaPct,this.BenchmarkFlagged,this.BenchmarkBasis,this.Provenance,this.ProvenanceNote,this.UnpricedResources,this.TotalResources});
BidScheduleLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ItemNo = json['ItemNo'];
Description = json['Description'];
Unit = json['Unit'];
Quantity = JsonConverters.toDouble(json['Quantity']);
UnitPrice = JsonConverters.toDouble(json['UnitPrice']);
Extension = JsonConverters.toDouble(json['Extension']);
PricingBasis = json['PricingBasis'];
PricingRuleId = json['PricingRuleId'];
PricingBandP25 = JsonConverters.toDouble(json['PricingBandP25']);
PricingBandP75 = JsonConverters.toDouble(json['PricingBandP75']);
PricingBandN = json['PricingBandN'];
PricingBandLabel = json['PricingBandLabel'];
BenchmarkDeltaPct = JsonConverters.toDouble(json['BenchmarkDeltaPct']);
BenchmarkFlagged = json['BenchmarkFlagged'];
BenchmarkBasis = json['BenchmarkBasis'];
Provenance = json['Provenance'];
ProvenanceNote = json['ProvenanceNote'];
UnpricedResources = json['UnpricedResources'];
TotalResources = json['TotalResources'];
return this;
}
Map<String, dynamic> toJson() => {
'ItemNo': ItemNo,
'Description': Description,
'Unit': Unit,
'Quantity': Quantity,
'UnitPrice': UnitPrice,
'Extension': Extension,
'PricingBasis': PricingBasis,
'PricingRuleId': PricingRuleId,
'PricingBandP25': PricingBandP25,
'PricingBandP75': PricingBandP75,
'PricingBandN': PricingBandN,
'PricingBandLabel': PricingBandLabel,
'BenchmarkDeltaPct': BenchmarkDeltaPct,
'BenchmarkFlagged': BenchmarkFlagged,
'BenchmarkBasis': BenchmarkBasis,
'Provenance': Provenance,
'ProvenanceNote': ProvenanceNote,
'UnpricedResources': UnpricedResources,
'TotalResources': TotalResources
};
getTypeName() => "BidScheduleLine";
TypeContext? context = _ctx;
}
class EstimateVarianceLine implements IConvertible
{
int? Seq;
String? ItemNo;
String? Name;
String? Unit;
double? Quantity;
double? OurUnitPrice;
double? OurTotal;
double? BenchmarkUnitPrice;
double? MarketTotal;
double? DeltaPct;
double? RateMin;
double? RateMax;
int? SampleSize;
bool? OutsideRange;
bool? IsFloor;
bool? IsLump;
String? Severity;
bool? Adopted;
String? Note;
EstimateVarianceLine({this.Seq,this.ItemNo,this.Name,this.Unit,this.Quantity,this.OurUnitPrice,this.OurTotal,this.BenchmarkUnitPrice,this.MarketTotal,this.DeltaPct,this.RateMin,this.RateMax,this.SampleSize,this.OutsideRange,this.IsFloor,this.IsLump,this.Severity,this.Adopted,this.Note});
EstimateVarianceLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Seq = json['Seq'];
ItemNo = json['ItemNo'];
Name = json['Name'];
Unit = json['Unit'];
Quantity = JsonConverters.toDouble(json['Quantity']);
OurUnitPrice = JsonConverters.toDouble(json['OurUnitPrice']);
OurTotal = JsonConverters.toDouble(json['OurTotal']);
BenchmarkUnitPrice = JsonConverters.toDouble(json['BenchmarkUnitPrice']);
MarketTotal = JsonConverters.toDouble(json['MarketTotal']);
DeltaPct = JsonConverters.toDouble(json['DeltaPct']);
RateMin = JsonConverters.toDouble(json['RateMin']);
RateMax = JsonConverters.toDouble(json['RateMax']);
SampleSize = json['SampleSize'];
OutsideRange = json['OutsideRange'];
IsFloor = json['IsFloor'];
IsLump = json['IsLump'];
Severity = json['Severity'];
Adopted = json['Adopted'];
Note = json['Note'];
return this;
}
Map<String, dynamic> toJson() => {
'Seq': Seq,
'ItemNo': ItemNo,
'Name': Name,
'Unit': Unit,
'Quantity': Quantity,
'OurUnitPrice': OurUnitPrice,
'OurTotal': OurTotal,
'BenchmarkUnitPrice': BenchmarkUnitPrice,
'MarketTotal': MarketTotal,
'DeltaPct': DeltaPct,
'RateMin': RateMin,
'RateMax': RateMax,
'SampleSize': SampleSize,
'OutsideRange': OutsideRange,
'IsFloor': IsFloor,
'IsLump': IsLump,
'Severity': Severity,
'Adopted': Adopted,
'Note': Note
};
getTypeName() => "EstimateVarianceLine";
TypeContext? context = _ctx;
}
class EstimateVarianceView implements IConvertible
{
List<EstimateVarianceLine>? Lines = [];
int? ItemsTotal;
int? ItemsBenchmarked;
double? CoverageValuePct;
double? OursTotal;
double? MarketTotal;
double? AggregateDeltaPct;
int? FlooredCount;
int? LumpCount;
int? WatchCount;
int? OutlierCount;
int? CriticalCount;
String? Note;
EstimateVarianceView({this.Lines,this.ItemsTotal,this.ItemsBenchmarked,this.CoverageValuePct,this.OursTotal,this.MarketTotal,this.AggregateDeltaPct,this.FlooredCount,this.LumpCount,this.WatchCount,this.OutlierCount,this.CriticalCount,this.Note});
EstimateVarianceView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Lines = JsonConverters.fromJson(json['Lines'],'List<EstimateVarianceLine>',context!);
ItemsTotal = json['ItemsTotal'];
ItemsBenchmarked = json['ItemsBenchmarked'];
CoverageValuePct = JsonConverters.toDouble(json['CoverageValuePct']);
OursTotal = JsonConverters.toDouble(json['OursTotal']);
MarketTotal = JsonConverters.toDouble(json['MarketTotal']);
AggregateDeltaPct = JsonConverters.toDouble(json['AggregateDeltaPct']);
FlooredCount = json['FlooredCount'];
LumpCount = json['LumpCount'];
WatchCount = json['WatchCount'];
OutlierCount = json['OutlierCount'];
CriticalCount = json['CriticalCount'];
Note = json['Note'];
return this;
}
Map<String, dynamic> toJson() => {
'Lines': JsonConverters.toJson(Lines,'List<EstimateVarianceLine>',context!),
'ItemsTotal': ItemsTotal,
'ItemsBenchmarked': ItemsBenchmarked,
'CoverageValuePct': CoverageValuePct,
'OursTotal': OursTotal,
'MarketTotal': MarketTotal,
'AggregateDeltaPct': AggregateDeltaPct,
'FlooredCount': FlooredCount,
'LumpCount': LumpCount,
'WatchCount': WatchCount,
'OutlierCount': OutlierCount,
'CriticalCount': CriticalCount,
'Note': Note
};
getTypeName() => "EstimateVarianceView";
TypeContext? context = _ctx;
}
class IndicativeLine implements IConvertible
{
int? Seq;
String? ItemNo;
String? Name;
String? Unit;
double? Quantity;
String? Source;
double? UnitPrice;
double? LineTotal;
String? PricePoint;
IndicativeLine({this.Seq,this.ItemNo,this.Name,this.Unit,this.Quantity,this.Source,this.UnitPrice,this.LineTotal,this.PricePoint});
IndicativeLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Seq = json['Seq'];
ItemNo = json['ItemNo'];
Name = json['Name'];
Unit = json['Unit'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Source = json['Source'];
UnitPrice = JsonConverters.toDouble(json['UnitPrice']);
LineTotal = JsonConverters.toDouble(json['LineTotal']);
PricePoint = json['PricePoint'];
return this;
}
Map<String, dynamic> toJson() => {
'Seq': Seq,
'ItemNo': ItemNo,
'Name': Name,
'Unit': Unit,
'Quantity': Quantity,
'Source': Source,
'UnitPrice': UnitPrice,
'LineTotal': LineTotal,
'PricePoint': PricePoint
};
getTypeName() => "IndicativeLine";
TypeContext? context = _ctx;
}
class IndicativeBidView implements IConvertible
{
List<IndicativeLine>? Lines = [];
int? BottomUpCount;
double? BottomUpTotal;
int? BenchmarkCount;
double? BenchmarkTotal;
int? UncoveredCount;
double? UncoveredFloorTotal;
double? IndicativeTotal;
double? FloorTotal;
String? Note;
String? Posture;
double? AggressiveTotal;
double? MarketTotal;
double? PremiumTotal;
int? NoDistributionCount;
IndicativeBidView({this.Lines,this.BottomUpCount,this.BottomUpTotal,this.BenchmarkCount,this.BenchmarkTotal,this.UncoveredCount,this.UncoveredFloorTotal,this.IndicativeTotal,this.FloorTotal,this.Note,this.Posture,this.AggressiveTotal,this.MarketTotal,this.PremiumTotal,this.NoDistributionCount});
IndicativeBidView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Lines = JsonConverters.fromJson(json['Lines'],'List<IndicativeLine>',context!);
BottomUpCount = json['BottomUpCount'];
BottomUpTotal = JsonConverters.toDouble(json['BottomUpTotal']);
BenchmarkCount = json['BenchmarkCount'];
BenchmarkTotal = JsonConverters.toDouble(json['BenchmarkTotal']);
UncoveredCount = json['UncoveredCount'];
UncoveredFloorTotal = JsonConverters.toDouble(json['UncoveredFloorTotal']);
IndicativeTotal = JsonConverters.toDouble(json['IndicativeTotal']);
FloorTotal = JsonConverters.toDouble(json['FloorTotal']);
Note = json['Note'];
Posture = json['Posture'];
AggressiveTotal = JsonConverters.toDouble(json['AggressiveTotal']);
MarketTotal = JsonConverters.toDouble(json['MarketTotal']);
PremiumTotal = JsonConverters.toDouble(json['PremiumTotal']);
NoDistributionCount = json['NoDistributionCount'];
return this;
}
Map<String, dynamic> toJson() => {
'Lines': JsonConverters.toJson(Lines,'List<IndicativeLine>',context!),
'BottomUpCount': BottomUpCount,
'BottomUpTotal': BottomUpTotal,
'BenchmarkCount': BenchmarkCount,
'BenchmarkTotal': BenchmarkTotal,
'UncoveredCount': UncoveredCount,
'UncoveredFloorTotal': UncoveredFloorTotal,
'IndicativeTotal': IndicativeTotal,
'FloorTotal': FloorTotal,
'Note': Note,
'Posture': Posture,
'AggressiveTotal': AggressiveTotal,
'MarketTotal': MarketTotal,
'PremiumTotal': PremiumTotal,
'NoDistributionCount': NoDistributionCount
};
getTypeName() => "IndicativeBidView";
TypeContext? context = _ctx;
}
class BidExposureLine implements IConvertible
{
String? ItemNo;
String? Description;
String? Provenance;
double? Extension;
double? CumulativePct;
String? Note;
BidExposureLine({this.ItemNo,this.Description,this.Provenance,this.Extension,this.CumulativePct,this.Note});
BidExposureLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ItemNo = json['ItemNo'];
Description = json['Description'];
Provenance = json['Provenance'];
Extension = JsonConverters.toDouble(json['Extension']);
CumulativePct = JsonConverters.toDouble(json['CumulativePct']);
Note = json['Note'];
return this;
}
Map<String, dynamic> toJson() => {
'ItemNo': ItemNo,
'Description': Description,
'Provenance': Provenance,
'Extension': Extension,
'CumulativePct': CumulativePct,
'Note': Note
};
getTypeName() => "BidExposureLine";
TypeContext? context = _ctx;
}
class BidOwnershipView implements IConvertible
{
double? OwnTotal;
double? BorrowedTotal;
double? UnknownFloorTotal;
double? ScheduleTotal;
int? OwnCount;
int? BorrowedCount;
int? UnknownCount;
double? OwnPct;
List<BidExposureLine>? TopExposure = [];
BidOwnershipView({this.OwnTotal,this.BorrowedTotal,this.UnknownFloorTotal,this.ScheduleTotal,this.OwnCount,this.BorrowedCount,this.UnknownCount,this.OwnPct,this.TopExposure});
BidOwnershipView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
OwnTotal = JsonConverters.toDouble(json['OwnTotal']);
BorrowedTotal = JsonConverters.toDouble(json['BorrowedTotal']);
UnknownFloorTotal = JsonConverters.toDouble(json['UnknownFloorTotal']);
ScheduleTotal = JsonConverters.toDouble(json['ScheduleTotal']);
OwnCount = json['OwnCount'];
BorrowedCount = json['BorrowedCount'];
UnknownCount = json['UnknownCount'];
OwnPct = JsonConverters.toDouble(json['OwnPct']);
TopExposure = JsonConverters.fromJson(json['TopExposure'],'List<BidExposureLine>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'OwnTotal': OwnTotal,
'BorrowedTotal': BorrowedTotal,
'UnknownFloorTotal': UnknownFloorTotal,
'ScheduleTotal': ScheduleTotal,
'OwnCount': OwnCount,
'BorrowedCount': BorrowedCount,
'UnknownCount': UnknownCount,
'OwnPct': OwnPct,
'TopExposure': JsonConverters.toJson(TopExposure,'List<BidExposureLine>',context!)
};
getTypeName() => "BidOwnershipView";
TypeContext? context = _ctx;
}
class EstimateSummaryView implements IConvertible
{
double? Direct;
double? OhpPct;
double? OhpAmount;
double? BondPct;
double? BondAmount;
double? ContingencyPct;
double? ContingencyAmount;
double? BidTotal;
double? LoadFactor;
double? MarginPct;
EstimateSummaryView({this.Direct,this.OhpPct,this.OhpAmount,this.BondPct,this.BondAmount,this.ContingencyPct,this.ContingencyAmount,this.BidTotal,this.LoadFactor,this.MarginPct});
EstimateSummaryView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Direct = JsonConverters.toDouble(json['Direct']);
OhpPct = JsonConverters.toDouble(json['OhpPct']);
OhpAmount = JsonConverters.toDouble(json['OhpAmount']);
BondPct = JsonConverters.toDouble(json['BondPct']);
BondAmount = JsonConverters.toDouble(json['BondAmount']);
ContingencyPct = JsonConverters.toDouble(json['ContingencyPct']);
ContingencyAmount = JsonConverters.toDouble(json['ContingencyAmount']);
BidTotal = JsonConverters.toDouble(json['BidTotal']);
LoadFactor = JsonConverters.toDouble(json['LoadFactor']);
MarginPct = JsonConverters.toDouble(json['MarginPct']);
return this;
}
Map<String, dynamic> toJson() => {
'Direct': Direct,
'OhpPct': OhpPct,
'OhpAmount': OhpAmount,
'BondPct': BondPct,
'BondAmount': BondAmount,
'ContingencyPct': ContingencyPct,
'ContingencyAmount': ContingencyAmount,
'BidTotal': BidTotal,
'LoadFactor': LoadFactor,
'MarginPct': MarginPct
};
getTypeName() => "EstimateSummaryView";
TypeContext? context = _ctx;
}
class EstimateTimingView implements IConvertible
{
double? TotalWorkdays;
int? CalendarDays;
DateTime? Finish;
bool? Feasible;
DateTime? Deadline;
EstimateTimingView({this.TotalWorkdays,this.CalendarDays,this.Finish,this.Feasible,this.Deadline});
EstimateTimingView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
TotalWorkdays = JsonConverters.toDouble(json['TotalWorkdays']);
CalendarDays = json['CalendarDays'];
Finish = JsonConverters.fromJson(json['Finish'],'DateTime',context!);
Feasible = json['Feasible'];
Deadline = JsonConverters.fromJson(json['Deadline'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'TotalWorkdays': TotalWorkdays,
'CalendarDays': CalendarDays,
'Finish': JsonConverters.toJson(Finish,'DateTime',context!),
'Feasible': Feasible,
'Deadline': JsonConverters.toJson(Deadline,'DateTime',context!)
};
getTypeName() => "EstimateTimingView";
TypeContext? context = _ctx;
}
class EstimateReviewItemView implements IConvertible
{
int? TaskSeq;
String? TaskName;
String? Reason;
String? Status;
EstimateReviewItemView({this.TaskSeq,this.TaskName,this.Reason,this.Status});
EstimateReviewItemView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
TaskSeq = json['TaskSeq'];
TaskName = json['TaskName'];
Reason = json['Reason'];
Status = json['Status'];
return this;
}
Map<String, dynamic> toJson() => {
'TaskSeq': TaskSeq,
'TaskName': TaskName,
'Reason': Reason,
'Status': Status
};
getTypeName() => "EstimateReviewItemView";
TypeContext? context = _ctx;
}
class EstimatingView implements IConvertible
{
int? RfpDocumentID;
String? ProjectName;
String? ClientName;
String? BidDueDate;
String? ProjectType;
EstimateSettingsView? Settings;
List<EstimateJobView>? Jobs = [];
List<BidScheduleLine>? Schedule = [];
double? ScheduleTotal;
EstimateVarianceView? Variance;
IndicativeBidView? Indicative;
BidOwnershipView? Ownership;
EstimateSummaryView? Summary;
EstimateTimingView? Timing;
int? NeedsRateCount;
List<String>? NeedsRateKeys = [];
List<EstimateReviewItemView>? ReviewItems = [];
int? NeedsReviewCount;
bool? CanApprove;
bool? CanSeePay;
EstimatingView({this.RfpDocumentID,this.ProjectName,this.ClientName,this.BidDueDate,this.ProjectType,this.Settings,this.Jobs,this.Schedule,this.ScheduleTotal,this.Variance,this.Indicative,this.Ownership,this.Summary,this.Timing,this.NeedsRateCount,this.NeedsRateKeys,this.ReviewItems,this.NeedsReviewCount,this.CanApprove,this.CanSeePay});
EstimatingView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpDocumentID = json['RfpDocumentID'];
ProjectName = json['ProjectName'];
ClientName = json['ClientName'];
BidDueDate = json['BidDueDate'];
ProjectType = json['ProjectType'];
Settings = JsonConverters.fromJson(json['Settings'],'EstimateSettingsView',context!);
Jobs = JsonConverters.fromJson(json['Jobs'],'List<EstimateJobView>',context!);
Schedule = JsonConverters.fromJson(json['Schedule'],'List<BidScheduleLine>',context!);
ScheduleTotal = JsonConverters.toDouble(json['ScheduleTotal']);
Variance = JsonConverters.fromJson(json['Variance'],'EstimateVarianceView',context!);
Indicative = JsonConverters.fromJson(json['Indicative'],'IndicativeBidView',context!);
Ownership = JsonConverters.fromJson(json['Ownership'],'BidOwnershipView',context!);
Summary = JsonConverters.fromJson(json['Summary'],'EstimateSummaryView',context!);
Timing = JsonConverters.fromJson(json['Timing'],'EstimateTimingView',context!);
NeedsRateCount = json['NeedsRateCount'];
NeedsRateKeys = JsonConverters.fromJson(json['NeedsRateKeys'],'List<String>',context!);
ReviewItems = JsonConverters.fromJson(json['ReviewItems'],'List<EstimateReviewItemView>',context!);
NeedsReviewCount = json['NeedsReviewCount'];
CanApprove = json['CanApprove'];
CanSeePay = json['CanSeePay'];
return this;
}
Map<String, dynamic> toJson() => {
'RfpDocumentID': RfpDocumentID,
'ProjectName': ProjectName,
'ClientName': ClientName,
'BidDueDate': BidDueDate,
'ProjectType': ProjectType,
'Settings': JsonConverters.toJson(Settings,'EstimateSettingsView',context!),
'Jobs': JsonConverters.toJson(Jobs,'List<EstimateJobView>',context!),
'Schedule': JsonConverters.toJson(Schedule,'List<BidScheduleLine>',context!),
'ScheduleTotal': ScheduleTotal,
'Variance': JsonConverters.toJson(Variance,'EstimateVarianceView',context!),
'Indicative': JsonConverters.toJson(Indicative,'IndicativeBidView',context!),
'Ownership': JsonConverters.toJson(Ownership,'BidOwnershipView',context!),
'Summary': JsonConverters.toJson(Summary,'EstimateSummaryView',context!),
'Timing': JsonConverters.toJson(Timing,'EstimateTimingView',context!),
'NeedsRateCount': NeedsRateCount,
'NeedsRateKeys': JsonConverters.toJson(NeedsRateKeys,'List<String>',context!),
'ReviewItems': JsonConverters.toJson(ReviewItems,'List<EstimateReviewItemView>',context!),
'NeedsReviewCount': NeedsReviewCount,
'CanApprove': CanApprove,
'CanSeePay': CanSeePay
};
getTypeName() => "EstimatingView";
TypeContext? context = _ctx;
}
class EstimateSnapshot implements IConvertible
{
DateTime? TakenAtUtc;
ProjectProposal? Proposal;
EstimatingView? View;
EstimateSnapshot({this.TakenAtUtc,this.Proposal,this.View});
EstimateSnapshot.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
TakenAtUtc = JsonConverters.fromJson(json['TakenAtUtc'],'DateTime',context!);
Proposal = JsonConverters.fromJson(json['Proposal'],'ProjectProposal',context!);
View = JsonConverters.fromJson(json['View'],'EstimatingView',context!);
return this;
}
Map<String, dynamic> toJson() => {
'TakenAtUtc': JsonConverters.toJson(TakenAtUtc,'DateTime',context!),
'Proposal': JsonConverters.toJson(Proposal,'ProjectProposal',context!),
'View': JsonConverters.toJson(View,'EstimatingView',context!)
};
getTypeName() => "EstimateSnapshot";
TypeContext? context = _ctx;
}
class EstimateRevisionGetResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
EstimateRevision? Revision;
EstimateSnapshot? Snapshot;
EstimateRevisionGetResponse({this.ResponseStatus,this.Revision,this.Snapshot});
EstimateRevisionGetResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
Revision = JsonConverters.fromJson(json['Revision'],'EstimateRevision',context!);
Snapshot = JsonConverters.fromJson(json['Snapshot'],'EstimateSnapshot',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'Revision': JsonConverters.toJson(Revision,'EstimateRevision',context!),
'Snapshot': JsonConverters.toJson(Snapshot,'EstimateSnapshot',context!)
};
getTypeName() => "EstimateRevisionGetResponse";
TypeContext? context = _ctx;
}
class EstimateRevisionGetRequest implements IConvertible
{
String? RfpDocumentUID;
int? RevisionNo;
EstimateRevisionGetRequest({this.RfpDocumentUID,this.RevisionNo});
EstimateRevisionGetRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpDocumentUID = json['RfpDocumentUID'];
RevisionNo = json['RevisionNo'];
return this;
}
Map<String, dynamic> toJson() => {
'RfpDocumentUID': RfpDocumentUID,
'RevisionNo': RevisionNo
};
getTypeName() => "EstimateRevisionGetRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'EstimateRevision': TypeInfo(TypeOf.Class, create:() => EstimateRevision()),
'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>[]),
'WorkPackageSpecRef': TypeInfo(TypeOf.Class, create:() => WorkPackageSpecRef()),
'TaskWorkPackage': TypeInfo(TypeOf.Class, create:() => TaskWorkPackage()),
'List<WorkPackageSpecRef>': TypeInfo(TypeOf.Class, create:() => <WorkPackageSpecRef>[]),
'ProposedTask': TypeInfo(TypeOf.Class, create:() => ProposedTask()),
'AddendaChange': TypeInfo(TypeOf.Class, create:() => AddendaChange()),
'AddendaChangeSet': TypeInfo(TypeOf.Class, create:() => AddendaChangeSet()),
'List<AddendaChange>': TypeInfo(TypeOf.Class, create:() => <AddendaChange>[]),
'WageClassification': TypeInfo(TypeOf.Class, create:() => WageClassification()),
'WageDeterminationResult': TypeInfo(TypeOf.Class, create:() => WageDeterminationResult()),
'List<WageClassification>': TypeInfo(TypeOf.Class, create:() => <WageClassification>[]),
'ProjectProposal': TypeInfo(TypeOf.Class, create:() => ProjectProposal()),
'List<ProposedTask>': TypeInfo(TypeOf.Class, create:() => <ProposedTask>[]),
'List<AddendaChangeSet>': TypeInfo(TypeOf.Class, create:() => <AddendaChangeSet>[]),
'List<WageDeterminationResult>': TypeInfo(TypeOf.Class, create:() => <WageDeterminationResult>[]),
'EstimateSettingsView': TypeInfo(TypeOf.Class, create:() => EstimateSettingsView()),
'List<DateTime>': TypeInfo(TypeOf.Class, create:() => <DateTime>[]),
'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>[]),
'EstimateCrewLineView': TypeInfo(TypeOf.Class, create:() => EstimateCrewLineView()),
'EstimateEquipmentLineView': TypeInfo(TypeOf.Class, create:() => EstimateEquipmentLineView()),
'EstimateMaterialLineView': TypeInfo(TypeOf.Class, create:() => EstimateMaterialLineView()),
'EstimateSubcontractView': TypeInfo(TypeOf.Class, create:() => EstimateSubcontractView()),
'EstimateJobView': TypeInfo(TypeOf.Class, create:() => EstimateJobView()),
'List<EstimateCrewLineView>': TypeInfo(TypeOf.Class, create:() => <EstimateCrewLineView>[]),
'List<EstimateEquipmentLineView>': TypeInfo(TypeOf.Class, create:() => <EstimateEquipmentLineView>[]),
'List<EstimateMaterialLineView>': TypeInfo(TypeOf.Class, create:() => <EstimateMaterialLineView>[]),
'List<EstimateSubcontractView>': TypeInfo(TypeOf.Class, create:() => <EstimateSubcontractView>[]),
'BidScheduleLine': TypeInfo(TypeOf.Class, create:() => BidScheduleLine()),
'EstimateVarianceLine': TypeInfo(TypeOf.Class, create:() => EstimateVarianceLine()),
'EstimateVarianceView': TypeInfo(TypeOf.Class, create:() => EstimateVarianceView()),
'List<EstimateVarianceLine>': TypeInfo(TypeOf.Class, create:() => <EstimateVarianceLine>[]),
'IndicativeLine': TypeInfo(TypeOf.Class, create:() => IndicativeLine()),
'IndicativeBidView': TypeInfo(TypeOf.Class, create:() => IndicativeBidView()),
'List<IndicativeLine>': TypeInfo(TypeOf.Class, create:() => <IndicativeLine>[]),
'BidExposureLine': TypeInfo(TypeOf.Class, create:() => BidExposureLine()),
'BidOwnershipView': TypeInfo(TypeOf.Class, create:() => BidOwnershipView()),
'List<BidExposureLine>': TypeInfo(TypeOf.Class, create:() => <BidExposureLine>[]),
'EstimateSummaryView': TypeInfo(TypeOf.Class, create:() => EstimateSummaryView()),
'EstimateTimingView': TypeInfo(TypeOf.Class, create:() => EstimateTimingView()),
'EstimateReviewItemView': TypeInfo(TypeOf.Class, create:() => EstimateReviewItemView()),
'EstimatingView': TypeInfo(TypeOf.Class, create:() => EstimatingView()),
'List<EstimateJobView>': TypeInfo(TypeOf.Class, create:() => <EstimateJobView>[]),
'List<BidScheduleLine>': TypeInfo(TypeOf.Class, create:() => <BidScheduleLine>[]),
'List<EstimateReviewItemView>': TypeInfo(TypeOf.Class, create:() => <EstimateReviewItemView>[]),
'EstimateSnapshot': TypeInfo(TypeOf.Class, create:() => EstimateSnapshot()),
'EstimateRevisionGetResponse': TypeInfo(TypeOf.Class, create:() => EstimateRevisionGetResponse()),
'EstimateRevisionGetRequest': TypeInfo(TypeOf.Class, create:() => EstimateRevisionGetRequest()),
});
Dart EstimateRevisionGetRequest 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.
GET /v1/Rfp/{RfpDocumentUID}/Estimate/Revisions/{RevisionNo} 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
}
},
Revision:
{
EstimateRevisionID: 0,
RfpDocumentID: 0,
RevisionNo: 0,
Label: String,
Reason: String,
Trigger: String,
TotalAmount: 0,
LineCount: 0,
CreatedBy: String,
CreatedAt: 0001-01-01,
SnapshotJson: String
},
Snapshot:
{
TakenAtUtc: 0001-01-01,
Proposal:
{
RfpDocumentID: 0,
Mode: String,
ProjectID: 0,
ChangeOrderID: 0,
ProjectName: String,
ClientName: String,
ProjectType: String,
ProjectLocation: String,
Scope: String,
ProjectDescription: String,
ContractDurationDays: 0,
BidDueDate: String,
EstimatedStartDate: 0001-01-01,
EstimatedEndDate: 0001-01-01,
Tasks:
[
{
Seq: 0,
Name: String,
Category: String,
Quantity: 0,
Unit: String,
SourceItemNumber: String,
SourceReference: String,
Notes: 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
},
DurationDays: 0,
DependsOn:
[
0
],
EstimatedStartDate: 0001-01-01,
EstimatedEndDate: 0001-01-01,
WorkPackage:
{
Scope: String,
LimitsOfWork: String,
SpecRefs:
[
{
Section: String,
Title: String
}
],
Constraints:
[
String
],
HoldPoints:
[
String
],
DefinitionOfDone:
[
String
],
SafetyNote: String,
RfpRef: String,
Confidence: 0,
SpecBook: String,
UserScope: String,
DodRemoved:
[
0
],
DodExtra:
[
String
],
UserEdited: False,
DodChecked:
[
String
],
RedraftNote: String
},
CreatedJobID: 0
}
],
PendingAddendaDiffs:
[
{
ChangeSetId: String,
SourceRfpDocumentID: 0,
SourceFileName: String,
DocumentType: String,
ExtractedAtUtc: 0001-01-01,
Summary: String,
Changes:
[
{
ChangeId: String,
ChangeType: String,
TargetSeq: 0,
ItemNumber: String,
ItemName: String,
Field: String,
OldValue: String,
NewValue: String,
Description: String,
Status: String
}
]
}
],
WageDeterminations:
[
{
SourceRfpDocumentID: 0,
SourceFileName: String,
WdNumber: String,
ExtractedAtUtc: 0001-01-01,
Classifications:
[
{
Title: String,
BaseRate: 0,
FringeRate: 0,
ParishNote: String,
SourceLine: String,
BenchmarkFringeRate: 0,
FringeCompareNote: String
}
],
Source: String,
IsTrustworthy: False,
ExecutiveOrderFloor: 0,
PublishedDate: String,
ProjectParish: String,
Warnings:
[
String
]
}
]
},
View:
{
RfpDocumentID: 0,
ProjectName: String,
ClientName: String,
BidDueDate: String,
ProjectType: String,
Settings:
{
RfpEstimateID: 0,
StartDate: 0001-01-01,
DeadlineDate: 0001-01-01,
WorkdaysPerWeek: 0,
HoursPerDay: 0,
WeatherPct: 0,
OhpPct: 0,
ContingencyPct: 0,
BondPct: 0,
Holidays:
[
0001-01-01
],
AppliedStartDate: 0001-01-01
},
Jobs:
[
{
Seq: 0,
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
},
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,
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,
ReferencePrice: 0,
ReferenceRangeMin: 0,
ReferenceRangeMax: 0,
ReferenceN: 0,
ReferenceDate: 0001-01-01,
ReferenceBasis: String,
ReferenceUrl: String,
Crew:
[
{
Role: String,
Hours: 0,
StHours: 0,
OtHours: 0,
HasOt: False,
PremiumApplied: False,
NeedsRate: False,
RateKey: String,
Chip: String,
Rrop: 0,
StCost: 0,
OtCost: 0,
Cost: 0,
FringeCost: 0
}
],
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,
Chip: String,
RentalExplain: String,
UsageDays: 0,
BilledDays: 0
}
],
Materials:
[
{
Name: String,
Quantity: 0,
Unit: String,
Rate: 0,
NeedsRate: False,
Cost: 0,
RateKey: String,
Chip: String
}
],
Subcontracts:
[
{
EstimateSubcontractID: 0,
TaskSeq: 0,
Vendor: String,
Amount: 0,
Scope: String
}
]
}
],
Schedule:
[
{
ItemNo: String,
Description: String,
Unit: String,
Quantity: 0,
UnitPrice: 0,
Extension: 0,
PricingBasis: String,
PricingRuleId: String,
PricingBandP25: 0,
PricingBandP75: 0,
PricingBandN: 0,
PricingBandLabel: String,
BenchmarkDeltaPct: 0,
BenchmarkFlagged: False,
BenchmarkBasis: String,
Provenance: String,
ProvenanceNote: String,
UnpricedResources: 0,
TotalResources: 0
}
],
ScheduleTotal: 0,
Variance:
{
Lines:
[
{
Seq: 0,
ItemNo: String,
Name: String,
Unit: String,
Quantity: 0,
OurUnitPrice: 0,
OurTotal: 0,
BenchmarkUnitPrice: 0,
MarketTotal: 0,
DeltaPct: 0,
RateMin: 0,
RateMax: 0,
SampleSize: 0,
OutsideRange: False,
IsFloor: False,
IsLump: False,
Severity: String,
Adopted: False,
Note: String
}
],
ItemsTotal: 0,
ItemsBenchmarked: 0,
CoverageValuePct: 0,
OursTotal: 0,
MarketTotal: 0,
AggregateDeltaPct: 0,
FlooredCount: 0,
LumpCount: 0,
WatchCount: 0,
OutlierCount: 0,
CriticalCount: 0,
Note: String
},
Indicative:
{
Lines:
[
{
Seq: 0,
ItemNo: String,
Name: String,
Unit: String,
Quantity: 0,
Source: String,
UnitPrice: 0,
LineTotal: 0,
PricePoint: String
}
],
BottomUpCount: 0,
BottomUpTotal: 0,
BenchmarkCount: 0,
BenchmarkTotal: 0,
UncoveredCount: 0,
UncoveredFloorTotal: 0,
IndicativeTotal: 0,
FloorTotal: 0,
Note: String,
Posture: String,
AggressiveTotal: 0,
MarketTotal: 0,
PremiumTotal: 0,
NoDistributionCount: 0
},
Ownership:
{
OwnTotal: 0,
BorrowedTotal: 0,
UnknownFloorTotal: 0,
ScheduleTotal: 0,
OwnCount: 0,
BorrowedCount: 0,
UnknownCount: 0,
OwnPct: 0,
TopExposure:
[
{
ItemNo: String,
Description: String,
Provenance: String,
Extension: 0,
CumulativePct: 0,
Note: String
}
]
},
Summary:
{
Direct: 0,
OhpPct: 0,
OhpAmount: 0,
BondPct: 0,
BondAmount: 0,
ContingencyPct: 0,
ContingencyAmount: 0,
BidTotal: 0,
LoadFactor: 0,
MarginPct: 0
},
Timing:
{
TotalWorkdays: 0,
CalendarDays: 0,
Finish: 0001-01-01,
Feasible: False,
Deadline: 0001-01-01
},
NeedsRateCount: 0,
NeedsRateKeys:
[
String
],
ReviewItems:
[
{
TaskSeq: 0,
TaskName: String,
Reason: String,
Status: String
}
],
NeedsReviewCount: 0,
CanApprove: False,
CanSeePay: False
}
}
}