Server

<back to all web services

AddOrder

Requires Authentication
The following routes are available for this service:
POST/Order
import Foundation
import ServiceStack

// @DataContract
public class AddOrder : Codable
{
    // @DataMember(Name="Auftrag")
    public var Auftrag:Order

    required public init(){}
}

// @DataContract
public class Order : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="LastModified")
    public var LastModified:Date?

    // @DataMember(Name="AbrechnungseinheitGuid")
    public var AbrechnungseinheitGuid:String

    // @DataMember(Name="AuftragNummer")
    public var AuftragNummer:String

    // @DataMember(Name="Bezeichnung")
    public var Bezeichnung:String

    // @DataMember(Name="Anmerkung")
    public var Anmerkung:String

    // @DataMember(Name="UnterschriftBenoetigt")
    public var UnterschriftBenoetigt:Bool

    // @DataMember(Name="Erstellungsdatum")
    public var Erstellungsdatum:Date

    // @DataMember(Name="AuftragZustand")
    public var AuftragZustand:OrderState

    // @DataMember(Name="Termine")
    public var Termine:IList<Appointment>

    // @DataMember(Name="AuftragsPositionen")
    public var AuftragsPositionen:IList<OrderPosition>

    // @DataMember(Name="NutzeinheitZustaende")
    public var NutzeinheitZustaende:IList<NutzeinheitOrderState>

    // @DataMember(Name="GeraeteZustaende")
    public var GeraeteZustaende:IList<DeviceOrderState>

    // @DataMember(Name="Auftraggeber")
    public var Auftraggeber:Orderer

    // @DataMember(Name="Unterschriften")
    public var Unterschriften:IList<Signature>

    required public init(){}
}

// @DataContract
public class OrderState : Codable
{
    // @DataMember(Name="LastModified")
    public var LastModified:Date?

    // @DataMember(Name="AuftragArten")
    public var AuftragArten:IList<OrderKind?>

    // @DataMember(Name="Bearbeitungsstatus")
    public var Bearbeitungsstatus:ProcessState?

    // @DataMember(Name="AbgeschlossenDatum")
    public var AbgeschlossenDatum:Date?

    required public init(){}
}

public enum ProcessState : String, Codable
{
    case InProgress
    case Updating
    case Creating
    case Completed
}

// @DataContract
public class Appointment : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="Von")
    public var Von:Date

    // @DataMember(Name="Bis")
    public var Bis:Date

    // @DataMember(Name="Monteure")
    public var Monteure:IList<AppointmentStoreUser>

    // @DataMember(Name="Nutzeinheiten")
    public var Nutzeinheiten:IList<AppointmentNutzeinheit>

    required public init(){}
}

// @DataContract
public class AppointmentStoreUser : Codable
{
    // @DataMember(Name="MonteurGuid")
    public var MonteurGuid:String

    required public init(){}
}

// @DataContract
public class AppointmentNutzeinheit : Codable
{
    // @DataMember(Name="NutzeinheitGuid")
    public var NutzeinheitGuid:String

    required public init(){}
}

// @DataContract
public class OrderPosition : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="LastModified")
    public var LastModified:Date?

    // @DataMember(Name="Anmerkung")
    public var Anmerkung:String

    // @DataMember(Name="SollMenge")
    public var SollMenge:Int

    // @DataMember(Name="IstMenge")
    public var IstMenge:Int

    // @DataMember(Name="NutzeinheitOrderPositions")
    public var NutzeinheitOrderPositions:IList<NutzeinheitOrderPosition>

    // @DataMember(Name="ArtikelGuid")
    public var ArtikelGuid:String

    required public init(){}
}

// @DataContract
public class NutzeinheitOrderPosition : Codable
{
    // @DataMember(Name="NutzeinheitGuid")
    public var NutzeinheitGuid:String

    required public init(){}
}

// @DataContract
public class NutzeinheitOrderState : Codable
{
    // @DataMember(Name="NutzeinheitGuid")
    public var NutzeinheitGuid:String

    // @DataMember(Name="LastModified")
    public var LastModified:Date?

    // @DataMember(Name="AuftragArten")
    public var AuftragArten:IList<NutzeinheitOrderKind?>

    // @DataMember(Name="Bearbeitungsstatus")
    public var Bearbeitungsstatus:ProcessState?

    // @DataMember(Name="AbgeschlossenDatum")
    public var AbgeschlossenDatum:Date?

