Trendsic Platform Service

<back to all web services

DispatchOfflineAddRequest

Requires Authentication
The following routes are available for this service:
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

HTTP + 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>