Trendsic Platform Service

<back to all web services

EstimateMarkupPutRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
PUT,OPTIONS/v1/Rfp/{RfpDocumentUID}/Estimate/Markup
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class EstimateMarkupPutRequest
{
    open var RfpDocumentUID:UUID? = null
    open var OhpPct:BigDecimal? = null
    open var ContingencyPct:BigDecimal? = null
    open var BondPct:BigDecimal? = null
}

open class EstimateResponse
{
    open var ResponseStatus:ResponseStatus? = null
    open var View:EstimatingView? = null
}

open class EstimatingView
{
    open var RfpDocumentID:Int? = null
    open var ProjectName:String? = null
    open var ClientName:String? = null
    open var BidDueDate:String? = null
    open var ProjectType:String? = null
    open var Settings:EstimateSettingsView? = null
    open var Jobs:ArrayList<EstimateJobView> = ArrayList<EstimateJobView>()
    open var Schedule:ArrayList<BidScheduleLine> = ArrayList<BidScheduleLine>()
    open var ScheduleTotal:BigDecimal? = null
    open var Variance:EstimateVarianceView? = null
    open var Indicative:IndicativeBidView? = null
    open var Summary:EstimateSummaryView? = null
    open var Timing:EstimateTimingView? = null
    open var NeedsRateCount:Int? = null
    open var NeedsRateKeys:ArrayList<String> = ArrayList<String>()
    open var ReviewItems:ArrayList<EstimateReviewItemView> = ArrayList<EstimateReviewItemView>()
    open var NeedsReviewCount:Int? = null
    open var CanApprove:Boolean? = null
    open var CanSeePay:Boolean? = null
}

open class EstimateSettingsView
{
    open var RfpEstimateID:Int? = null
    open var StartDate:Date? = null
    open var DeadlineDate:Date? = null
    open var WorkdaysPerWeek:Int? = null
    open var HoursPerDay:BigDecimal? = null
    open var WeatherPct:BigDecimal? = null
    open var OhpPct:BigDecimal? = null
    open var ContingencyPct:BigDecimal? = null
    open var BondPct:BigDecimal? = null
    open var Holidays:ArrayList<Date> = ArrayList<Date>()
    open var AppliedStartDate:Date? = null
}

open class EstimateJobView
{
    open var Seq:Int? = null
    open var WorkPackage:WorkPackageView? = null
    open var ItemNo:String? = null
    open var Name:String? = null
    open var Category:String? = null
    open var SourceRef:String? = null
    open var Unit:String? = null
    open var Quantity:BigDecimal? = null
    open var PatternCode:String? = null
    open var Workdays:Int? = null
    open var HoursPerDay:BigDecimal? = null
    open var IsNight:Boolean? = null
    open var WeeklyHours:BigDecimal? = null
    open var OtFraction:BigDecimal? = null
    open var Days:BigDecimal? = null
    open var EffectiveProdPerDay:BigDecimal? = null
    open var CrewPremiumApplied:Boolean? = null
    open var CrewCost:BigDecimal? = null
    open var FringeCost:BigDecimal? = null
    open var EquipmentCost:BigDecimal? = null
    open var MaterialCost:BigDecimal? = null
    open var SubcontractCost:BigDecimal? = null
    open var Direct:BigDecimal? = null
    open var PricingBasis:String? = null
    open var BenchmarkUnitPrice:BigDecimal? = null
    open var Crew:ArrayList<EstimateCrewLineView> = ArrayList<EstimateCrewLineView>()
    open var Equipment:ArrayList<EstimateEquipmentLineView> = ArrayList<EstimateEquipmentLineView>()
    open var Materials:ArrayList<EstimateMaterialLineView> = ArrayList<EstimateMaterialLineView>()
    open var Subcontracts:ArrayList<EstimateSubcontractView> = ArrayList<EstimateSubcontractView>()
}

open class WorkPackageView
{
    open var HasPackage:Boolean? = null
    open var Scope:String? = null
    open var LimitsOfWork:String? = null
    open var SpecRefs:ArrayList<SpecRefView> = ArrayList<SpecRefView>()
    open var Constraints:ArrayList<String> = ArrayList<String>()
    open var HoldPoints:ArrayList<String> = ArrayList<String>()
    open var Dod:ArrayList<DodItemView> = ArrayList<DodItemView>()
    open var SafetyNote:String? = null
    open var Provenance:String? = null
    open var SpecBook:String? = null
    open var UserEdited:Boolean? = null
    open var RedraftNote:String? = null
}

open class SpecRefView
{
    open var Section:String? = null
    open var Title:String? = null
    open var Url:String? = null
}

open class DodItemView
{
    open var Key:String? = null
    open var Text:String? = null
    open var Checked:Boolean? = null
    open var Source:String? = null
}

open class EstimateCrewLineView
{
    open var Role:String? = null
    open var Hours:BigDecimal? = null
    open var StHours:BigDecimal? = null
    open var OtHours:BigDecimal? = null
    open var HasOt:Boolean? = null
    open var PremiumApplied:Boolean? = null
    open var NeedsRate:Boolean? = null
    open var RateKey:String? = null
    open var Chip:String? = null
    open var Rrop:BigDecimal? = null
    open var StCost:BigDecimal? = null
    open var OtCost:BigDecimal? = null
    open var Cost:BigDecimal? = null
    open var FringeCost:BigDecimal? = null
}

