Trendsic Platform Service

<back to all web services

ProjectMaterialListRequest

Requires Authentication
The following routes are available for this service:
GET,POST,PUT,DELETE,OPTIONS/v1/Project/Materials/{ProjectID}
GET,POST,PUT,DELETE,OPTIONS/v1/Project/Materials/{ProjectID}/{JobID}
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class ProjectMaterialListRequest
{
    open var ProjectID:Int? = null
    open var JobID:Int? = null
    open var ProjectMaterials:ArrayList<Material> = ArrayList<Material>()
}

open class Material
{
    open var MaterialID:Int? = null
    open var MaterialName:String? = null
    open var MaterialTypeID:Short? = null
    open var MaterialStatusID:Short? = null
    open var Quantity:Int? = null
    open var Supplier:String? = null
    open var OrderDate:Date? = null
    open var DeliveryDate:Date? = null
    open var OnSiteDate:Date? = null
    open var MaterialLocation:String? = null
    open var Manufacturer:String? = null
    open var SerialNumber:String? = null
    open var BarCode:String? = null
    open var TrackingInfo:String? = null
    open var MaterialDescription:String? = null
    open var Notes:String? = null
    open var ImageURL:String? = null
    open var DetailsURL:String? = null
    open var CreatedByUID:UUID? = null
    open var Active:Boolean? = null
    open var RecordCreatedDate:Date? = null
    open var StatusId:Int? = null
    open var MaterialTypeName:String? = null
    open var Cost:Double? = null
    open var Projects:ArrayList<Project> = ArrayList<Project>()
}

open class Project
{
    open var ProjectID:Int? = null
    open var ProjectUID:UUID? = null
    open var ProjectName:String? = null
    open var ImageURL:String? = null
    open var ImageKey:String? = null
    open var ClientName:String? = null
    open var ClientPhone:String? = null
    open var ClientEmail:String? = null
    open var ProjectManagerID:Int? = null
    open var ProjectManagerName:String? = null
    open var StartDate:Date? = null
    open var EndDate:Date? = null
    open var ActualStartDate:Date? = null
    open var ActualEndDate:Date? = null
    open var JobCount:Int? = null
    open var CrewMemberCount:Int? = null
    open var EquipmentCount:Int? = null
    open var MaterialCount:Int? = null
    open var ProjectStatusID:Short? = null
    open var ProjectStatusDescription:String? = null
    open var Budget:BigDecimal? = null
    open var CostToDate:BigDecimal? = null
    open var ProjectLocation:String? = null
    open var ProjectType:String? = null
    open var ProjectSponsor:String? = null
    open var CreatedBy:String? = null
    open var CreatedAt:Date? = null
    open var UpdatedAt:Date? = null
    open var ProjectDescription:String? = null
    open var Scope:String? = null
    open var StatusId:Int? = null
}

open class ProjectMaterialListResponse
{
    open var ResponseStatus:ResponseStatus? = null
    open var ProjectMaterials:ArrayList<ProjectMaterial> = ArrayList<ProjectMaterial>()
}

open class ProjectMaterial : Material()
{
    open var ProjectMaterialID:Int? = null
    open var ProjectID:Int? = null
    open var ProjectEndDate:Date? = null
    open var MaterialCost:Double? = null
    open var JobID:Int? = null
    open var BilledMaterialCost:Double? = null
    open var MaterialQty:Int? = null
}

Kotlin ProjectMaterialListRequest DTOs

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

HTTP + JSV

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

POST /v1/Project/Materials/{ProjectID} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ProjectID: 0,
	JobID: 0,
	ProjectMaterials: 
	[
		{
			MaterialID: 0,
			MaterialName: String,
			MaterialTypeID: 0,
			MaterialStatusID: 0,
			Quantity: 0,
			Supplier: String,
			OrderDate: 0001-01-01,
			DeliveryDate: 0001-01-01,
			OnSiteDate: 0001-01-01,
			MaterialLocation: String,
			Manufacturer: String,
			SerialNumber: String,
			BarCode: String,
			TrackingInfo: String,
			MaterialDescription: String,
			Notes: String,
			ImageURL: String,
			DetailsURL: String,
			CreatedByUID: 00000000000000000000000000000000,
			Active: False,
			RecordCreatedDate: 0001-01-01,
			StatusId: 0,
			MaterialTypeName: String,
			Cost: 0,
			Projects: 
			[
				{
					ProjectID: 0,
					ProjectUID: 00000000000000000000000000000000,
					ProjectName: String,
					ImageURL: String,
					ImageKey: String,
					ClientName: String,
					ClientPhone: String,
					ClientEmail: String,
					ProjectManagerID: 0,
					ProjectManagerName: String,
					StartDate: 0001-01-01,
					EndDate: 0001-01-01,
					ActualStartDate: 0001-01-01,
					ActualEndDate: 0001-01-01,
					JobCount: 0,
					CrewMemberCount: 0,
					EquipmentCount: 0,
					MaterialCount: 0,
					ProjectStatusID: 0,
					ProjectStatusDescription: String,
					Budget: 0,
					CostToDate: 0,
					ProjectLocation: String,
					ProjectType: String,
					ProjectSponsor: String,
					CreatedBy: String,
					CreatedAt: 0001-01-01,
					UpdatedAt: 0001-01-01,
					ProjectDescription: String,
					Scope: String,
					StatusId: 0
				}
			]
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	ProjectMaterials: 
	[
		{
			ProjectMaterialID: 0,
			ProjectID: 0,
			ProjectEndDate: 0001-01-01,
			MaterialCost: 0,
			JobID: 0,
			BilledMaterialCost: 0,
			MaterialQty: 0,
			MaterialID: 0,
			MaterialName: String,
			MaterialTypeID: 0,
			MaterialStatusID: 0,
			Quantity: 0,
			Supplier: String,
			OrderDate: 0001-01-01,
			DeliveryDate: 0001-01-01,
			OnSiteDate: 0001-01-01,
			MaterialLocation: String,
			Manufacturer: String,
			SerialNumber: String,
			BarCode: String,
			TrackingInfo: String,
			MaterialDescription: String,
			Notes: String,
			ImageURL: String,
			DetailsURL: String,
			CreatedByUID: 00000000000000000000000000000000,
			Active: False,
			RecordCreatedDate: 0001-01-01,
			StatusId: 0,
			MaterialTypeName: String,
			Cost: 0,
			Projects: 
			[
				{
					ProjectID: 0,
					ProjectUID: 00000000000000000000000000000000,
					ProjectName: String,
					ImageURL: String,
					ImageKey: String,
					ClientName: String,
					ClientPhone: String,
					ClientEmail: String,
					ProjectManagerID: 0,
					ProjectManagerName: String,
					StartDate: 0001-01-01,
					EndDate: 0001-01-01,
					ActualStartDate: 0001-01-01,
					ActualEndDate: 0001-01-01,
					JobCount: 0,
					CrewMemberCount: 0,
					EquipmentCount: 0,
					MaterialCount: 0,
					ProjectStatusID: 0,
					ProjectStatusDescription: String,
					Budget: 0,
					CostToDate: 0,
					ProjectLocation: String,
					ProjectType: String,
					ProjectSponsor: String,
					CreatedBy: String,
					CreatedAt: 0001-01-01,
					UpdatedAt: 0001-01-01,
					ProjectDescription: String,
					Scope: String,
					StatusId: 0
				}
			]
		}
	]
}