| PUT,OPTIONS | /v1/dispatch/rates/plan |
|---|
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 DispatchPayPlanSaveRequest:
plan: Optional[DispatchPayPlanView] = None
Python DispatchPayPlanSaveRequest DTOs
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.
PUT /v1/dispatch/rates/plan HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"Plan":{"DispatchPayPlanID":0,"Name":"String","Basis":"String","Rate":0,"Rate2":0,"EffectiveDate":"0001-01-01T00:00:00.0000000","IsActive":false,"Drivers":0}}
HTTP/1.1 200 OK
Content-Type: text/csv
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-01T00:00:00.0000000","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"}}}