Trendsic Platform Service

<back to all web services

PmProjectDetailRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/pm/project/{Uid}
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class PmProjectDetailRequest
{
    open var Uid:String? = null
}

open class PmProjectDetail
{
    open var ProjectID:Int? = null
    open var ProjectUID:String? = null
    open var Name:String? = null
    open var Client:String? = null
    open var ProjectType:String? = null
    open var Status:String? = null
    open var Branch:String? = null
    open var StartDate:String? = null
    open var EndDate:String? = null
    open var Description:String? = null
    open var Finance:PmFinance? = null
    open var Readiness:PmReadiness? = null
    open var Jobs:ArrayList<PmJob> = ArrayList<PmJob>()
    open var Equipment:ArrayList<PmEquipmentRow> = ArrayList<PmEquipmentRow>()
    open var Materials:ArrayList<PmMaterialRow> = ArrayList<PmMaterialRow>()
    open var Calendar:ArrayList<PmCalendarBar> = ArrayList<PmCalendarBar>()
    open var ProjectStatuses:ArrayList<PmCatalogItem> = ArrayList<PmCatalogItem>()
    open var ResponseStatus:ResponseStatus? = null
}

open class PmFinance
{
    open var Budget:Double? = null
    open var Spent:Double? = null
    open var EstimatedCost:Double? = null
    open var CrewCost:Double? = null
    open var EquipCost:Double? = null
    open var MatCost:Double? = null
    open var Variance:Double? = null
    open var HealthPct:Int? = null
    open var SpentPct:Int? = null
    open var ProgressPct:Int? = null
}

open class PmReadiness
{
    open var JobsNoCrew:Int? = null
    open var OpenRoles:Int? = null
    open var EquipmentConflicts:Int? = null
    open var MaterialGaps:Int? = null
    open var TotalGaps:Int? = null
    open var ReadyPct:Int? = null
}

open class PmJob
{
    open var JobID:Int? = null
    open var Name:String? = null
    open var Description:String? = null
    open var Status:String? = null
    open var StartDate:String? = null
    open var EndDate:String? = null
    open var CrewCount:Int? = null
    open var BudgetedHours:Double? = null
    open var EquipmentCount:Int? = null
    open var MaterialCount:Int? = null
    open var CrewCost:Double? = null
    open var EquipCost:Double? = null
    open var MatCost:Double? = null
    open var Cost:Double? = null
    open var NoCrew:Boolean? = null
    open var EquipConflict:Boolean? = null
    open var MaterialGap:Boolean? = null
    open var ReadyPct:Int? = null
    open var Crew:ArrayList<PmJobCrew> = ArrayList<PmJobCrew>()
    open var Equipment:ArrayList<PmJobResource> = ArrayList<PmJobResource>()
    open var Materials:ArrayList<PmJobResource> = ArrayList<PmJobResource>()
}

open class PmJobCrew
{
    open var ContactID:Int? = null
    open var Name:String? = null
    open var Rate:Double? = null
    open var BudgetedHours:Double? = null
    open var IsOpen:Boolean? = null
}

open class PmJobResource
{
    open var Id:Int? = null
    open var Name:String? = null
    open var Amount:Double? = null
    open var Qty:Int? = null
}

open class PmEquipmentRow
{
    open var EquipmentID:Int? = null
    open var Name:String? = null
    open var EquipmentType:String? = null
    open var SerialNumber:String? = null
    open var UsedByJobs:String? = null
    open var Available:Boolean? = null
    open var Conflicts:ArrayList<PmConflict> = ArrayList<PmConflict>()
    open var MaintenanceIntervalDays:Int? = null
    open var LastServiceDate:String? = null
    open var NextServiceDate:String? = null
    open var MaintenanceState:String? = null
}

open class PmConflict
{
    open var ProjectName:String? = null
    open var JobName:String? = null
    open var StartDate:String? = null
    open var EndDate:String? = null
}

open class PmMaterialRow
{
    open var MaterialID:Int? = null
    open var Name:String? = null
    open var MaterialType:String? = null
    open var OnHand:Int? = null
    open var NeededByJobs:Int? = null
    open var QtyNeeded:Int? = null
    open var ToOrder:Int? = null
    open var UnitCost:Double? = null
    open var LineCost:Double? = null
    open var ProjectMaterialID:Int? = null
    open var StatusID:Int? = null
    open var Status:String? = null
    open var Supplier:String? = null
    open var OrderDate:String? = null
    open var DeliveryDate:String? = null
    open var Shortfall:Boolean? = null
}

open class PmCalendarBar
{
    open var JobID:Int? = null
    open var Name:String? = null
    open var StartDate:String? = null
    open var EndDate:String? = null
    open var Status:String? = null
}

open class PmCatalogItem
{
    open var Id:Int? = null
    open var Name:String? = null
    open var Amount:Double? = null
}

Kotlin PmProjectDetailRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/pm/project/{Uid} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ProjectID":0,"ProjectUID":"String","Name":"String","Client":"String","ProjectType":"String","Status":"String","Branch":"String","StartDate":"String","EndDate":"String","Description":"String","Finance":{"Budget":0,"Spent":0,"EstimatedCost":0,"CrewCost":0,"EquipCost":0,"MatCost":0,"Variance":0,"HealthPct":0,"SpentPct":0,"ProgressPct":0},"Readiness":{"JobsNoCrew":0,"OpenRoles":0,"EquipmentConflicts":0,"MaterialGaps":0,"TotalGaps":0,"ReadyPct":0},"Jobs":[{"JobID":0,"Name":"String","Description":"String","Status":"String","StartDate":"String","EndDate":"String","CrewCount":0,"BudgetedHours":0,"EquipmentCount":0,"MaterialCount":0,"CrewCost":0,"EquipCost":0,"MatCost":0,"Cost":0,"NoCrew":false,"EquipConflict":false,"MaterialGap":false,"ReadyPct":0,"Crew":[{"ContactID":0,"Name":"String","Rate":0,"BudgetedHours":0,"IsOpen":false}],"Equipment":[{"Id":0,"Name":"String","Amount":0,"Qty":0}],"Materials":[{"Id":0,"Name":"String","Amount":0,"Qty":0}]}],"Equipment":[{"EquipmentID":0,"Name":"String","EquipmentType":"String","SerialNumber":"String","UsedByJobs":"String","Available":false,"Conflicts":[{"ProjectName":"String","JobName":"String","StartDate":"String","EndDate":"String"}],"MaintenanceIntervalDays":0,"LastServiceDate":"String","NextServiceDate":"String","MaintenanceState":"String"}],"Materials":[{"MaterialID":0,"Name":"String","MaterialType":"String","OnHand":0,"NeededByJobs":0,"QtyNeeded":0,"ToOrder":0,"UnitCost":0,"LineCost":0,"ProjectMaterialID":0,"StatusID":0,"Status":"String","Supplier":"String","OrderDate":"String","DeliveryDate":"String","Shortfall":false}],"Calendar":[{"JobID":0,"Name":"String","StartDate":"String","EndDate":"String","Status":"String"}],"ProjectStatuses":[{"Id":0,"Name":"String","Amount":0}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}