| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/Rfp/PricePreview |
|---|
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports CRM.AgencyPlatform.API.Internal
Namespace Global
Namespace CRM.AgencyPlatform.API.Internal
Public Partial Class CostRange
Public Overridable Property Min As Double
Public Overridable Property Max As Double
Public Overridable Property Mid As Double
End Class
Public Partial Class PricedEquipment
Public Overridable Property EquipmentID As Integer
Public Overridable Property EquipmentName As String
Public Overridable Property Quantity As Double
Public Overridable Property DurationDays As Double?
Public Overridable Property RateType As String
Public Overridable Property BilledRate As Double?
Public Overridable Property CostRate As Double?
Public Overridable Property HasRate As Boolean
Public Overridable Property IsInCatalog As Boolean
Public Overridable Property Cost As Double
Public Overridable Property CompanyCost As Double
Public Overridable Property Margin As Double
End Class
Public Partial Class PricedMaterial
Public Overridable Property MaterialID As Integer
Public Overridable Property MaterialName As String
Public Overridable Property Quantity As Double
Public Overridable Property UnitCost As Double?
Public Overridable Property HasRate As Boolean
Public Overridable Property IsInCatalog As Boolean
Public Overridable Property Cost As Double
End Class
Public Partial Class PricedPosition
Public Overridable Property PositionTag As String
Public Overridable Property Hours As Double
Public Overridable Property HasInternalRate As Boolean
Public Overridable Property RateMin As Double?
Public Overridable Property RateMax As Double?
Public Overridable Property RateAvg As Double?
Public Overridable Property ContactCount As Integer
Public Overridable Property Cost As CostRange
Public Overridable Property MarketRateReference As Double?
End Class
Public Partial Class PricedProposal
Public Overridable Property RfpDocumentID As Integer
Public Overridable Property ProjectName As String
Public Overridable Property Currency As String
Public Overridable Property Tasks As List(Of PricedTask) = New List(Of PricedTask)
Public Overridable Property Total As CostRange
Public Overridable Property PositionsNeedingRate As Integer
Public Overridable Property EquipmentNotInCatalog As Integer
Public Overridable Property MaterialsNotInCatalog As Integer
Public Overridable Property PositionsNotInCatalog As Integer
Public Overridable Property EquipmentMargin As Double
End Class
Public Partial Class PricedTask
Public Overridable Property Name As String
Public Overridable Property Category As String
Public Overridable Property Positions As List(Of PricedPosition) = New List(Of PricedPosition)
Public Overridable Property Equipment As List(Of PricedEquipment) = New List(Of PricedEquipment)
Public Overridable Property Materials As List(Of PricedMaterial) = New List(Of PricedMaterial)
Public Overridable Property Subtotal As CostRange
End Class
Public Partial Class ProjectProposal
Public Overridable Property RfpDocumentID As Integer
Public Overridable Property ProjectName As String
Public Overridable Property ClientName As String
Public Overridable Property ProjectType As String
Public Overridable Property ProjectLocation As String
Public Overridable Property Scope As String
Public Overridable Property ProjectDescription As String
Public Overridable Property ContractDurationDays As Integer?
Public Overridable Property BidDueDate As String
Public Overridable Property EstimatedStartDate As Date?
Public Overridable Property EstimatedEndDate As Date?
Public Overridable Property Tasks As List(Of ProposedTask) = New List(Of ProposedTask)
End Class
Public Partial Class ProposedTask
Public Overridable Property Seq As Integer
Public Overridable Property Name As String
Public Overridable Property Category As String
Public Overridable Property Quantity As Double?
Public Overridable Property Unit As String
Public Overridable Property SourceItemNumber As String
Public Overridable Property SourceReference As String
Public Overridable Property Notes As String
Public Overridable Property Resourcing As TaskResourcing
Public Overridable Property DurationDays As Double?
Public Overridable Property DependsOn As List(Of Integer) = New List(Of Integer)
Public Overridable Property EstimatedStartDate As Date?
Public Overridable Property EstimatedEndDate As Date?
End Class
Public Partial Class ResourcedEquipment
Public Overridable Property EquipmentID As Integer
Public Overridable Property EquipmentName As String
Public Overridable Property MakeModel As String
Public Overridable Property Quantity As Double?
Public Overridable Property DurationDays As Double?
Public Overridable Property SourceReference As String
Public Overridable Property Notes As String
Public Overridable Property IsInCatalog As Boolean
Public Overridable Property SuggestedEquipmentID As Integer
Public Overridable Property SuggestedEquipmentName As String
End Class
Public Partial Class ResourcedMaterial
Public Overridable Property MaterialID As Integer
Public Overridable Property MaterialName As String
Public Overridable Property MakeModel As String
Public Overridable Property Quantity As Double?
Public Overridable Property Unit As String
Public Overridable Property SourceReference As String
Public Overridable Property Notes As String
Public Overridable Property IsInCatalog As Boolean
Public Overridable Property SuggestedMaterialID As Integer
Public Overridable Property SuggestedMaterialName As String
End Class
Public Partial Class ResourcedPosition
Public Overridable Property PositionTag As String
Public Overridable Property Hours As Double?
Public Overridable Property Headcount As Integer?
Public Overridable Property SourceReference As String
Public Overridable Property Notes As String
Public Overridable Property IsInCatalog As Boolean
Public Overridable Property ContactID As Integer?
End Class
Public Partial Class RfpPricePreviewRequest
Public Overridable Property Proposal As ProjectProposal
End Class
Public Partial Class RfpPricingResponse
Public Overridable Property ResponseStatus As ResponseStatus
Public Overridable Property RfpDocumentID As Integer
Public Overridable Property Pricing As PricedProposal
End Class
Public Partial Class TaskResourcing
Public Overridable Property Positions As List(Of ResourcedPosition) = New List(Of ResourcedPosition)
Public Overridable Property Equipment As List(Of ResourcedEquipment) = New List(Of ResourcedEquipment)
Public Overridable Property Materials As List(Of ResourcedMaterial) = New List(Of ResourcedMaterial)
End Class
End Namespace
End Namespace
VB.NET RfpPricePreviewRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/Rfp/PricePreview HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Proposal:
{
RfpDocumentID: 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,
Headcount: 0,
SourceReference: String,
Notes: String,
IsInCatalog: False,
ContactID: 0
}
],
Equipment:
[
{
EquipmentID: 0,
EquipmentName: String,
MakeModel: String,
Quantity: 0,
DurationDays: 0,
SourceReference: String,
Notes: String,
IsInCatalog: False,
SuggestedEquipmentID: 0,
SuggestedEquipmentName: String
}
],
Materials:
[
{
MaterialID: 0,
MaterialName: String,
MakeModel: String,
Quantity: 0,
Unit: String,
SourceReference: String,
Notes: String,
IsInCatalog: False,
SuggestedMaterialID: 0,
SuggestedMaterialName: String
}
]
},
DurationDays: 0,
DependsOn:
[
0
],
EstimatedStartDate: 0001-01-01,
EstimatedEndDate: 0001-01-01
}
]
}
}
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
}
},
RfpDocumentID: 0,
Pricing:
{
RfpDocumentID: 0,
ProjectName: String,
Currency: String,
Tasks:
[
{
Name: String,
Category: String,
Positions:
[
{
PositionTag: String,
Hours: 0,
HasInternalRate: False,
RateMin: 0,
RateMax: 0,
RateAvg: 0,
ContactCount: 0,
Cost:
{
Min: 0,
Max: 0,
Mid: 0
},
MarketRateReference: 0
}
],
Equipment:
[
{
EquipmentID: 0,
EquipmentName: String,
Quantity: 0,
DurationDays: 0,
RateType: String,
BilledRate: 0,
CostRate: 0,
HasRate: False,
IsInCatalog: False,
Cost: 0,
CompanyCost: 0,
Margin: 0
}
],
Materials:
[
{
MaterialID: 0,
MaterialName: String,
Quantity: 0,
UnitCost: 0,
HasRate: False,
IsInCatalog: False,
Cost: 0
}
],
Subtotal:
{
Min: 0,
Max: 0,
Mid: 0
}
}
],
Total:
{
Min: 0,
Max: 0,
Mid: 0
},
PositionsNeedingRate: 0,
EquipmentNotInCatalog: 0,
MaterialsNotInCatalog: 0,
PositionsNotInCatalog: 0,
EquipmentMargin: 0
}
}