| POST,OPTIONS | /v1/dashboard/kpiv2/detail |
|---|
import Foundation
import ServiceStack
public class KpiV2DetailRequest : Codable
{
public var branchId:String
public var stationId:String?
public var employeeId:String?
public var fromDate:Date
public var toDate:Date
required public init(){}
}
public class KpiV2DetailResponse : Codable
{
public var responseStatus:ResponseStatus
public var detail:SvcDetail
required public init(){}
}
public class SvcDetail : Codable
{
public var kind:String
public var window:SvcWindowRow
public var clerk:SvcClerkRow
public var branchMetrics:SvcMetrics
public var perRowAverage:SvcAverage
public var sessions:[SvcSession] = []
public var services:[SvcServiceRow] = []
public var canSeeStaff:Bool
public var canSeeFinancial:Bool
public var canSeePay:Bool
required public init(){}
}
public class SvcWindowRow : Codable
{
public var stationId:String
public var name:String
public var clerks:[SvcNamedTime] = []
public var neverStaffed:Bool
public var lastStaffedUtc:Date?
public var lastStaffedBy:String
public var metrics:SvcMetrics
required public init(){}
}
public class SvcNamedTime : Codable
{
public var id:String
public var name:String
public var signedSec:Int
public var served:Int
required public init(){}
}
public class SvcMetrics : Codable
{
public var checkins:Int
public var walkins:Int
public var appts:Int
public var served:Int
public var noShows:Int
public var apptNoShows:Int
public var cancelledAtWindow:Int
public var abandoned:Int
public var called:Int
public var calledUp:Int
public var abandonRate:Double?
public var noShowRate:Double?
public var avgServiceSec:Double?
public var medianServiceSec:Double?
public var avgWaitSec:Double?
public var maxWaitSec:Int
public var avgWalkUpSec:Double?
public var expectedServiceSec:Double?
public var signedSec:Int
public var servingSec:Int
public var pausedSec:Int
public var idleSec:Int
public var unstaffedSec:Int
public var utilization:Double?
public var idleShare:Double?
public var pausedShare:Double?
public var sessions:Int
public var openDays:Int
public var feesEarned:Double?
public var avgFee:Double?
public var feesPerStaffedHour:Double?
public var expectedFeesPerStaffedHour:Double?
public var laborCost:Double?
public var laborPartial:Bool
public var missingCostEmployeeIds:[String] = []
public var missingCost:[SvcNamedTime] = []
public var laborLocked:Bool
public var contribution:Double?
public var lostFees:Double?
public var lostNoShowFees:Double?
public var mix:[String:Int] = [:]
public var hourlyServed:[Int] = []
public var hourlyFees:[Double] = []
public var hourlyCost:[Double] = []
public var tints:[SvcTint] = []
required public init(){}
}
public class SvcTint : Codable
{
public var field:String
public var tone:String
public var reason:String
public var value:Double?
public var reference:Double?
public var branchValue:Double?
required public init(){}
}
public class SvcClerkRow : Codable
{
public var employeeId:String
public var name:String
public var windows:[SvcNamedTime] = []
public var loadedRate:Double?
public var rateSet:Bool
public var rateLocked:Bool
public var metrics:SvcMetrics
required public init(){}
}
public class SvcAverage : Codable
{
public var count:Int
public var served:Double
public var avgServiceSec:Double?
public var medianServiceSec:Double?
public var avgWaitSec:Double?
public var utilization:Double?
public var idleSec:Double
public var pausedSec:Double
public var noShows:Double
public var signedSec:Double
public var feesEarned:Double?
public var feesPerStaffedHour:Double?
public var laborCost:Double?
public var contribution:Double?
public var lostNoShowFees:Double?
required public init(){}
}
public class SvcSession : Codable
{
public var sessionId:String
public var stationId:String
public var stationName:String
public var employeeId:String
public var employeeName:String
public var localIn:Date
public var localOut:Date
public var isOpen:Bool
public var endReason:String
public var pausedSec:Int
required public init(){}
}
public class SvcServiceRow : Codable
{
public var lineId:String
public var name:String
public var completed:Int
public var avgServiceSec:Double?
public var branchAvgServiceSec:Double?
public var feesEarned:Double?
public var feeCurrent:Double?
public var feeMin:Double?
public var feeMax:Double?
public var feePerMinute:Double?
public var branchFeePerMinute:Double?
public var feeChanges:[SvcFeeChange] = []
required public init(){}
}
public class SvcFeeChange : Codable
{
public var locationId:String
public var onDate:Date
public var fromFee:Double
public var toFee:Double
required public init(){}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/dashboard/kpiv2/detail HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<KpiV2DetailRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<BranchId>00000000-0000-0000-0000-000000000000</BranchId>
<EmployeeId>00000000-0000-0000-0000-000000000000</EmployeeId>
<FromDate>0001-01-01T00:00:00</FromDate>
<StationId>00000000-0000-0000-0000-000000000000</StationId>
<ToDate>0001-01-01T00:00:00</ToDate>
</KpiV2DetailRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<KpiV2DetailResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<Detail>
<BranchMetrics>
<AbandonRate>0</AbandonRate>
<Abandoned>0</Abandoned>
<ApptNoShows>0</ApptNoShows>
<Appts>0</Appts>
<AvgFee>0</AvgFee>
<AvgServiceSec>0</AvgServiceSec>
<AvgWaitSec>0</AvgWaitSec>
<AvgWalkUpSec>0</AvgWalkUpSec>
<Called>0</Called>
<CalledUp>0</CalledUp>
<CancelledAtWindow>0</CancelledAtWindow>
<Checkins>0</Checkins>
<Contribution>0</Contribution>
<ExpectedFeesPerStaffedHour>0</ExpectedFeesPerStaffedHour>
<ExpectedServiceSec>0</ExpectedServiceSec>
<FeesEarned>0</FeesEarned>
<FeesPerStaffedHour>0</FeesPerStaffedHour>
<HourlyCost xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:decimal>0</d4p1:decimal>
</HourlyCost>
<HourlyFees xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:decimal>0</d4p1:decimal>
</HourlyFees>
<HourlyServed xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:int>0</d4p1:int>
</HourlyServed>
<IdleSec>0</IdleSec>
<IdleShare>0</IdleShare>
<LaborCost>0</LaborCost>
<LaborLocked>false</LaborLocked>
<LaborPartial>false</LaborPartial>
<LostFees>0</LostFees>
<LostNoShowFees>0</LostNoShowFees>
<MaxWaitSec>0</MaxWaitSec>
<MedianServiceSec>0</MedianServiceSec>
<MissingCost>
<SvcNamedTime>
<Id>00000000-0000-0000-0000-000000000000</Id>
<Name>String</Name>
<Served>0</Served>
<SignedSec>0</SignedSec>
</SvcNamedTime>
</MissingCost>
<MissingCostEmployeeIds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:guid>00000000-0000-0000-0000-000000000000</d4p1:guid>
</MissingCostEmployeeIds>
<Mix xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfguidint>
<d4p1:Key>00000000-0000-0000-0000-000000000000</d4p1:Key>
<d4p1:Value>0</d4p1:Value>
</d4p1:KeyValueOfguidint>
</Mix>
<NoShowRate>0</NoShowRate>
<NoShows>0</NoShows>
<OpenDays>0</OpenDays>
<PausedSec>0</PausedSec>
<PausedShare>0</PausedShare>
<Served>0</Served>
<ServingSec>0</ServingSec>
<Sessions>0</Sessions>
<SignedSec>0</SignedSec>
<Tints>
<SvcTint>
<BranchValue>0</BranchValue>
<Field>String</Field>
<Reason>String</Reason>
<Reference>0</Reference>
<Tone>String</Tone>
<Value>0</Value>
</SvcTint>
</Tints>
<UnstaffedSec>0</UnstaffedSec>
<Utilization>0</Utilization>
<Walkins>0</Walkins>
</BranchMetrics>
<CanSeeFinancial>false</CanSeeFinancial>
<CanSeePay>false</CanSeePay>
<CanSeeStaff>false</CanSeeStaff>
<Clerk>
<EmployeeId>00000000-0000-0000-0000-000000000000</EmployeeId>
<LoadedRate>0</LoadedRate>
<Metrics>
<AbandonRate>0</AbandonRate>
<Abandoned>0</Abandoned>
<ApptNoShows>0</ApptNoShows>
<Appts>0</Appts>
<AvgFee>0</AvgFee>
<AvgServiceSec>0</AvgServiceSec>
<AvgWaitSec>0</AvgWaitSec>
<AvgWalkUpSec>0</AvgWalkUpSec>
<Called>0</Called>
<CalledUp>0</CalledUp>
<CancelledAtWindow>0</CancelledAtWindow>
<Checkins>0</Checkins>
<Contribution>0</Contribution>
<ExpectedFeesPerStaffedHour>0</ExpectedFeesPerStaffedHour>
<ExpectedServiceSec>0</ExpectedServiceSec>
<FeesEarned>0</FeesEarned>
<FeesPerStaffedHour>0</FeesPerStaffedHour>
<HourlyCost xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:decimal>0</d5p1:decimal>
</HourlyCost>
<HourlyFees xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:decimal>0</d5p1:decimal>
</HourlyFees>
<HourlyServed xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:int>0</d5p1:int>
</HourlyServed>
<IdleSec>0</IdleSec>
<IdleShare>0</IdleShare>
<LaborCost>0</LaborCost>
<LaborLocked>false</LaborLocked>
<LaborPartial>false</LaborPartial>
<LostFees>0</LostFees>
<LostNoShowFees>0</LostNoShowFees>
<MaxWaitSec>0</MaxWaitSec>
<MedianServiceSec>0</MedianServiceSec>
<MissingCost>
<SvcNamedTime>
<Id>00000000-0000-0000-0000-000000000000</Id>
<Name>String</Name>
<Served>0</Served>
<SignedSec>0</SignedSec>
</SvcNamedTime>
</MissingCost>
<MissingCostEmployeeIds xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:guid>00000000-0000-0000-0000-000000000000</d5p1:guid>
</MissingCostEmployeeIds>
<Mix xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfguidint>
<d5p1:Key>00000000-0000-0000-0000-000000000000</d5p1:Key>
<d5p1:Value>0</d5p1:Value>
</d5p1:KeyValueOfguidint>
</Mix>
<NoShowRate>0</NoShowRate>
<NoShows>0</NoShows>
<OpenDays>0</OpenDays>
<PausedSec>0</PausedSec>
<PausedShare>0</PausedShare>
<Served>0</Served>
<ServingSec>0</ServingSec>
<Sessions>0</Sessions>
<SignedSec>0</SignedSec>
<Tints>
<SvcTint>
<BranchValue>0</BranchValue>
<Field>String</Field>
<Reason>String</Reason>
<Reference>0</Reference>
<Tone>String</Tone>
<Value>0</Value>
</SvcTint>
</Tints>
<UnstaffedSec>0</UnstaffedSec>
<Utilization>0</Utilization>
<Walkins>0</Walkins>
</Metrics>
<Name>String</Name>
<RateLocked>false</RateLocked>
<RateSet>false</RateSet>
<Windows>
<SvcNamedTime>
<Id>00000000-0000-0000-0000-000000000000</Id>
<Name>String</Name>
<Served>0</Served>
<SignedSec>0</SignedSec>
</SvcNamedTime>
</Windows>
</Clerk>
<Kind>String</Kind>
<PerRowAverage>
<AvgServiceSec>0</AvgServiceSec>
<AvgWaitSec>0</AvgWaitSec>
<Contribution>0</Contribution>
<Count>0</Count>
<FeesEarned>0</FeesEarned>
<FeesPerStaffedHour>0</FeesPerStaffedHour>
<IdleSec>0</IdleSec>
<LaborCost>0</LaborCost>
<LostNoShowFees>0</LostNoShowFees>
<MedianServiceSec>0</MedianServiceSec>
<NoShows>0</NoShows>
<PausedSec>0</PausedSec>
<Served>0</Served>
<SignedSec>0</SignedSec>
<Utilization>0</Utilization>
</PerRowAverage>
<Services>
<SvcServiceRow>
<AvgServiceSec>0</AvgServiceSec>
<BranchAvgServiceSec>0</BranchAvgServiceSec>
<BranchFeePerMinute>0</BranchFeePerMinute>
<Completed>0</Completed>
<FeeChanges>
<SvcFeeChange>
<FromFee>0</FromFee>
<LocationId>00000000-0000-0000-0000-000000000000</LocationId>
<OnDate>0001-01-01T00:00:00</OnDate>
<ToFee>0</ToFee>
</SvcFeeChange>
</FeeChanges>
<FeeCurrent>0</FeeCurrent>
<FeeMax>0</FeeMax>
<FeeMin>0</FeeMin>
<FeePerMinute>0</FeePerMinute>
<FeesEarned>0</FeesEarned>
<LineId>00000000-0000-0000-0000-000000000000</LineId>
<Name>String</Name>
</SvcServiceRow>
</Services>
<Sessions>
<SvcSession>
<EmployeeId>00000000-0000-0000-0000-000000000000</EmployeeId>
<EmployeeName>String</EmployeeName>
<EndReason>String</EndReason>
<IsOpen>false</IsOpen>
<LocalIn>0001-01-01T00:00:00</LocalIn>
<LocalOut>0001-01-01T00:00:00</LocalOut>
<PausedSec>0</PausedSec>
<SessionId>00000000-0000-0000-0000-000000000000</SessionId>
<StationId>00000000-0000-0000-0000-000000000000</StationId>
<StationName>String</StationName>
</SvcSession>
</Sessions>
<Window>
<Clerks>
<SvcNamedTime>
<Id>00000000-0000-0000-0000-000000000000</Id>
<Name>String</Name>
<Served>0</Served>
<SignedSec>0</SignedSec>
</SvcNamedTime>
</Clerks>
<LastStaffedBy>String</LastStaffedBy>
<LastStaffedUtc>0001-01-01T00:00:00</LastStaffedUtc>
<Metrics>
<AbandonRate>0</AbandonRate>
<Abandoned>0</Abandoned>
<ApptNoShows>0</ApptNoShows>
<Appts>0</Appts>
<AvgFee>0</AvgFee>
<AvgServiceSec>0</AvgServiceSec>
<AvgWaitSec>0</AvgWaitSec>
<AvgWalkUpSec>0</AvgWalkUpSec>
<Called>0</Called>
<CalledUp>0</CalledUp>
<CancelledAtWindow>0</CancelledAtWindow>
<Checkins>0</Checkins>
<Contribution>0</Contribution>
<ExpectedFeesPerStaffedHour>0</ExpectedFeesPerStaffedHour>
<ExpectedServiceSec>0</ExpectedServiceSec>
<FeesEarned>0</FeesEarned>
<FeesPerStaffedHour>0</FeesPerStaffedHour>
<HourlyCost xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:decimal>0</d5p1:decimal>
</HourlyCost>
<HourlyFees xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:decimal>0</d5p1:decimal>
</HourlyFees>
<HourlyServed xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:int>0</d5p1:int>
</HourlyServed>
<IdleSec>0</IdleSec>
<IdleShare>0</IdleShare>
<LaborCost>0</LaborCost>
<LaborLocked>false</LaborLocked>
<LaborPartial>false</LaborPartial>
<LostFees>0</LostFees>
<LostNoShowFees>0</LostNoShowFees>
<MaxWaitSec>0</MaxWaitSec>
<MedianServiceSec>0</MedianServiceSec>
<MissingCost>
<SvcNamedTime>
<Id>00000000-0000-0000-0000-000000000000</Id>
<Name>String</Name>
<Served>0</Served>
<SignedSec>0</SignedSec>
</SvcNamedTime>
</MissingCost>
<MissingCostEmployeeIds xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:guid>00000000-0000-0000-0000-000000000000</d5p1:guid>
</MissingCostEmployeeIds>
<Mix xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfguidint>
<d5p1:Key>00000000-0000-0000-0000-000000000000</d5p1:Key>
<d5p1:Value>0</d5p1:Value>
</d5p1:KeyValueOfguidint>
</Mix>
<NoShowRate>0</NoShowRate>
<NoShows>0</NoShows>
<OpenDays>0</OpenDays>
<PausedSec>0</PausedSec>
<PausedShare>0</PausedShare>
<Served>0</Served>
<ServingSec>0</ServingSec>
<Sessions>0</Sessions>
<SignedSec>0</SignedSec>
<Tints>
<SvcTint>
<BranchValue>0</BranchValue>
<Field>String</Field>
<Reason>String</Reason>
<Reference>0</Reference>
<Tone>String</Tone>
<Value>0</Value>
</SvcTint>
</Tints>
<UnstaffedSec>0</UnstaffedSec>
<Utilization>0</Utilization>
<Walkins>0</Walkins>
</Metrics>
<Name>String</Name>
<NeverStaffed>false</NeverStaffed>
<StationId>00000000-0000-0000-0000-000000000000</StationId>
</Window>
</Detail>
<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>
</KpiV2DetailResponse>