| POST,OPTIONS | /v1/dispatch/haul/offline |
|---|
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 DispatchPackConfigView:
pack_id: Optional[str] = None
has_quotas: bool = False
is_inverted: bool = False
load_limit_mins: int = 0
ticket_source: Optional[str] = None
pay_basis: Optional[str] = None
day_boundary: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchHaulConfigView:
queue_max: int = 0
dump_bays: int = 0
slot_cap: int = 0
paused: bool = False
feed_rate: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchOfflineWindowView:
offline_window_id: int = 0
from_hour: Optional[str] = None
to_hour: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchSiteView:
site_id: int = 0
supplier_id: int = 0
supplier_code: Optional[str] = None
name: Optional[str] = None
acres: int = 0
standing_volume: Decimal = decimal.Decimal(0)
sort_order: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchSupplierView:
supplier_id: int = 0
code: Optional[str] = None
name: Optional[str] = None
region: Optional[str] = None
own_hauler: bool = False
season_allotment: Decimal = decimal.Decimal(0)
delivered: Decimal = decimal.Decimal(0)
week_cap: Decimal = decimal.Decimal(0)
week_delivered: Decimal = decimal.Decimal(0)
sort_order: int = 0
sites: List[DispatchSiteView] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchTruckView:
truck_id: int = 0
code: Optional[str] = None
driver_name: Optional[str] = None
phone: Optional[str] = None
employer_code: Optional[str] = None
supplier_code: Optional[str] = None
site_name: Optional[str] = None
est_load: Decimal = decimal.Decimal(0)
stage: Optional[str] = None
stage_since: int = 0
cycle_start: Optional[int] = None
stage_mins_ago: int = 0
cycle_mins_ago: Optional[int] = None
slot: Optional[str] = None
loads_today: int = 0
net_today: Decimal = decimal.Decimal(0)
last_ping_mins: int = 0
cycle_mins: Optional[str] = None
is_interactive: bool = False
next_supplier_code: Optional[str] = None
next_site_name: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchSlotView:
slot_id: int = 0
hour: Optional[str] = None
base_booked: int = 0
sort_order: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchTicketView:
ticket_id: int = 0
code: Optional[str] = None
truck_code: Optional[str] = None
supplier_code: Optional[str] = None
net_qty: Decimal = decimal.Decimal(0)
ticketed_at: datetime.datetime = datetime.datetime(1, 1, 1)
ticketed_min: int = 0
source: Optional[str] = None
mins_ago: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchLogView:
log_id: int = 0
logged_at: datetime.datetime = datetime.datetime(1, 1, 1)
logged_min: int = 0
log_text: Optional[str] = None
kind: Optional[str] = None
mins_ago: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchAutopilotView:
is_on: bool = False
rule_slot: bool = False
rule_route: bool = False
rule_release: bool = False
rule_tract: bool = False
rule_throttle: bool = False
rule_offline: bool = False
th_staged: int = 0
th_wait: int = 0
th_band: int = 0
th_stall: int = 0
th_feed: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchExceptionView:
code: Optional[str] = None
kind: Optional[str] = None
severity: Optional[str] = None
truck_code: Optional[str] = None
supplier_code: Optional[str] = None
raised_at: datetime.datetime = datetime.datetime(1, 1, 1)
raised_label: Optional[str] = None
mins_ago: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchFeedView:
feed_id: int = 0
entry_at: datetime.datetime = datetime.datetime(1, 1, 1)
entry_label: Optional[str] = None
channel: Optional[str] = None
kind: Optional[str] = None
truck_code: Optional[str] = None
supplier_code: Optional[str] = None
override_text: Optional[str] = None
mins_ago: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchRigView:
rig_id: int = 0
code: Optional[str] = None
name: Optional[str] = None
driver_name: Optional[str] = None
phone: Optional[str] = None
rig_type: Optional[str] = None
is_free: bool = False
match_rank: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchJobView:
job_id: int = 0
code: Optional[str] = None
cargo: Optional[str] = None
customer: Optional[str] = None
customer_phone: Optional[str] = None
hold_contact: Optional[str] = None
hold_phone: Optional[str] = None
from_loc: Optional[str] = None
to_loc: Optional[str] = None
miles: int = 0
window_text: Optional[str] = None
stage: Optional[str] = None
rate: Optional[Decimal] = None
required_rig: Optional[str] = None
driver_label: Optional[str] = None
eta_text: Optional[str] = None
offer_rig_ids: Optional[str] = None
offer_expires_min: Optional[int] = None
offer_expired: bool = False
declined: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchOdDriverView:
driver_id: int = 0
code: Optional[str] = None
name: Optional[str] = None
zone: Optional[str] = None
phone: Optional[str] = None
status: Optional[str] = None
tier: Optional[str] = None
distance_mi: Decimal = decimal.Decimal(0)
capabilities: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchOdRequestView:
request_id: int = 0
code: Optional[str] = None
address: Optional[str] = None
zone: Optional[str] = None
bags: int = 0
stage: Optional[str] = None
driver_code: Optional[str] = None
needs: Optional[str] = None
note: Optional[str] = None
ping_expires_min: Optional[int] = None
tried_codes: Optional[str] = None
candidate_codes: Optional[str] = None
eta_text: Optional[str] = None
no_driver: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchPackView:
pack_id: Optional[str] = None
has_quotas: bool = False
is_inverted: bool = False
load_limit_mins: int = 0
day_boundary: Optional[str] = None
ticket_source: Optional[str] = None
pay_basis: Optional[str] = None
sort_order: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchPackTermView:
pack_id: Optional[str] = None
lang: Optional[str] = None
mode_name: Optional[str] = None
facility: Optional[str] = None
facility_short: Optional[str] = None
source_site: Optional[str] = None
supplier: Optional[str] = None
supplier_plural: Optional[str] = None
unload_verb: Optional[str] = None
ticket_noun: Optional[str] = None
day_noun: Optional[str] = None
fleet_label: Optional[str] = None
page_subtitle: Optional[str] = None
season_chip: Optional[str] = None
campaign_noun: Optional[str] = None
bay_noun: Optional[str] = None
assign_target: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchPackUnitView:
pack_id: Optional[str] = None
unit: Optional[str] = None
load_qty: Decimal = decimal.Decimal(0)
volume_low: int = 0
volume_high: int = 0
season_multiple: Decimal = decimal.Decimal(0)
weekly_fraction: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchBoardView:
pack: Optional[DispatchPackConfigView] = None
config: Optional[DispatchHaulConfigView] = None
offline_windows: List[DispatchOfflineWindowView] = field(default_factory=list)
suppliers: List[DispatchSupplierView] = field(default_factory=list)
trucks: List[DispatchTruckView] = field(default_factory=list)
slots: List[DispatchSlotView] = field(default_factory=list)
tickets: List[DispatchTicketView] = field(default_factory=list)
log: List[DispatchLogView] = field(default_factory=list)
autopilot: Optional[DispatchAutopilotView] = None
exceptions: List[DispatchExceptionView] = field(default_factory=list)
feed: List[DispatchFeedView] = field(default_factory=list)
rigs: List[DispatchRigView] = field(default_factory=list)
jobs: List[DispatchJobView] = field(default_factory=list)
od_drivers: List[DispatchOdDriverView] = field(default_factory=list)
od_requests: List[DispatchOdRequestView] = field(default_factory=list)
packs: List[DispatchPackView] = field(default_factory=list)
pack_terms: List[DispatchPackTermView] = field(default_factory=list)
pack_units: List[DispatchPackUnitView] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchActionResponse:
board: Optional[DispatchBoardView] = None
message: Optional[str] = None
sent: int = 0
failed: int = 0
ticket_code: Optional[str] = None
ticket_net: Decimal = decimal.Decimal(0)
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DispatchOfflineAddRequest:
from_hour: Optional[str] = None
to_hour: Optional[str] = None
at_min: int = 0
Python DispatchOfflineAddRequest DTOs
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/dispatch/haul/offline HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<DispatchOfflineAddRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<AtMin>0</AtMin>
<FromHour>String</FromHour>
<ToHour>String</ToHour>
</DispatchOfflineAddRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<DispatchActionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<Board>
<Autopilot>
<IsOn>false</IsOn>
<RuleOffline>false</RuleOffline>
<RuleRelease>false</RuleRelease>
<RuleRoute>false</RuleRoute>
<RuleSlot>false</RuleSlot>
<RuleThrottle>false</RuleThrottle>
<RuleTract>false</RuleTract>
<ThBand>0</ThBand>
<ThFeed>0</ThFeed>
<ThStaged>0</ThStaged>
<ThStall>0</ThStall>
<ThWait>0</ThWait>
</Autopilot>
<Config>
<DumpBays>0</DumpBays>
<FeedRate>0</FeedRate>
<Paused>false</Paused>
<QueueMax>0</QueueMax>
<SlotCap>0</SlotCap>
</Config>
<Exceptions>
<DispatchExceptionView>
<Code>String</Code>
<Kind>String</Kind>
<MinsAgo>0</MinsAgo>
<RaisedAt>0001-01-01T00:00:00</RaisedAt>
<RaisedLabel>String</RaisedLabel>
<Severity>String</Severity>
<SupplierCode>String</SupplierCode>
<TruckCode>String</TruckCode>
</DispatchExceptionView>
</Exceptions>
<Feed>
<DispatchFeedView>
<Channel>String</Channel>
<EntryAt>0001-01-01T00:00:00</EntryAt>
<EntryLabel>String</EntryLabel>
<FeedId>0</FeedId>
<Kind>String</Kind>
<MinsAgo>0</MinsAgo>
<OverrideText>String</OverrideText>
<SupplierCode>String</SupplierCode>
<TruckCode>String</TruckCode>
</DispatchFeedView>
</Feed>
<Jobs>
<DispatchJobView>
<Cargo>String</Cargo>
<Code>String</Code>
<Customer>String</Customer>
<CustomerPhone>String</CustomerPhone>
<Declined>false</Declined>
<DriverLabel>String</DriverLabel>
<EtaText>String</EtaText>
<FromLoc>String</FromLoc>
<HoldContact>String</HoldContact>
<HoldPhone>String</HoldPhone>
<JobId>0</JobId>
<Miles>0</Miles>
<OfferExpired>false</OfferExpired>
<OfferExpiresMin>0</OfferExpiresMin>
<OfferRigIds>String</OfferRigIds>
<Rate>0</Rate>
<RequiredRig>String</RequiredRig>
<Stage>String</Stage>
<ToLoc>String</ToLoc>
<WindowText>String</WindowText>
</DispatchJobView>
</Jobs>
<Log>
<DispatchLogView>
<Kind>String</Kind>
<LogId>0</LogId>
<LogText>String</LogText>
<LoggedAt>0001-01-01T00:00:00</LoggedAt>
<LoggedMin>0</LoggedMin>
<MinsAgo>0</MinsAgo>
</DispatchLogView>
</Log>
<OdDrivers>
<DispatchOdDriverView>
<Capabilities>String</Capabilities>
<Code>String</Code>
<DistanceMi>0</DistanceMi>
<DriverId>0</DriverId>
<Name>String</Name>
<Phone>String</Phone>
<Status>String</Status>
<Tier>String</Tier>
<Zone>String</Zone>
</DispatchOdDriverView>
</OdDrivers>
<OdRequests>
<DispatchOdRequestView>
<Address>String</Address>
<Bags>0</Bags>
<CandidateCodes>String</CandidateCodes>
<Code>String</Code>
<DriverCode>String</DriverCode>
<EtaText>String</EtaText>
<Needs>String</Needs>
<NoDriver>String</NoDriver>
<Note>String</Note>
<PingExpiresMin>0</PingExpiresMin>
<RequestId>0</RequestId>
<Stage>String</Stage>
<TriedCodes>String</TriedCodes>
<Zone>String</Zone>
</DispatchOdRequestView>
</OdRequests>
<OfflineWindows>
<DispatchOfflineWindowView>
<FromHour>String</FromHour>
<OfflineWindowId>0</OfflineWindowId>
<ToHour>String</ToHour>
</DispatchOfflineWindowView>
</OfflineWindows>
<Pack>
<DayBoundary>String</DayBoundary>
<HasQuotas>false</HasQuotas>
<IsInverted>false</IsInverted>
<LoadLimitMins>0</LoadLimitMins>
<PackId>String</PackId>
<PayBasis>String</PayBasis>
<TicketSource>String</TicketSource>
</Pack>
<PackTerms>
<DispatchPackTermView>
<AssignTarget>String</AssignTarget>
<BayNoun>String</BayNoun>
<CampaignNoun>String</CampaignNoun>
<DayNoun>String</DayNoun>
<Facility>String</Facility>
<FacilityShort>String</FacilityShort>
<FleetLabel>String</FleetLabel>
<Lang>String</Lang>
<ModeName>String</ModeName>
<PackId>String</PackId>
<PageSubtitle>String</PageSubtitle>
<SeasonChip>String</SeasonChip>
<SourceSite>String</SourceSite>
<Supplier>String</Supplier>
<SupplierPlural>String</SupplierPlural>
<TicketNoun>String</TicketNoun>
<UnloadVerb>String</UnloadVerb>
</DispatchPackTermView>
</PackTerms>
<PackUnits>
<DispatchPackUnitView>
<LoadQty>0</LoadQty>
<PackId>String</PackId>
<SeasonMultiple>0</SeasonMultiple>
<Unit>String</Unit>
<VolumeHigh>0</VolumeHigh>
<VolumeLow>0</VolumeLow>
<WeeklyFraction>0</WeeklyFraction>
</DispatchPackUnitView>
</PackUnits>
<Packs>
<DispatchPackView>
<DayBoundary>String</DayBoundary>
<HasQuotas>false</HasQuotas>
<IsInverted>false</IsInverted>
<LoadLimitMins>0</LoadLimitMins>
<PackId>String</PackId>
<PayBasis>String</PayBasis>
<SortOrder>0</SortOrder>
<TicketSource>String</TicketSource>
</DispatchPackView>
</Packs>
<Rigs>
<DispatchRigView>
<Code>String</Code>
<DriverName>String</DriverName>
<IsFree>false</IsFree>
<MatchRank>0</MatchRank>
<Name>String</Name>
<Phone>String</Phone>
<RigId>0</RigId>
<RigType>String</RigType>
</DispatchRigView>
</Rigs>
<Slots>
<DispatchSlotView>
<BaseBooked>0</BaseBooked>
<Hour>String</Hour>
<SlotId>0</SlotId>
<SortOrder>0</SortOrder>
</DispatchSlotView>
</Slots>
<Suppliers>
<DispatchSupplierView>
<Code>String</Code>
<Delivered>0</Delivered>
<Name>String</Name>
<OwnHauler>false</OwnHauler>
<Region>String</Region>
<SeasonAllotment>0</SeasonAllotment>
<Sites>
<DispatchSiteView>
<Acres>0</Acres>
<Name>String</Name>
<SiteId>0</SiteId>
<SortOrder>0</SortOrder>
<StandingVolume>0</StandingVolume>
<SupplierCode>String</SupplierCode>
<SupplierId>0</SupplierId>
</DispatchSiteView>
</Sites>
<SortOrder>0</SortOrder>
<SupplierId>0</SupplierId>
<WeekCap>0</WeekCap>
<WeekDelivered>0</WeekDelivered>
</DispatchSupplierView>
</Suppliers>
<Tickets>
<DispatchTicketView>
<Code>String</Code>
<MinsAgo>0</MinsAgo>
<NetQty>0</NetQty>
<Source>String</Source>
<SupplierCode>String</SupplierCode>
<TicketId>0</TicketId>
<TicketedAt>0001-01-01T00:00:00</TicketedAt>
<TicketedMin>0</TicketedMin>
<TruckCode>String</TruckCode>
</DispatchTicketView>
</Tickets>
<Trucks>
<DispatchTruckView>
<Code>String</Code>
<CycleMins>String</CycleMins>
<CycleMinsAgo>0</CycleMinsAgo>
<CycleStart>0</CycleStart>
<DriverName>String</DriverName>
<EmployerCode>String</EmployerCode>
<EstLoad>0</EstLoad>
<IsInteractive>false</IsInteractive>
<LastPingMins>0</LastPingMins>
<LoadsToday>0</LoadsToday>
<NetToday>0</NetToday>
<NextSiteName>String</NextSiteName>
<NextSupplierCode>String</NextSupplierCode>
<Phone>String</Phone>
<SiteName>String</SiteName>
<Slot>String</Slot>
<Stage>String</Stage>
<StageMinsAgo>0</StageMinsAgo>
<StageSince>0</StageSince>
<SupplierCode>String</SupplierCode>
<TruckId>0</TruckId>
</DispatchTruckView>
</Trucks>
</Board>
<Failed>0</Failed>
<Message>String</Message>
<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>
<Sent>0</Sent>
<TicketCode>String</TicketCode>
<TicketNet>0</TicketNet>
</DispatchActionResponse>