Trendsic Platform Service

<back to all web services

ApplyAssemblyRequest

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


open class ApplyAssemblyRequest
{
    open var RfpDocumentUID:UUID? = null
    open var TaskSeq:Int? = null
    open var TemplateUID:UUID? = null
}

open class ApplyAssemblyResponse
{
    open var ResponseStatus:ResponseStatus? = null
    open var TaskSeq:Int? = null
    open var TemplateUID:UUID? = null
    open var TemplateName:String? = null
    open var Quantity:BigDecimal? = null
    open var Unit:String? = null
    open var Resourcing:TaskResourcing? = null
    open var Job:EstimateJobResult? = null
    open var Headline:String? = null
}

open class TaskResourcing
{
    open var Positions:ArrayList<ResourcedPosition> = ArrayList<ResourcedPosition>()
    open var Equipment:ArrayList<ResourcedEquipment> = ArrayList<ResourcedEquipment>()
    open var Materials:ArrayList<ResourcedMaterial> = ArrayList<ResourcedMaterial>()
    open var ResourcedForQuantity:Double? = null
    open var ProductionRatePerDay:Double? = null
    open var FixedDays:Double? = null
}

open class ResourcedPosition
{
    open var PositionTag:String? = null
    open var Hours:Double? = null
    open var CrewSize:Double? = null
    open var Utilization:Double? = null
    open var FixedDays:Double? = null
    open var Headcount:Int? = null
    open var SourceReference:String? = null
    open var Notes:String? = null
    open var IsInCatalog:Boolean? = null
    open var ContactID:Int? = null
}

open class ResourcedEquipment
{
    open var EquipmentID:Int? = null
    open var EquipmentName:String? = null
    open var MakeModel:String? = null
    open var Quantity:Double? = null
    open var DurationDays:Double? = null
    open var Utilization:Double? = null
    open var FixedDays:Double? = null
    open var SourceReference:String? = null
    open var Notes:String? = null
    open var IsInCatalog:Boolean? = null
    open var SuggestedEquipmentID:Int? = null
    open var SuggestedEquipmentName:String? = null
}

open class ResourcedMaterial
{
    open var MaterialID:Int? = null
    open var MaterialName:String? = null
    open var MakeModel:String? = null
    open var Quantity:Double? = null
    open var QuantityPerUnit:Double? = null
    open var Unit:String? = null
    open var SourceReference:String? = null
    open var Notes:String? = null
    open var IsInCatalog:Boolean? = null
    open var SuggestedMaterialID:Int? = null
    open var SuggestedMaterialName:String? = null
}

open class EstimateJobResult
{
    open var Seq:Int? = null
    open var DependsOn:ArrayList<Int> = ArrayList<Int>()
    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 WorkPackage:WorkPackageView? = null
    open var Crew:ArrayList<EstimateCrewLineResult> = ArrayList<EstimateCrewLineResult>()
    open var Equipment:ArrayList<EstimateEquipmentLineResult> = ArrayList<EstimateEquipmentLineResult>()
    open var Materials:ArrayList<EstimateMaterialLineResult> = ArrayList<EstimateMaterialLineResult>()
    open var Subcontracts:ArrayList<EstimateSubcontractLine> = ArrayList<EstimateSubcontractLine>()
    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 PricingRuleId:String? = null
    open var PricingBandP25:BigDecimal? = null
    open var PricingBandP75:BigDecimal? = null
    open var PricingBandN:Int? = null
    open var PricingBandLabel:String? = null
    open var BenchmarkUnitPrice:BigDecimal? = null
    open var BenchmarkRateMin:BigDecimal? = null
    open var BenchmarkRateMax:BigDecimal? = null
    open var BenchmarkSampleSize:Int? = null
    open var BenchmarkP25:BigDecimal? = null
    open var BenchmarkP75:BigDecimal? = null
    open var BenchmarkBasis:String? = null
    open var UnitPriceOverride:BigDecimal? = null
    open var OverrideBasis:String? = null
    open var ReferencePrice:BigDecimal? = null
    open var ReferenceRangeMin:BigDecimal? = null
    open var ReferenceRangeMax:BigDecimal? = null
    open var ReferenceN:Int? = null
    open var ReferenceDate:Date? = null
    open var ReferenceBasis:String? = null
    open var ReferenceUrl:String? = null
}

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 EstimateCrewLineResult
{
    open var Role:String? = null
    open var Hours:BigDecimal? = null
    open var StHours:BigDecimal? = null
    open var OtHours:BigDecimal? = 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 var PremiumApplied:Boolean? = null
    open var HasOt:Boolean? = null
    open var NeedsRate:Boolean? = null
}

open class EstimateEquipmentLineResult
{
    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 RentalExplain:String? = null
    open var UsageDays:BigDecimal? = null
    open var BilledDays:BigDecimal? = null
}

open class EstimateMaterialLineResult
{
    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 class EstimateSubcontractLine
{
    open var Vendor:String? = null
    open var Amount:BigDecimal? = null
    open var Scope:String? = null
}

Kotlin ApplyAssemblyRequest 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.

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
}