Trendsic Platform Service

<back to all web services

EstimateSubcontractAddRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
POST,OPTIONS/v1/Rfp/{RfpDocumentUID}/Estimate/Subcontracts
import Foundation
import ServiceStack

public class EstimateSubcontractAddRequest : Codable
{
    public var rfpDocumentUID:String
    public var taskSeq:Int
    public var vendor:String
    public var amount:Double
    public var scope:String

    required public init(){}
}

public class EstimateResponse : Codable
{
    public var responseStatus:ResponseStatus
    public var view:EstimatingView

    required public init(){}
}

public class EstimatingView : Codable
{
    public var rfpDocumentID:Int
    public var projectName:String
    public var clientName:String
    public var bidDueDate:String
    public var projectType:String
    public var settings:EstimateSettingsView
    public var jobs:[EstimateJobView] = []
    public var schedule:[BidScheduleLine] = []
    public var scheduleTotal:Double
    public var variance:EstimateVarianceView
    public var indicative:IndicativeBidView
    public var summary:EstimateSummaryView
    public var timing:EstimateTimingView
    public var needsRateCount:Int
    public var needsRateKeys:[String] = []
    public var reviewItems:[EstimateReviewItemView] = []
    public var needsReviewCount:Int
    public var canApprove:Bool
    public var canSeePay:Bool

    required public init(){}
}

public class EstimateSettingsView : Codable
{
    public var rfpEstimateID:Int
    public var startDate:Date?
    public var deadlineDate:Date?
    public var workdaysPerWeek:Int
    public var hoursPerDay:Double
    public var weatherPct:Double
    public var ohpPct:Double
    public var contingencyPct:Double
    public var bondPct:Double
    public var holidays:[Date] = []
    public var appliedStartDate:Date?

    required public init(){}
}

public class EstimateJobView : Codable
{
    public var seq:Int
    public var workPackage:WorkPackageView
    public var itemNo:String
    public var name:String
    public var category:String
    public var sourceRef:String
    public var unit:String
    public var quantity:Double
    public var patternCode:String
    public var workdays:Int
    public var hoursPerDay:Double
    public var isNight:Bool
    public var weeklyHours:Double
    public var otFraction:Double
    public var days:Double
    public var effectiveProdPerDay:Double?
    public var crewPremiumApplied:Bool
    public var crewCost:Double
    public var fringeCost:Double
    public var equipmentCost:Double
    public var materialCost:Double
    public var subcontractCost:Double
    public var direct:Double
    public var pricingBasis:String
    public var benchmarkUnitPrice:Double?
    public var crew:[EstimateCrewLineView] = []
    public var equipment:[EstimateEquipmentLineView] = []
    public var materials:[EstimateMaterialLineView] = []
    public var subcontracts:[EstimateSubcontractView] = []

    required public init(){}
}

public class WorkPackageView : Codable
{
    public var hasPackage:Bool
    public var scope:String
    public var limitsOfWork:String
    public var specRefs:[SpecRefView] = []
    public var constraints:[String] = []
    public var holdPoints:[String] = []
    public var dod:[DodItemView] = []
    public var safetyNote:String
    public var provenance:String
    public var specBook:String
    public var userEdited:Bool
    public var redraftNote:String

    required public init(){}
}

public class SpecRefView : Codable
{
    public var section:String
    public var title:String
    public var url:String

    required public init(){}
}

public class DodItemView : Codable
{
    public var key:String
    public var text:String
    public var checked:Bool
    public var source:String

    required public init(){}
}

public class EstimateCrewLineView : Codable
{
    public var role:String
    public var hours:Double
    public var stHours:Double
    public var otHours:Double
    public var hasOt:Bool
    public var premiumApplied:Bool
    public var needsRate:Bool
    public var rateKey:String
    public var chip:String
    public var rrop:Double?
    public var stCost:Double?
    public var otCost:Double?
    public var cost:Double?
    public var fringeCost:Double?

    required public init(){}
}

public class EstimateEquipmentLineView : Codable
{
    public var name:String
    public var quantity:Double
    public var rate:Double?
    public var needsRate:Bool
    public var mobCost:Double
    public var cost:Double
    public var isAvailabilityTracked:Bool
    public var isOwned:Bool
    public var availabilityLabel:String
    public var freedFromProject:String
    public var availableFrom:Date?
    public var rateKey:String
    public var chip:String
    public var rentalExplain:String
    public var usageDays:Double
    public var billedDays:Double

    required public init(){}
}