open class EstimateEquipmentLineView
{
    open var Name:String? = null
    open var Quantity:BigDecimal? = null
    open var Rate:BigDecimal? = null
    open var NeedsRate:Boolean? = null
    open var MobCost:BigDecimal? = null
    open var Cost:BigDecimal? = null
    open var IsAvailabilityTracked:Boolean? = null
    open var IsOwned:Boolean? = null
    open var AvailabilityLabel:String? = null
    open var FreedFromProject:String? = null
    open var AvailableFrom:Date? = null
    open var RateKey:String? = null
    open var Chip:String? = null
    open var RentalExplain:String? = null
    open var UsageDays:BigDecimal? = null
    open var BilledDays:BigDecimal? = null
}

open class EstimateMaterialLineView
{
    open var Name:String? = null
    open var Quantity:BigDecimal? = null
    open var Unit:String? = null
    open var Rate:BigDecimal? = null
    open var NeedsRate:Boolean? = null
    open var Cost:BigDecimal? = null
    open var RateKey:String? = null
    open var Chip:String? = null
}

open class EstimateSubcontractView
{
    open var EstimateSubcontractID:Int? = null
    open var TaskSeq:Int? = null
    open var Vendor:String? = null
    open var Amount:BigDecimal? = null
    open var Scope:String? = null
}

open class BidScheduleLine
{
    open var ItemNo:String? = null
    open var Description:String? = null
    open var Unit:String? = null
    open var Quantity:BigDecimal? = null
    open var UnitPrice:BigDecimal? = null
    open var Extension:BigDecimal? = null
    open var PricingBasis:String? = null
    open var BenchmarkDeltaPct:BigDecimal? = null
    open var BenchmarkFlagged:Boolean? = null
}

open class EstimateVarianceView
{
    open var Lines:ArrayList<EstimateVarianceLine> = ArrayList<EstimateVarianceLine>()
    open var ItemsTotal:Int? = null
    open var ItemsBenchmarked:Int? = null
    open var CoverageValuePct:BigDecimal? = null
    open var OursTotal:BigDecimal? = null
    open var MarketTotal:BigDecimal? = null
    open var AggregateDeltaPct:BigDecimal? = null
    open var FlooredCount:Int? = null
    open var WatchCount:Int? = null
    open var OutlierCount:Int? = null
    open var CriticalCount:Int? = null
    open var Note:String? = null
}

open class EstimateVarianceLine
{
    open var Seq:Int? = null
    open var ItemNo:String? = null
    open var Name:String? = null
    open var Unit:String? = null
    open var Quantity:BigDecimal? = null
    open var OurUnitPrice:BigDecimal? = null
    open var OurTotal:BigDecimal? = null
    open var BenchmarkUnitPrice:BigDecimal? = null
    open var MarketTotal:BigDecimal? = null
    open var DeltaPct:BigDecimal? = null
    open var RateMin:BigDecimal? = null
    open var RateMax:BigDecimal? = null
    open var SampleSize:Int? = null
    open var OutsideRange:Boolean? = null
    open var IsFloor:Boolean? = null
    open var Severity:String? = null
    open var Note:String? = null
}

open class IndicativeBidView
{
    open var Lines:ArrayList<IndicativeLine> = ArrayList<IndicativeLine>()
    open var BottomUpCount:Int? = null
    open var BottomUpTotal:BigDecimal? = null
    open var BenchmarkCount:Int? = null
    open var BenchmarkTotal:BigDecimal? = null
    open var UncoveredCount:Int? = null
    open var UncoveredFloorTotal:BigDecimal? = null
    open var IndicativeTotal:BigDecimal? = null
    open var FloorTotal:BigDecimal? = null
    open var Note:String? = null
}

open class IndicativeLine
{
    open var Seq:Int? = null
    open var ItemNo:String? = null
    open var Name:String? = null
    open var Unit:String? = null
    open var Quantity:BigDecimal? = null
    open var Source:String? = null
    open var UnitPrice:BigDecimal? = null
    open var LineTotal:BigDecimal? = null
}

open class EstimateSummaryView
{
    open var Direct:BigDecimal? = null
    open var OhpPct:BigDecimal? = null
    open var OhpAmount:BigDecimal? = null
    open var BondPct:BigDecimal? = null
    open var BondAmount:BigDecimal? = null
    open var ContingencyPct:BigDecimal? = null
    open var ContingencyAmount:BigDecimal? = null
    open var BidTotal:BigDecimal? = null
    open var LoadFactor:BigDecimal? = null
    open var MarginPct:BigDecimal? = null
}

open class EstimateTimingView
{
    open var TotalWorkdays:BigDecimal? = null
    open var CalendarDays:Int? = null
    open var Finish:Date? = null
    open var Feasible:Boolean? = null
    open var Deadline:Date? = null
}

open class EstimateReviewItemView
{
    open var TaskSeq:Int? = null
    open var TaskName:String? = null
    open var Reason:String? = null
    open var Status:String? = null
}

Kotlin EstimateMarkupPutRequest DTOs

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

HTTP + JSV

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

PUT /v1/Rfp/{RfpDocumentUID}/Estimate/Markup HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	RfpDocumentUID: 00000000000000000000000000000000,
	OhpPct: 0,
	ContingencyPct: 0,
	BondPct: 0
}
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
		}
	},
	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,
				BenchmarkUnitPrice: 0,
				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,
				BenchmarkDeltaPct: 0,
				BenchmarkFlagged: False
			}
		],
		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,
					Severity: String,
					Note: String
				}
			],
			ItemsTotal: 0,
			ItemsBenchmarked: 0,
			CoverageValuePct: 0,
			OursTotal: 0,
			MarketTotal: 0,
			AggregateDeltaPct: 0,
			FlooredCount: 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
				}
			],
			BottomUpCount: 0,
			BottomUpTotal: 0,
			BenchmarkCount: 0,
			BenchmarkTotal: 0,
			UncoveredCount: 0,
			UncoveredFloorTotal: 0,
			IndicativeTotal: 0,
			FloorTotal: 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
	}
}