Trendsic Platform Service

<back to all web services

CostCalcRequest

Requires Authentication
The following routes are available for this service:
POST/v1/workforce/calc
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 CostLine() = 
        member val Label:String = null with get,set
        member val Detail:String = null with get,set
        member val Amount:Decimal = new Decimal() with get,set
        member val RuleId:String = null with get,set

    [<AllowNullLiteral>]
    type CostBreakdown() = 
        member val Rrop:Decimal = new Decimal() with get,set
        member val St:Decimal = new Decimal() with get,set
        member val Ot:Decimal = new Decimal() with get,set
        member val Dt:Decimal = new Decimal() with get,set
        member val TotalHours:Decimal = new Decimal() with get,set
        member val Straight:Decimal = new Decimal() with get,set
        member val DiffPay:Decimal = new Decimal() with get,set
        member val OtPremium:Decimal = new Decimal() with get,set
        member val DtPremium:Decimal = new Decimal() with get,set
        member val CashWages:Decimal = new Decimal() with get,set
        member val FringeCashPay:Decimal = new Decimal() with get,set
        member val FringePlanPay:Decimal = new Decimal() with get,set
        member val BurdenPct:Decimal = new Decimal() with get,set
        member val BurdenAmount:Decimal = new Decimal() with get,set
        member val PerDiemApplies:Boolean = new Boolean() with get,set
        member val PerDiemCost:Decimal = new Decimal() with get,set
        member val PerDiemTaxable:Decimal = new Decimal() with get,set
        member val PerDiemNonTax:Decimal = new Decimal() with get,set
        member val Loaded:Decimal = new Decimal() with get,set
        member val Revenue:Decimal = new Decimal() with get,set
        member val Margin:Decimal = new Decimal() with get,set
        member val MarginPct:Decimal = new Decimal() with get,set
        member val OtMultiplier:Decimal = new Decimal() with get,set
        member val DtMultiplier:Decimal = new Decimal() with get,set
        member val PerDiemDaily:Decimal = new Decimal() with get,set
        member val Lines:ResizeArray<CostLine> = new ResizeArray<CostLine>() with get,set
        member val Notes:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type CostInput() = 
        member val Base:Decimal = new Decimal() with get,set
        member val BillRate:Decimal = new Decimal() with get,set
        member val FringeCash:Decimal = new Decimal() with get,set
        member val FringePlan:Decimal = new Decimal() with get,set
        member val IsNight:Boolean = new Boolean() with get,set
        member val HoursPerDay:Decimal = new Decimal() with get,set
        member val OnDays:Int32 = new Int32() with get,set
        member val OnDaysExact:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val HasTravel:Boolean = new Boolean() with get,set
        member val PerDiemEligible:Boolean = new Boolean() with get,set
        member val PrevailingWage:Boolean = new Boolean() with get,set
        member val Jurisdiction:String = null with get,set
        member val Unit:String = null with get,set
        member val PriorHours:Decimal = new Decimal() with get,set
        member val BurdenClass:String = null with get,set
        member val WcRateOverride:Nullable<Decimal> = new Nullable<Decimal>() with get,set

    [<AllowNullLiteral>]
    type CostCalcResponse() = 
        member val Result:CostBreakdown = null with get,set
        member val ResolvedInput:CostInput = null with get,set
        member val CanSeePay:Boolean = new Boolean() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type CostCalcRequest() = 
        member val Input:CostInput = null with get,set
        member val ContactID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ProjectID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ShiftPatternID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Unit:String = null with get,set

F# CostCalcRequest DTOs

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

HTTP + OTHER

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

POST /v1/workforce/calc HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"Input":{"Base":0,"BillRate":0,"FringeCash":0,"FringePlan":0,"IsNight":false,"HoursPerDay":0,"OnDays":0,"OnDaysExact":0,"HasTravel":false,"PerDiemEligible":false,"PrevailingWage":false,"Jurisdiction":"String","Unit":"String","PriorHours":0,"BurdenClass":"String","WcRateOverride":0},"ContactID":0,"ProjectID":0,"ShiftPatternID":0,"Unit":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Result":{"Rrop":0,"St":0,"Ot":0,"Dt":0,"TotalHours":0,"Straight":0,"DiffPay":0,"OtPremium":0,"DtPremium":0,"CashWages":0,"FringeCashPay":0,"FringePlanPay":0,"BurdenPct":0,"BurdenAmount":0,"PerDiemApplies":false,"PerDiemCost":0,"PerDiemTaxable":0,"PerDiemNonTax":0,"Loaded":0,"Revenue":0,"Margin":0,"MarginPct":0,"OtMultiplier":0,"DtMultiplier":0,"PerDiemDaily":0,"Lines":[{"Label":"String","Detail":"String","Amount":0,"RuleId":"String"}],"Notes":["String"]},"ResolvedInput":{"Base":0,"BillRate":0,"FringeCash":0,"FringePlan":0,"IsNight":false,"HoursPerDay":0,"OnDays":0,"OnDaysExact":0,"HasTravel":false,"PerDiemEligible":false,"PrevailingWage":false,"Jurisdiction":"String","Unit":"String","PriorHours":0,"BurdenClass":"String","WcRateOverride":0},"CanSeePay":false,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}