public class EstimateMaterialLineView : Codable
{
    public var name:String
    public var quantity:Double
    public var unit:String
    public var rate:Double?
    public var needsRate:Bool
    public var cost:Double
    public var rateKey:String
    public var chip:String

    required public init(){}
}

public class EstimateSubcontractView : Codable
{
    public var estimateSubcontractID:Int
    public var taskSeq:Int
    public var vendor:String
    public var amount:Double
    public var scope:String

    required public init(){}
}

public class BidScheduleLine : Codable
{
    public var itemNo:String
    public var Description:String
    public var unit:String
    public var quantity:Double
    public var unitPrice:Double
    public var `extension`:Double
    public var pricingBasis:String
    public var benchmarkDeltaPct:Double?
    public var benchmarkFlagged:Bool

    required public init(){}
}

public class EstimateVarianceView : Codable
{
    public var lines:[EstimateVarianceLine] = []
    public var itemsTotal:Int
    public var itemsBenchmarked:Int
    public var coverageValuePct:Double
    public var oursTotal:Double
    public var marketTotal:Double
    public var aggregateDeltaPct:Double?
    public var flooredCount:Int
    public var watchCount:Int
    public var outlierCount:Int
    public var criticalCount:Int
    public var note:String

    required public init(){}
}

public class EstimateVarianceLine : Codable
{
    public var seq:Int
    public var itemNo:String
    public var name:String
    public var unit:String
    public var quantity:Double
    public var ourUnitPrice:Double
    public var ourTotal:Double
    public var benchmarkUnitPrice:Double
    public var marketTotal:Double
    public var deltaPct:Double
    public var rateMin:Double?
    public var rateMax:Double?
    public var sampleSize:Int?
    public var outsideRange:Bool?
    public var isFloor:Bool
    public var severity:String
    public var note:String

    required public init(){}
}

public class IndicativeBidView : Codable
{
    public var lines:[IndicativeLine] = []
    public var bottomUpCount:Int
    public var bottomUpTotal:Double
    public var benchmarkCount:Int
    public var benchmarkTotal:Double
    public var uncoveredCount:Int
    public var uncoveredFloorTotal:Double
    public var indicativeTotal:Double
    public var floorTotal:Double
    public var note:String

    required public init(){}
}

public class IndicativeLine : Codable
{
    public var seq:Int
    public var itemNo:String
    public var name:String
    public var unit:String
    public var quantity:Double
    public var source:String
    public var unitPrice:Double
    public var lineTotal:Double

    required public init(){}
}

public class EstimateSummaryView : Codable
{
    public var direct:Double
    public var ohpPct:Double
    public var ohpAmount:Double
    public var bondPct:Double
    public var bondAmount:Double
    public var contingencyPct:Double
    public var contingencyAmount:Double
    public var bidTotal:Double
    public var loadFactor:Double
    public var marginPct:Double

    required public init(){}
}

public class EstimateTimingView : Codable
{
    public var totalWorkdays:Double
    public var calendarDays:Int
    public var finish:Date
    public var feasible:Bool
    public var deadline:Date?

    required public init(){}
}

public class EstimateReviewItemView : Codable
{
    public var taskSeq:Int
    public var taskName:String
    public var reason:String
    public var status:String

    required public init(){}
}


Swift EstimateSubcontractAddRequest DTOs

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

HTTP + XML

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

POST /v1/Rfp/{RfpDocumentUID}/Estimate/Subcontracts HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<EstimateSubcontractAddRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <Amount>0</Amount>
  <RfpDocumentUID>00000000-0000-0000-0000-000000000000</RfpDocumentUID>
  <Scope>String</Scope>
  <TaskSeq>0</TaskSeq>
  <Vendor>String</Vendor>
</EstimateSubcontractAddRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<EstimateResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <View>
    <BidDueDate>String</BidDueDate>
    <CanApprove>false</CanApprove>
    <CanSeePay>false</CanSeePay>
    <ClientName>String</ClientName>
    <Indicative>
      <BenchmarkCount>0</BenchmarkCount>
      <BenchmarkTotal>0</BenchmarkTotal>
      <BottomUpCount>0</BottomUpCount>
      <BottomUpTotal>0</BottomUpTotal>
      <FloorTotal>0</FloorTotal>
      <IndicativeTotal>0</IndicativeTotal>
      <Lines>
        <IndicativeLine>
          <ItemNo>String</ItemNo>
          <LineTotal>0</LineTotal>
          <Name>String</Name>
          <Quantity>0</Quantity>
          <Seq>0</Seq>
          <Source>String</Source>
          <Unit>String</Unit>
          <UnitPrice>0</UnitPrice>
        </IndicativeLine>
      </Lines>
      <Note>String</Note>
      <UncoveredCount>0</UncoveredCount>
      <UncoveredFloorTotal>0</UncoveredFloorTotal>
    </Indicative>
    <Jobs>
      <EstimateJobView>
        <BenchmarkUnitPrice>0</BenchmarkUnitPrice>
        <Category>String</Category>
        <Crew>
          <EstimateCrewLineView>
            <Chip>String</Chip>
            <Cost>0</Cost>
            <FringeCost>0</FringeCost>
            <HasOt>false</HasOt>
            <Hours>0</Hours>
            <NeedsRate>false</NeedsRate>
            <OtCost>0</OtCost>
            <OtHours>0</OtHours>
            <PremiumApplied>false</PremiumApplied>
            <RateKey>String</RateKey>
            <Role>String</Role>
            <Rrop>0</Rrop>
            <StCost>0</StCost>
            <StHours>0</StHours>
          </EstimateCrewLineView>
        </Crew>
        <CrewCost>0</CrewCost>
        <CrewPremiumApplied>false</CrewPremiumApplied>
        <Days>0</Days>
        <Direct>0</Direct>
        <EffectiveProdPerDay>0</EffectiveProdPerDay>
        <Equipment>
          <EstimateEquipmentLineView>
            <AvailabilityLabel>String</AvailabilityLabel>
            <AvailableFrom>0001-01-01T00:00:00</AvailableFrom>
            <BilledDays>0</BilledDays>
            <Chip>String</Chip>
            <Cost>0</Cost>
            <FreedFromProject>String</FreedFromProject>
            <IsAvailabilityTracked>false</IsAvailabilityTracked>
            <IsOwned>false</IsOwned>
            <MobCost>0</MobCost>
            <Name>String</Name>
            <NeedsRate>false</NeedsRate>
            <Quantity>0</Quantity>
            <Rate>0</Rate>
            <RateKey>String</RateKey>
            <RentalExplain>String</RentalExplain>
            <UsageDays>0</UsageDays>
          </EstimateEquipmentLineView>
        </Equipment>
        <EquipmentCost>0</EquipmentCost>
        <FringeCost>0</FringeCost>
        <HoursPerDay>0</HoursPerDay>
        <IsNight>false</IsNight>
        <ItemNo>String</ItemNo>
        <MaterialCost>0</MaterialCost>
        <Materials>
          <EstimateMaterialLineView>
            <Chip>String</Chip>
            <Cost>0</Cost>
            <Name>String</Name>
            <NeedsRate>false</NeedsRate>
            <Quantity>0</Quantity>
            <Rate>0</Rate>
            <RateKey>String</RateKey>
            <Unit>String</Unit>
          </EstimateMaterialLineView>
        </Materials>
        <Name>String</Name>
        <OtFraction>0</OtFraction>
        <PatternCode>String</PatternCode>
        <PricingBasis>String</PricingBasis>
        <Quantity>0</Quantity>
        <Seq>0</Seq>
        <SourceRef>String</SourceRef>
        <SubcontractCost>0</SubcontractCost>
        <Subcontracts>
          <EstimateSubcontractView>
            <Amount>0</Amount>
            <EstimateSubcontractID>0</EstimateSubcontractID>
            <Scope>String</Scope>
            <TaskSeq>0</TaskSeq>
            <Vendor>String</Vendor>
          </EstimateSubcontractView>
        </Subcontracts>
        <Unit>String</Unit>
        <WeeklyHours>0</WeeklyHours>
        <WorkPackage>
          <Constraints xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:string>String</d6p1:string>
          </Constraints>
          <Dod>
            <RfpWorkPackageService.DodItemView>
              <Checked>false</Checked>
              <Key>String</Key>
              <Source>String</Source>
              <Text>String</Text>
            </RfpWorkPackageService.DodItemView>
          </Dod>
          <HasPackage>false</HasPackage>
          <HoldPoints xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:string>String</d6p1:string>
          </HoldPoints>
          <LimitsOfWork>String</LimitsOfWork>
          <Provenance>String</Provenance>
          <RedraftNote>String</RedraftNote>
          <SafetyNote>String</SafetyNote>
          <Scope>String</Scope>
          <SpecBook>String</SpecBook>
          <SpecRefs>
            <RfpWorkPackageService.SpecRefView>
              <Section>String</Section>
              <Title>String</Title>
              <Url>String</Url>
            </RfpWorkPackageService.SpecRefView>
          </SpecRefs>
          <UserEdited>false</UserEdited>
        </WorkPackage>
        <Workdays>0</Workdays>
      </EstimateJobView>
    </Jobs>
    <NeedsRateCount>0</NeedsRateCount>
    <NeedsRateKeys xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </NeedsRateKeys>
    <NeedsReviewCount>0</NeedsReviewCount>
    <ProjectName>String</ProjectName>
    <ProjectType>String</ProjectType>
    <ReviewItems>
      <EstimateReviewItemView>
        <Reason>String</Reason>
        <Status>String</Status>
        <TaskName>String</TaskName>
        <TaskSeq>0</TaskSeq>
      </EstimateReviewItemView>
    </ReviewItems>
    <RfpDocumentID>0</RfpDocumentID>
    <Schedule>
      <BidScheduleLine>
        <BenchmarkDeltaPct>0</BenchmarkDeltaPct>
        <BenchmarkFlagged>false</BenchmarkFlagged>
        <Description>String</Description>
        <Extension>0</Extension>
        <ItemNo>String</ItemNo>
        <PricingBasis>String</PricingBasis>
        <Quantity>0</Quantity>
        <Unit>String</Unit>
        <UnitPrice>0</UnitPrice>
      </BidScheduleLine>
    </Schedule>
    <ScheduleTotal>0</ScheduleTotal>
    <Settings>
      <AppliedStartDate>0001-01-01T00:00:00</AppliedStartDate>
      <BondPct>0</BondPct>
      <ContingencyPct>0</ContingencyPct>
      <DeadlineDate>0001-01-01T00:00:00</DeadlineDate>
      <Holidays xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:dateTime>0001-01-01T00:00:00</d4p1:dateTime>
      </Holidays>
      <HoursPerDay>0</HoursPerDay>
      <OhpPct>0</OhpPct>
      <RfpEstimateID>0</RfpEstimateID>
      <StartDate>0001-01-01T00:00:00</StartDate>
      <WeatherPct>0</WeatherPct>
      <WorkdaysPerWeek>0</WorkdaysPerWeek>
    </Settings>
    <Summary>
      <BidTotal>0</BidTotal>
      <BondAmount>0</BondAmount>
      <BondPct>0</BondPct>
      <ContingencyAmount>0</ContingencyAmount>
      <ContingencyPct>0</ContingencyPct>
      <Direct>0</Direct>
      <LoadFactor>0</LoadFactor>
      <MarginPct>0</MarginPct>
      <OhpAmount>0</OhpAmount>
      <OhpPct>0</OhpPct>
    </Summary>
    <Timing>
      <CalendarDays>0</CalendarDays>
      <Deadline>0001-01-01T00:00:00</Deadline>
      <Feasible>false</Feasible>
      <Finish>0001-01-01T00:00:00</Finish>
      <TotalWorkdays>0</TotalWorkdays>
    </Timing>
    <Variance>
      <AggregateDeltaPct>0</AggregateDeltaPct>
      <CoverageValuePct>0</CoverageValuePct>
      <CriticalCount>0</CriticalCount>
      <FlooredCount>0</FlooredCount>
      <ItemsBenchmarked>0</ItemsBenchmarked>
      <ItemsTotal>0</ItemsTotal>
      <Lines>
        <EstimateVarianceLine>
          <BenchmarkUnitPrice>0</BenchmarkUnitPrice>
          <DeltaPct>0</DeltaPct>
          <IsFloor>false</IsFloor>
          <ItemNo>String</ItemNo>
          <MarketTotal>0</MarketTotal>
          <Name>String</Name>
          <Note>String</Note>
          <OurTotal>0</OurTotal>
          <OurUnitPrice>0</OurUnitPrice>
          <OutsideRange>false</OutsideRange>
          <Quantity>0</Quantity>
          <RateMax>0</RateMax>
          <RateMin>0</RateMin>
          <SampleSize>0</SampleSize>
          <Seq>0</Seq>
          <Severity>String</Severity>
          <Unit>String</Unit>
        </EstimateVarianceLine>
      </Lines>
      <MarketTotal>0</MarketTotal>
      <Note>String</Note>
      <OursTotal>0</OursTotal>
      <OutlierCount>0</OutlierCount>
      <WatchCount>0</WatchCount>
    </Variance>
  </View>
</EstimateResponse>