Trendsic Platform Service

<back to all web services

EquipmentDvirSignOffRequest

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/Equipment/{EquipmentID}/dvir/signoff
import Foundation
import ServiceStack

public class EquipmentDvirSignOffRequest : Codable
{
    public var equipmentID:Int
    public var defects:[DvirSignOffItem] = []
    public var mechanicName:String
    public var signaturePng:String

    required public init(){}
}

public class DvirSignOffItem : Codable
{
    public var dvirDefectID:Int
    public var outcome:String
    public var note:String
    public var scheduledFor:String

    required public init(){}
}

public class EquipmentDvirSignOffResponse : Codable
{
    public var vehicle:DvirVehicleDetail
    public var returned:Bool
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class DvirVehicleDetail : DvirVehicleView
{
    public var plate:String
    public var vin:String
    public var gvwrLbs:Int?
    public var branchName:String
    public var inspectionDue:Date?
    public var insuranceExpires:Date?
    public var recentlyFixed:[DvirDefectView] = []
    public var reviewReports:[DvirReportView] = []
    public var history:[DvirReportView] = []

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case plate
        case vin
        case gvwrLbs
        case branchName
        case inspectionDue
        case insuranceExpires
        case recentlyFixed
        case reviewReports
        case history
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        plate = try container.decodeIfPresent(String.self, forKey: .plate)
        vin = try container.decodeIfPresent(String.self, forKey: .vin)
        gvwrLbs = try container.decodeIfPresent(Int.self, forKey: .gvwrLbs)
        branchName = try container.decodeIfPresent(String.self, forKey: .branchName)
        inspectionDue = try container.decodeIfPresent(Date.self, forKey: .inspectionDue)
        insuranceExpires = try container.decodeIfPresent(Date.self, forKey: .insuranceExpires)
        recentlyFixed = try container.decodeIfPresent([DvirDefectView].self, forKey: .recentlyFixed) ?? []
        reviewReports = try container.decodeIfPresent([DvirReportView].self, forKey: .reviewReports) ?? []
        history = try container.decodeIfPresent([DvirReportView].self, forKey: .history) ?? []
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if plate != nil { try container.encode(plate, forKey: .plate) }
        if vin != nil { try container.encode(vin, forKey: .vin) }
        if gvwrLbs != nil { try container.encode(gvwrLbs, forKey: .gvwrLbs) }
        if branchName != nil { try container.encode(branchName, forKey: .branchName) }
        if inspectionDue != nil { try container.encode(inspectionDue, forKey: .inspectionDue) }
        if insuranceExpires != nil { try container.encode(insuranceExpires, forKey: .insuranceExpires) }
        if recentlyFixed.count > 0 { try container.encode(recentlyFixed, forKey: .recentlyFixed) }
        if reviewReports.count > 0 { try container.encode(reviewReports, forKey: .reviewReports) }
        if history.count > 0 { try container.encode(history, forKey: .history) }
    }
}

public class DvirVehicleView : Codable
{
    public var equipmentID:Int
    public var unit:String
    public var name:String
    public var vehicleType:String
    public var isTrailer:Bool
    public var vehicleStatus:String
    public var status:String
    public var statusText:String
    public var line:String
    public var firstUnsafeReport:String
    public var openCount:Int
    public var localToday:String
    public var needsPreTrip:Bool
    public var needsReview:Bool
    public var reviewReportIds:[Int] = []
    public var trailers:[DvirUnitRef] = []
    public var lastOdometer:Int?
    public var inUseBy:String
    public var drivingNow:Bool
    public var todayPreTripId:Int?
    public var todayPostTripId:Int?
    public var openDefects:[DvirDefectView] = []

    required public init(){}
}

public class DvirUnitRef : Codable
{
    public var equipmentID:Int
    public var unit:String

    required public init(){}
}

public class DvirDefectView : Codable
{
    public var dvirDefectID:Int
    public var clientKey:String
    public var dvirReportID:Int?
    public var reportNumber:String
    public var equipmentID:Int
    public var unit:String
    public var itemKey:String
    public var label:String
    public var formLine:String
    public var isCustom:Bool
    public var severity:String
    public var severityText:String
    public var note:String
    public var source:String
    public var reportedByName:String
    public var reportedAtUtc:Date?
    public var equipmentMaintenanceID:Int?
    public var outcome:String
    public var outcomeText:String
    public var outcomeNote:String
    public var scheduledFor:String
    public var signedOffByName:String
    public var signedOffAtUtc:Date?
    public var isOpen:Bool
    public var withdrawn:Bool
    public var photoCount:Int
    public var photos:[DvirPhotoView] = []

