BokaMera.API.Host

<back to all web services

EAccountingInvoiceDraftQuery

The following routes are available for this service:
GET/eaccounting/invoicedrafts
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class EAccountingInvoiceDraftQuery : QueryData<InvoiceDraftQueryResponse>(), ICompany
{
    open var BookingId:Int? = null
    open var IncludeInvoiceLines:Boolean? = null
    open var IncludeInvoiceNotes:Boolean? = null
    override var CompanyId:UUID? = null
}

open class QueryData<T> : QueryBase()
{
}

@DataContract
open class QueryBase
{
    @DataMember(Order=1)
    open var Skip:Int? = null

    @DataMember(Order=2)
    open var Take:Int? = null

    @DataMember(Order=3)
    open var OrderBy:String? = null

    @DataMember(Order=4)
    open var OrderByDesc:String? = null

    @DataMember(Order=5)
    open var Include:String? = null

    @DataMember(Order=6)
    open var Fields:String? = null

    @DataMember(Order=7)
    open var Meta:HashMap<String,String>? = null
}

open class InvoiceDraftQueryResponse
{
    open var InvoiceId:UUID? = null
    open var CreatedDate:Date? = null
    open var TotalAmount:BigDecimal? = null
    open var TotalVatAmount:BigDecimal? = null
    open var CustomerId:String? = null
    open var Rows:ArrayList<InvoiceDraftLineQueryResponse> = ArrayList<InvoiceDraftLineQueryResponse>()
    open var InvoiceDate:String? = null
    open var DueDate:String? = null
    open var DeliveryDate:Date? = null
    open var Persons:ArrayList<Person> = ArrayList<Person>()
    open var InvoiceCustomerName:String? = null
    open var InvoiceAddress:EAccountingInvoiceAddress? = null
    open var CustomerIsPrivatePerson:Boolean? = null
    open var CustomerNumber:String? = null
    open var Notes:ArrayList<NoteQueryResponse> = ArrayList<NoteQueryResponse>()
    open var NoteIds:ArrayList<String> = ArrayList<String>()
    open var CreatedUtc:Date? = null
    open var IncludesVat:Boolean? = null
    open var PriceSign:String? = null
    open var BookingId:String? = null
}

open class InvoiceDraftLineQueryResponse
{
    open var ArticleNumber:String? = null
    open var ArticleId:String? = null
    open var IsServiceArticle:Boolean? = null
    open var AmountNoVat:BigDecimal? = null
    open var PercentVat:BigDecimal? = null
    open var LineNumber:Int? = null
    open var IsTextRow:Boolean? = null
    open var Text:String? = null
    open var UnitPrice:BigDecimal? = null
    open var UnitAbbreviation:String? = null
    open var UnitAbbreviationEnglish:String? = null
    open var DiscountPercentage:BigDecimal? = null
    open var Quantity:Double? = null
    open var IsWorkCost:Boolean? = null
    open var IsVatFree:Boolean? = null
    open var CostCenterItemId1:String? = null
    open var CostCenterItemId2:String? = null
    open var CostCenterItemId3:String? = null
    open var UnitId:String? = null
    open var ProjectId:String? = null
    open var WorkCostType:Int? = null
    open var WorkHours:Double? = null
    open var MaterialCosts:BigDecimal? = null
    open var GreenTechnologyType:GreenTechnologyType? = null
    open var ContributionMargin:ContributionMargin? = null
}

enum class GreenTechnologyType
{
    None,
    SolarCellInstallation,
    ElectricEnergyStorageInstallation,
    ElectricVehicleChargingPointInstallation,
}

open class ContributionMargin
{
    open var Amount:Int? = null
    open var Percentage:Int? = null
}

open class Person
{
    open var Ssn:String? = null
    open var Amount:Int? = null
}

open class EAccountingInvoiceAddress
{
    open var CorporateIdentityNumber:String? = null
    open var InvoiceAddress1:String? = null
    open var InvoiceAddress2:String? = null
    open var InvoiceCity:String? = null
    open var InvoicePostalCode:String? = null
    open var InvoiceCountryCode:String? = null
}

open class NoteQueryResponse
{
    open var Id:String? = null
    open var Text:String? = null
    open var CreatedUtc:Date? = null
    open var ModifiedUtc:Date? = null
}

@DataContract
open class QueryResponse<T>
{
    @DataMember(Order=1)
    open var Offset:Int? = null

    @DataMember(Order=2)
    open var Total:Int? = null

    @DataMember(Order=3)
    open var Results:ArrayList<AccessKeyTypeResponse> = ArrayList<AccessKeyTypeResponse>()

    @DataMember(Order=4)
    open var Meta:HashMap<String,String>? = null

    @DataMember(Order=5)
    open var ResponseStatus:ResponseStatus? = null
}

open class AccessKeyTypeResponse
{
    open var Id:Int? = null
    open var KeyType:String? = null
    open var Description:String? = null
}

Kotlin EAccountingInvoiceDraftQuery 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.

GET /eaccounting/invoicedrafts HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Offset: 0,
	Total: 0,
	Results: 
	[
		{
			CreatedDate: "0001-01-01T00:00:00",
			TotalAmount: 0,
			TotalVatAmount: 0,
			CustomerId: String,
			Rows: 
			[
				{
					ArticleNumber: String,
					ArticleId: String,
					IsServiceArticle: False,
					AmountNoVat: 0,
					PercentVat: 0,
					LineNumber: 0,
					IsTextRow: False,
					Text: String,
					UnitPrice: 0,
					UnitAbbreviation: String,
					UnitAbbreviationEnglish: String,
					DiscountPercentage: 0,
					Quantity: 0,
					IsWorkCost: False,
					IsVatFree: False,
					CostCenterItemId1: String,
					CostCenterItemId2: String,
					CostCenterItemId3: String,
					UnitId: String,
					ProjectId: String,
					WorkCostType: 0,
					WorkHours: 0,
					MaterialCosts: 0,
					GreenTechnologyType: None,
					ContributionMargin: 
					{
						Amount: 0,
						Percentage: 0
					}
				}
			],
			InvoiceDate: String,
			DueDate: String,
			DeliveryDate: "0001-01-01T00:00:00",
			Persons: 
			[
				{
					Ssn: String,
					Amount: 0
				}
			],
			InvoiceCustomerName: String,
			InvoiceAddress: 
			{
				CorporateIdentityNumber: String,
				InvoiceAddress1: String,
				InvoiceAddress2: String,
				InvoiceCity: String,
				InvoicePostalCode: String,
				InvoiceCountryCode: String
			},
			CustomerIsPrivatePerson: False,
			CustomerNumber: String,
			Notes: 
			[
				{
					Id: String,
					Text: String
				}
			],
			NoteIds: 
			[
				String
			],
			IncludesVat: False,
			PriceSign: String,
			BookingId: String
		}
	],
	Meta: 
	{
		String: String
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}