| Requires any of the roles: | Agent, Administrator |
| GET,OPTIONS | /v1/Rfp/{RfpDocumentUID}/Pricing |
|---|
namespace CRM.AgencyPlatform.API.Internal
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type CostRange() =
member val Min:Double = new Double() with get,set
member val Max:Double = new Double() with get,set
member val Mid:Double = new Double() with get,set
[<AllowNullLiteral>]
type PricedPosition() =
member val PositionTag:String = null with get,set
member val Hours:Double = new Double() with get,set
member val HasInternalRate:Boolean = new Boolean() with get,set
member val RateMin:Nullable<Double> = new Nullable<Double>() with get,set
member val RateMax:Nullable<Double> = new Nullable<Double>() with get,set
member val RateAvg:Nullable<Double> = new Nullable<Double>() with get,set
member val ContactCount:Int32 = new Int32() with get,set
member val Cost:CostRange = null with get,set
member val MarketRateReference:Nullable<Double> = new Nullable<Double>() with get,set
[<AllowNullLiteral>]
type PricedEquipment() =
member val EquipmentID:Int32 = new Int32() with get,set
member val EquipmentName:String = null with get,set
member val Quantity:Double = new Double() with get,set
member val DurationDays:Nullable<Double> = new Nullable<Double>() with get,set
member val RateType:String = null with get,set
member val BilledRate:Nullable<Double> = new Nullable<Double>() with get,set
member val CostRate:Nullable<Double> = new Nullable<Double>() with get,set
member val HasRate:Boolean = new Boolean() with get,set
member val IsInCatalog:Boolean = new Boolean() with get,set
member val Cost:Double = new Double() with get,set
member val CompanyCost:Double = new Double() with get,set
member val Margin:Double = new Double() with get,set
[<AllowNullLiteral>]
type PricedMaterial() =
member val MaterialID:Int32 = new Int32() with get,set
member val MaterialName:String = null with get,set
member val Quantity:Double = new Double() with get,set
member val UnitCost:Nullable<Double> = new Nullable<Double>() with get,set
member val HasRate:Boolean = new Boolean() with get,set
member val IsInCatalog:Boolean = new Boolean() with get,set
member val Cost:Double = new Double() with get,set
[<AllowNullLiteral>]
type PricedTask() =
member val Name:String = null with get,set
member val Category:String = null with get,set
member val Positions:ResizeArray<PricedPosition> = new ResizeArray<PricedPosition>() with get,set
member val Equipment:ResizeArray<PricedEquipment> = new ResizeArray<PricedEquipment>() with get,set
member val Materials:ResizeArray<PricedMaterial> = new ResizeArray<PricedMaterial>() with get,set
member val Subtotal:CostRange = null with get,set
[<AllowNullLiteral>]
type PricedProposal() =
member val RfpDocumentID:Int32 = new Int32() with get,set
member val ProjectName:String = null with get,set
member val Currency:String = null with get,set
member val Tasks:ResizeArray<PricedTask> = new ResizeArray<PricedTask>() with get,set
member val Total:CostRange = null with get,set
member val PositionsNeedingRate:Int32 = new Int32() with get,set
member val EquipmentNotInCatalog:Int32 = new Int32() with get,set
member val MaterialsNotInCatalog:Int32 = new Int32() with get,set
member val PositionsNotInCatalog:Int32 = new Int32() with get,set
member val EquipmentMargin:Double = new Double() with get,set
[<AllowNullLiteral>]
type RfpPricingResponse() =
member val ResponseStatus:ResponseStatus = null with get,set
member val RfpDocumentID:Int32 = new Int32() with get,set
member val Pricing:PricedProposal = null with get,set
[<AllowNullLiteral>]
type RfpPricingRequest() =
member val RfpDocumentUID:Guid = new Guid() with get,set
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/Rfp/{RfpDocumentUID}/Pricing HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
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}}