| GET,OPTIONS | /v1/laborsales/summary |
|---|
import 'package:servicestack/servicestack.dart';
class DayView implements IConvertible
{
String? DateIso;
double? GrossSales;
int? TransactionCount;
double? LaborHours;
double? CostedHours;
double? LaborCost;
int? WorkerCount;
double? LaborPct;
double? Splh;
DayView({this.DateIso,this.GrossSales,this.TransactionCount,this.LaborHours,this.CostedHours,this.LaborCost,this.WorkerCount,this.LaborPct,this.Splh});
DayView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DateIso = json['DateIso'];
GrossSales = JsonConverters.toDouble(json['GrossSales']);
TransactionCount = json['TransactionCount'];
LaborHours = JsonConverters.toDouble(json['LaborHours']);
CostedHours = JsonConverters.toDouble(json['CostedHours']);
LaborCost = JsonConverters.toDouble(json['LaborCost']);
WorkerCount = json['WorkerCount'];
LaborPct = JsonConverters.toDouble(json['LaborPct']);
Splh = JsonConverters.toDouble(json['Splh']);
return this;
}
Map<String, dynamic> toJson() => {
'DateIso': DateIso,
'GrossSales': GrossSales,
'TransactionCount': TransactionCount,
'LaborHours': LaborHours,
'CostedHours': CostedHours,
'LaborCost': LaborCost,
'WorkerCount': WorkerCount,
'LaborPct': LaborPct,
'Splh': Splh
};
getTypeName() => "DayView";
TypeContext? context = _ctx;
}
class LocationView implements IConvertible
{
String? LocationId;
String? LocationName;
double? GrossSales;
int? TransactionCount;
double? SharePct;
String? BranchId;
String? BranchName;
double? LaborHours;
double? CostedHours;
double? LaborCost;
double? LaborPct;
double? Splh;
LocationView({this.LocationId,this.LocationName,this.GrossSales,this.TransactionCount,this.SharePct,this.BranchId,this.BranchName,this.LaborHours,this.CostedHours,this.LaborCost,this.LaborPct,this.Splh});
LocationView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
LocationId = json['LocationId'];
LocationName = json['LocationName'];
GrossSales = JsonConverters.toDouble(json['GrossSales']);
TransactionCount = json['TransactionCount'];
SharePct = JsonConverters.toDouble(json['SharePct']);
BranchId = json['BranchId'];
BranchName = json['BranchName'];
LaborHours = JsonConverters.toDouble(json['LaborHours']);
CostedHours = JsonConverters.toDouble(json['CostedHours']);
LaborCost = JsonConverters.toDouble(json['LaborCost']);
LaborPct = JsonConverters.toDouble(json['LaborPct']);
Splh = JsonConverters.toDouble(json['Splh']);
return this;
}
Map<String, dynamic> toJson() => {
'LocationId': LocationId,
'LocationName': LocationName,
'GrossSales': GrossSales,
'TransactionCount': TransactionCount,
'SharePct': SharePct,
'BranchId': BranchId,
'BranchName': BranchName,
'LaborHours': LaborHours,
'CostedHours': CostedHours,
'LaborCost': LaborCost,
'LaborPct': LaborPct,
'Splh': Splh
};
getTypeName() => "LocationView";
TypeContext? context = _ctx;
}
class TotalsView implements IConvertible
{
double? GrossSales;
int? TransactionCount;
double? LaborHours;
double? CostedHours;
double? LaborCost;
double? LaborPct;
double? Splh;
int? DaysWithSales;
int? DaysWithLabor;
TotalsView({this.GrossSales,this.TransactionCount,this.LaborHours,this.CostedHours,this.LaborCost,this.LaborPct,this.Splh,this.DaysWithSales,this.DaysWithLabor});
TotalsView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
GrossSales = JsonConverters.toDouble(json['GrossSales']);
TransactionCount = json['TransactionCount'];
LaborHours = JsonConverters.toDouble(json['LaborHours']);
CostedHours = JsonConverters.toDouble(json['CostedHours']);
LaborCost = JsonConverters.toDouble(json['LaborCost']);
LaborPct = JsonConverters.toDouble(json['LaborPct']);
Splh = JsonConverters.toDouble(json['Splh']);
DaysWithSales = json['DaysWithSales'];
DaysWithLabor = json['DaysWithLabor'];
return this;
}
Map<String, dynamic> toJson() => {
'GrossSales': GrossSales,
'TransactionCount': TransactionCount,
'LaborHours': LaborHours,
'CostedHours': CostedHours,
'LaborCost': LaborCost,
'LaborPct': LaborPct,
'Splh': Splh,
'DaysWithSales': DaysWithSales,
'DaysWithLabor': DaysWithLabor
};
getTypeName() => "TotalsView";
TypeContext? context = _ctx;
}
class SummaryView implements IConvertible
{
bool? Configured;
bool? Connected;
bool? NeedsReconnect;
String? Currency;
List<DayView>? Days = [];
List<LocationView>? Locations = [];
TotalsView? Totals;
TotalsView? PriorTotals;
String? AttributionNote;
SummaryView({this.Configured,this.Connected,this.NeedsReconnect,this.Currency,this.Days,this.Locations,this.Totals,this.PriorTotals,this.AttributionNote});
SummaryView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Configured = json['Configured'];
Connected = json['Connected'];
NeedsReconnect = json['NeedsReconnect'];
Currency = json['Currency'];
Days = JsonConverters.fromJson(json['Days'],'List<DayView>',context!);
Locations = JsonConverters.fromJson(json['Locations'],'List<LocationView>',context!);
Totals = JsonConverters.fromJson(json['Totals'],'TotalsView',context!);
PriorTotals = JsonConverters.fromJson(json['PriorTotals'],'TotalsView',context!);
AttributionNote = json['AttributionNote'];
return this;
}
Map<String, dynamic> toJson() => {
'Configured': Configured,
'Connected': Connected,
'NeedsReconnect': NeedsReconnect,
'Currency': Currency,
'Days': JsonConverters.toJson(Days,'List<DayView>',context!),
'Locations': JsonConverters.toJson(Locations,'List<LocationView>',context!),
'Totals': JsonConverters.toJson(Totals,'TotalsView',context!),
'PriorTotals': JsonConverters.toJson(PriorTotals,'TotalsView',context!),
'AttributionNote': AttributionNote
};
getTypeName() => "SummaryView";
TypeContext? context = _ctx;
}
class LaborSalesSummaryResponse implements IConvertible
{
SummaryView? Summary;
String? FromDate;
String? ToDate;
ResponseStatus? ResponseStatus;
LaborSalesSummaryResponse({this.Summary,this.FromDate,this.ToDate,this.ResponseStatus});
LaborSalesSummaryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Summary = JsonConverters.fromJson(json['Summary'],'SummaryView',context!);
FromDate = json['FromDate'];
ToDate = json['ToDate'];
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Summary': JsonConverters.toJson(Summary,'SummaryView',context!),
'FromDate': FromDate,
'ToDate': ToDate,
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "LaborSalesSummaryResponse";
TypeContext? context = _ctx;
}
class LaborSalesSummaryRequest implements IConvertible
{
String? FromDate;
String? ToDate;
LaborSalesSummaryRequest({this.FromDate,this.ToDate});
LaborSalesSummaryRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
FromDate = json['FromDate'];
ToDate = json['ToDate'];
return this;
}
Map<String, dynamic> toJson() => {
'FromDate': FromDate,
'ToDate': ToDate
};
getTypeName() => "LaborSalesSummaryRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'DayView': TypeInfo(TypeOf.Class, create:() => DayView()),
'LocationView': TypeInfo(TypeOf.Class, create:() => LocationView()),
'TotalsView': TypeInfo(TypeOf.Class, create:() => TotalsView()),
'SummaryView': TypeInfo(TypeOf.Class, create:() => SummaryView()),
'List<DayView>': TypeInfo(TypeOf.Class, create:() => <DayView>[]),
'List<LocationView>': TypeInfo(TypeOf.Class, create:() => <LocationView>[]),
'LaborSalesSummaryResponse': TypeInfo(TypeOf.Class, create:() => LaborSalesSummaryResponse()),
'LaborSalesSummaryRequest': TypeInfo(TypeOf.Class, create:() => LaborSalesSummaryRequest()),
});
Dart LaborSalesSummaryRequest 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.
GET /v1/laborsales/summary HTTP/1.1 Host: api.dev.dynamics.trendsic.com Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Summary:
{
Configured: False,
Connected: False,
NeedsReconnect: False,
Currency: String,
Days:
[
{
DateIso: String,
GrossSales: 0,
TransactionCount: 0,
LaborHours: 0,
CostedHours: 0,
LaborCost: 0,
WorkerCount: 0,
LaborPct: 0,
Splh: 0
}
],
Locations:
[
{
LocationId: String,
LocationName: String,
GrossSales: 0,
TransactionCount: 0,
SharePct: 0,
BranchId: String,
BranchName: String,
LaborHours: 0,
CostedHours: 0,
LaborCost: 0,
LaborPct: 0,
Splh: 0
}
],
Totals:
{
GrossSales: 0,
TransactionCount: 0,
LaborHours: 0,
CostedHours: 0,
LaborCost: 0,
LaborPct: 0,
Splh: 0,
DaysWithSales: 0,
DaysWithLabor: 0
},
PriorTotals:
{
GrossSales: 0,
TransactionCount: 0,
LaborHours: 0,
CostedHours: 0,
LaborCost: 0,
LaborPct: 0,
Splh: 0,
DaysWithSales: 0,
DaysWithLabor: 0
},
AttributionNote: String
},
FromDate: String,
ToDate: String,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}