| PUT,OPTIONS | /v1/dispatch/rates/config |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchRateConfigView:
fuel_surcharge_pct: Decimal = decimal.Decimal(0)
transport_per_mile: Decimal = decimal.Decimal(0)
transport_job_min: Decimal = decimal.Decimal(0)
transport_enclosed_uplift_pct: Decimal = decimal.Decimal(0)
od_base: Decimal = decimal.Decimal(0)
od_per_bag: Decimal = decimal.Decimal(0)
od_premium_uplift_pct: Decimal = decimal.Decimal(0)
haul_basis: Optional[str] = None
facility: Optional[str] = None
unit: Optional[str] = None
load_qty: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchLaneRateView:
dispatch_site_i_d: Optional[int] = None
dispatch_supplier_i_d: Optional[int] = None
source_label: Optional[str] = None
supplier_name: Optional[str] = None
dispatch_lane_rate_i_d: Optional[int] = None
miles: Optional[Decimal] = None
rate_per_ton: Optional[Decimal] = None
rate_per_load: Optional[Decimal] = None
rate_per_ton_mile: Optional[Decimal] = None
rate_per_hour: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchZoneRateView:
zone: Optional[str] = None
dispatch_zone_rate_i_d: Optional[int] = None
base: Optional[Decimal] = None
per_bag: Optional[Decimal] = None
premium_uplift_pct: Optional[Decimal] = None
drivers: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchPayPlanView:
dispatch_pay_plan_i_d: int = 0
name: Optional[str] = None
basis: Optional[str] = None
rate: Decimal = decimal.Decimal(0)
rate2: Optional[Decimal] = None
effective_date: Optional[datetime.datetime] = None
is_active: bool = False
drivers: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchRatesResponse:
config: Optional[DispatchRateConfigView] = None
lanes: List[DispatchLaneRateView] = field(default_factory=list)
zones: List[DispatchZoneRateView] = field(default_factory=list)
plans: List[DispatchPayPlanView] = field(default_factory=list)
repriced: Optional[int] = None
still_no_revenue: Optional[int] = None
still_no_pay: Optional[int] = None
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchRateConfigSaveRequest:
config: Optional[DispatchRateConfigView] = None
Python DispatchRateConfigSaveRequest 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.
PUT /v1/dispatch/rates/config HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Config:
{
FuelSurchargePct: 0,
TransportPerMile: 0,
TransportJobMin: 0,
TransportEnclosedUpliftPct: 0,
OdBase: 0,
OdPerBag: 0,
OdPremiumUpliftPct: 0,
HaulBasis: String,
Facility: String,
Unit: String,
LoadQty: 0
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Config:
{
FuelSurchargePct: 0,
TransportPerMile: 0,
TransportJobMin: 0,
TransportEnclosedUpliftPct: 0,
OdBase: 0,
OdPerBag: 0,
OdPremiumUpliftPct: 0,
HaulBasis: String,
Facility: String,
Unit: String,
LoadQty: 0
},
Lanes:
[
{
DispatchSiteID: 0,
DispatchSupplierID: 0,
SourceLabel: String,
SupplierName: String,
DispatchLaneRateID: 0,
Miles: 0,
RatePerTon: 0,
RatePerLoad: 0,
RatePerTonMile: 0,
RatePerHour: 0
}
],
Zones:
[
{
Zone: String,
DispatchZoneRateID: 0,
Base: 0,
PerBag: 0,
PremiumUpliftPct: 0,
Drivers: 0
}
],
Plans:
[
{
DispatchPayPlanID: 0,
Name: String,
Basis: String,
Rate: 0,
Rate2: 0,
EffectiveDate: 0001-01-01,
IsActive: False,
Drivers: 0
}
],
Repriced: 0,
StillNoRevenue: 0,
StillNoPay: 0,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}