    required public init(){}
}

public class DvirPhotoView : Codable
{
    public var workPhotoID:Int
    public var defectKey:String
    public var url:String
    public var markedUrl:String
    public var capturedAtUtc:Date?
    public var lat:Double?
    public var lng:Double?

    required public init(){}
}

public class DvirReportView : Codable
{
    public var dvirReportID:Int
    public var number:String
    public var kind:String
    public var kindText:String
    public var equipmentID:Int
    public var unit:String
    public var trailers:[DvirUnitRef] = []
    public var contactID:Int
    public var driverName:String
    public var board:String
    public var forDate:String
    public var filedAtUtc:Date
    public var savedAtUtc:Date?
    public var isLate:Bool
    public var isAway:Bool
    public var isSatisfactory:Bool
    public var odometer:Int?
    public var locationText:String
    public var remarks:String
    public var reviewedByName:String
    public var reviewedAtUtc:Date?
    public var chip:String
    public var defects:[DvirDefectView] = []
    public var signatures:[DvirSignatureView] = []

    required public init(){}
}

public class DvirSignatureView : Codable
{
    public var signatureRecordID:Int
    public var role:String
    public var signerName:String
    public var signedAt:Date?
    public var imageUrl:String

    required public init(){}
}


Swift EquipmentDvirSignOffRequest 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/Equipment/{EquipmentID}/dvir/signoff HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<EquipmentDvirSignOffRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <Defects>
    <DvirSignOffItem>
      <DvirDefectID>0</DvirDefectID>
      <Note>String</Note>
      <Outcome>String</Outcome>
      <ScheduledFor>String</ScheduledFor>
    </DvirSignOffItem>
  </Defects>
  <EquipmentID>0</EquipmentID>
  <MechanicName>String</MechanicName>
  <SignaturePng>String</SignaturePng>
</EquipmentDvirSignOffRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<EquipmentDvirSignOffResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <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>
  <Returned>false</Returned>
  <Vehicle>
    <DrivingNow>false</DrivingNow>
    <EquipmentID>0</EquipmentID>
    <FirstUnsafeReport>String</FirstUnsafeReport>
    <InUseBy>String</InUseBy>
    <IsTrailer>false</IsTrailer>
    <LastOdometer>0</LastOdometer>
    <Line>String</Line>
    <LocalToday>String</LocalToday>
    <Name>String</Name>
    <NeedsPreTrip>false</NeedsPreTrip>
    <NeedsReview>false</NeedsReview>
    <OpenCount>0</OpenCount>
    <OpenDefects>
      <DvirDefectView>
        <ClientKey>String</ClientKey>
        <DvirDefectID>0</DvirDefectID>
        <DvirReportID>0</DvirReportID>
        <EquipmentID>0</EquipmentID>
        <EquipmentMaintenanceID>0</EquipmentMaintenanceID>
        <FormLine>String</FormLine>
        <IsCustom>false</IsCustom>
        <IsOpen>false</IsOpen>
        <ItemKey>String</ItemKey>
        <Label>String</Label>
        <Note>String</Note>
        <Outcome>String</Outcome>
        <OutcomeNote>String</OutcomeNote>
        <OutcomeText>String</OutcomeText>
        <PhotoCount>0</PhotoCount>
        <Photos>
          <DvirPhotoView>
            <CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
            <DefectKey>String</DefectKey>
            <Lat>0</Lat>
            <Lng>0</Lng>
            <MarkedUrl>String</MarkedUrl>
            <Url>String</Url>
            <WorkPhotoID>0</WorkPhotoID>
          </DvirPhotoView>
        </Photos>
        <ReportNumber>String</ReportNumber>
        <ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
        <ReportedByName>String</ReportedByName>
        <ScheduledFor>String</ScheduledFor>
        <Severity>String</Severity>
        <SeverityText>String</SeverityText>
        <SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
        <SignedOffByName>String</SignedOffByName>
        <Source>String</Source>
        <Unit>String</Unit>
        <Withdrawn>false</Withdrawn>
      </DvirDefectView>
    </OpenDefects>
    <ReviewReportIds xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:int>0</d3p1:int>
    </ReviewReportIds>
    <Status>String</Status>
    <StatusText>String</StatusText>
    <TodayPostTripId>0</TodayPostTripId>
    <TodayPreTripId>0</TodayPreTripId>
    <Trailers>
      <DvirUnitRef>
        <EquipmentID>0</EquipmentID>
        <Unit>String</Unit>
      </DvirUnitRef>
    </Trailers>
    <Unit>String</Unit>
    <VehicleStatus>String</VehicleStatus>
    <VehicleType>String</VehicleType>
    <BranchName>String</BranchName>
    <GvwrLbs>0</GvwrLbs>
    <History>
      <DvirReportView>
        <Board>String</Board>
        <Chip>String</Chip>
        <ContactID>0</ContactID>
        <Defects>
          <DvirDefectView>
            <ClientKey>String</ClientKey>
            <DvirDefectID>0</DvirDefectID>
            <DvirReportID>0</DvirReportID>
            <EquipmentID>0</EquipmentID>
            <EquipmentMaintenanceID>0</EquipmentMaintenanceID>
            <FormLine>String</FormLine>
            <IsCustom>false</IsCustom>
            <IsOpen>false</IsOpen>
            <ItemKey>String</ItemKey>
            <Label>String</Label>
            <Note>String</Note>
            <Outcome>String</Outcome>
            <OutcomeNote>String</OutcomeNote>
            <OutcomeText>String</OutcomeText>
            <PhotoCount>0</PhotoCount>
            <Photos>
              <DvirPhotoView>
                <CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
                <DefectKey>String</DefectKey>
                <Lat>0</Lat>
                <Lng>0</Lng>
                <MarkedUrl>String</MarkedUrl>
                <Url>String</Url>
                <WorkPhotoID>0</WorkPhotoID>
              </DvirPhotoView>
            </Photos>
            <ReportNumber>String</ReportNumber>
            <ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
            <ReportedByName>String</ReportedByName>
            <ScheduledFor>String</ScheduledFor>
            <Severity>String</Severity>
            <SeverityText>String</SeverityText>
            <SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
            <SignedOffByName>String</SignedOffByName>
            <Source>String</Source>
            <Unit>String</Unit>
            <Withdrawn>false</Withdrawn>
          </DvirDefectView>
        </Defects>
        <DriverName>String</DriverName>
        <DvirReportID>0</DvirReportID>
        <EquipmentID>0</EquipmentID>
        <FiledAtUtc>0001-01-01T00:00:00</FiledAtUtc>
        <ForDate>String</ForDate>
        <IsAway>false</IsAway>
        <IsLate>false</IsLate>
        <IsSatisfactory>false</IsSatisfactory>
        <Kind>String</Kind>
        <KindText>String</KindText>
        <LocationText>String</LocationText>
        <Number>String</Number>
        <Odometer>0</Odometer>
        <Remarks>String</Remarks>
        <ReviewedAtUtc>0001-01-01T00:00:00</ReviewedAtUtc>
        <ReviewedByName>String</ReviewedByName>
        <SavedAtUtc>0001-01-01T00:00:00</SavedAtUtc>
        <Signatures>
          <DvirSignatureView>
            <ImageUrl>String</ImageUrl>
            <Role>String</Role>
            <SignatureRecordID>0</SignatureRecordID>
            <SignedAt>0001-01-01T00:00:00</SignedAt>
            <SignerName>String</SignerName>
          </DvirSignatureView>
        </Signatures>
        <Trailers>
          <DvirUnitRef>
            <EquipmentID>0</EquipmentID>
            <Unit>String</Unit>
          </DvirUnitRef>
        </Trailers>
        <Unit>String</Unit>
      </DvirReportView>
    </History>
    <InspectionDue>0001-01-01T00:00:00</InspectionDue>
    <InsuranceExpires>0001-01-01T00:00:00</InsuranceExpires>
    <Plate>String</Plate>
    <RecentlyFixed>
      <DvirDefectView>
        <ClientKey>String</ClientKey>
        <DvirDefectID>0</DvirDefectID>
        <DvirReportID>0</DvirReportID>
        <EquipmentID>0</EquipmentID>
        <EquipmentMaintenanceID>0</EquipmentMaintenanceID>
        <FormLine>String</FormLine>
        <IsCustom>false</IsCustom>
        <IsOpen>false</IsOpen>
        <ItemKey>String</ItemKey>
        <Label>String</Label>
        <Note>String</Note>
        <Outcome>String</Outcome>
        <OutcomeNote>String</OutcomeNote>
        <OutcomeText>String</OutcomeText>
        <PhotoCount>0</PhotoCount>
        <Photos>
          <DvirPhotoView>
            <CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
            <DefectKey>String</DefectKey>
            <Lat>0</Lat>
            <Lng>0</Lng>
            <MarkedUrl>String</MarkedUrl>
            <Url>String</Url>
            <WorkPhotoID>0</WorkPhotoID>
          </DvirPhotoView>
        </Photos>
        <ReportNumber>String</ReportNumber>
        <ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
        <ReportedByName>String</ReportedByName>
        <ScheduledFor>String</ScheduledFor>
        <Severity>String</Severity>
        <SeverityText>String</SeverityText>
        <SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
        <SignedOffByName>String</SignedOffByName>
        <Source>String</Source>
        <Unit>String</Unit>
        <Withdrawn>false</Withdrawn>
      </DvirDefectView>
    </RecentlyFixed>
    <ReviewReports>
      <DvirReportView>
        <Board>String</Board>
        <Chip>String</Chip>
        <ContactID>0</ContactID>
        <Defects>
          <DvirDefectView>
            <ClientKey>String</ClientKey>
            <DvirDefectID>0</DvirDefectID>
            <DvirReportID>0</DvirReportID>
            <EquipmentID>0</EquipmentID>
            <EquipmentMaintenanceID>0</EquipmentMaintenanceID>
            <FormLine>String</FormLine>
            <IsCustom>false</IsCustom>
            <IsOpen>false</IsOpen>
            <ItemKey>String</ItemKey>
            <Label>String</Label>
            <Note>String</Note>
            <Outcome>String</Outcome>
            <OutcomeNote>String</OutcomeNote>
            <OutcomeText>String</OutcomeText>
            <PhotoCount>0</PhotoCount>
            <Photos>
              <DvirPhotoView>
                <CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
                <DefectKey>String</DefectKey>
                <Lat>0</Lat>
                <Lng>0</Lng>
                <MarkedUrl>String</MarkedUrl>
                <Url>String</Url>
                <WorkPhotoID>0</WorkPhotoID>
              </DvirPhotoView>
            </Photos>
            <ReportNumber>String</ReportNumber>
            <ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
            <ReportedByName>String</ReportedByName>
            <ScheduledFor>String</ScheduledFor>
            <Severity>String</Severity>
            <SeverityText>String</SeverityText>
            <SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
            <SignedOffByName>String</SignedOffByName>
            <Source>String</Source>
            <Unit>String</Unit>
            <Withdrawn>false</Withdrawn>
          </DvirDefectView>
        </Defects>
        <DriverName>String</DriverName>
        <DvirReportID>0</DvirReportID>
        <EquipmentID>0</EquipmentID>
        <FiledAtUtc>0001-01-01T00:00:00</FiledAtUtc>
        <ForDate>String</ForDate>
        <IsAway>false</IsAway>
        <IsLate>false</IsLate>
        <IsSatisfactory>false</IsSatisfactory>
        <Kind>String</Kind>
        <KindText>String</KindText>
        <LocationText>String</LocationText>
        <Number>String</Number>
        <Odometer>0</Odometer>
        <Remarks>String</Remarks>
        <ReviewedAtUtc>0001-01-01T00:00:00</ReviewedAtUtc>
        <ReviewedByName>String</ReviewedByName>
        <SavedAtUtc>0001-01-01T00:00:00</SavedAtUtc>
        <Signatures>
          <DvirSignatureView>
            <ImageUrl>String</ImageUrl>
            <Role>String</Role>
            <SignatureRecordID>0</SignatureRecordID>
            <SignedAt>0001-01-01T00:00:00</SignedAt>
            <SignerName>String</SignerName>
          </DvirSignatureView>
        </Signatures>
        <Trailers>
          <DvirUnitRef>
            <EquipmentID>0</EquipmentID>
            <Unit>String</Unit>
          </DvirUnitRef>
        </Trailers>
        <Unit>String</Unit>
      </DvirReportView>
    </ReviewReports>
    <VIN>String</VIN>
  </Vehicle>
</EquipmentDvirSignOffResponse>