    // @DataMember(Name="OsVersion")
    public var OsVersion:String

    // @DataMember(Name="AppVersion")
    public var AppVersion:String

    // @DataMember(Name="OsPlatform")
    public var OsPlatform:String

    // @DataMember(Name="AppGeraeteNummmer")
    public var AppGeraeteNummmer:String

    // @DataMember(Name="AmwInfoKeyGuid")
    public var AmwInfoKeyGuid:String?

    required public init(){}
}

// @DataContract
public class DeviceOrderState : Codable
{
    // @DataMember(Name="GeraeteGuid")
    public var GeraeteGuid:String

    // @DataMember(Name="AuftragGuid")
    public var AuftragGuid:String

    // @DataMember(Name="AuftragArt")
    public var AuftragArt:DeviceOrderKind?

    // @DataMember(Name="Bearbeitungsstatus")
    public var Bearbeitungsstatus:ProcessState?

    // @DataMember(Name="AbgeschlossenDatum")
    public var AbgeschlossenDatum:Date?

    // @DataMember(Name="AmwInfo")
    public var AmwInfo:String

    required public init(){}
}

public enum DeviceOrderKind : String, Codable
{
    case Assembly
    case Maintenance
    case Exchange
    case Reading
    case Inspection
    case MainReading
}

// @DataContract
public class Orderer : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="Person")
    public var Person:Person

    // @DataMember(Name="BetrieblichePosition")
    public var BetrieblichePosition:String

    required public init(){}
}

// @DataContract
public class Person : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="LastModified")
    public var LastModified:Date?

    // @DataMember(Name="Nachname1")
    public var Nachname1:String

    // @DataMember(Name="Nachname2")
    public var Nachname2:String

    // @DataMember(Name="Nachname3")
    public var Nachname3:String

    // @DataMember(Name="Vorname1")
    public var Vorname1:String

    // @DataMember(Name="Vorname2")
    public var Vorname2:String

    // @DataMember(Name="Anmerkung")
    public var Anmerkung:String

    // @DataMember(Name="Anrede")
    public var Anrede:String

    // @DataMember(Name="Titel")
    public var Titel:String

    // @DataMember(Name="PersonKommunikationen")
    public var PersonKommunikationen:[PersonCommunication] = []

    required public init(){}
}

// @DataContract
public class PersonCommunication : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="LastModified")
    public var LastModified:Date?

    // @DataMember(Name="Adresse")
    public var Adresse:String

    // @DataMember(Name="Anmerkung")
    public var Anmerkung:String

    // @DataMember(Name="KommunikationsFunktionGuid")
    public var KommunikationsFunktionGuid:String

    required public init(){}
}

// @DataContract
public class Signature : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="Timestamp")
    public var Timestamp:Date?

    // @DataMember(Name="UnterschriftArt")
    public var UnterschriftArt:SignatureKind?

    // @DataMember(Name="NutzeinheitGuid")
    public var NutzeinheitGuid:String

    required public init(){}
}

public enum SignatureKind : String, Codable
{
    case Nutzer
    case Technician
}

public class AddOrderResponse : Codable
{
    public var responseStatus:ResponseStatus

    required public init(){}
}


Swift AddOrder 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 /Order HTTP/1.1 
Host: mi-waerme-servamw.eras-online.de 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Auftrag: 
	{
		Guid: 00000000000000000000000000000000,
		LastModified: 0001-01-01T00:00:00Z,
		AbrechnungseinheitGuid: 00000000000000000000000000000000,
		AuftragNummer: String,
		Bezeichnung: String,
		Anmerkung: String,
		UnterschriftBenoetigt: False,
		Erstellungsdatum: 0001-01-01T00:00:00Z,
		AuftragZustand: 
		{
			LastModified: 0001-01-01T00:00:00Z,
			Bearbeitungsstatus: InProgress,
			AbgeschlossenDatum: 0001-01-01T00:00:00Z
		},
		Auftraggeber: 
		{
			Guid: 00000000000000000000000000000000,
			Person: 
			{
				Guid: 00000000000000000000000000000000,
				LastModified: 0001-01-01T00:00:00Z,
				Nachname1: String,
				Nachname2: String,
				Nachname3: String,
				Vorname1: String,
				Vorname2: String,
				Anmerkung: String,
				Anrede: String,
				Titel: String
			},
			BetrieblichePosition: String
		}
	}
}
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
		}
	}
}