/* Options: Date: 2024-11-21 12:03:28 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateInvoice.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/eaccounting/invoice", Verbs="POST") open class CreateInvoice : InvoiceAddress(), IReturn, ICompany { /** * The booking id, to be used to create the customer. */ @ApiMember(Description="The booking id, to be used to create the customer.", IsRequired=true) var BookingId:Int? = null /** * The Term of payment Id, to be used to create the invoice. */ @ApiMember(Description="The Term of payment Id, to be used to create the invoice.", IsRequired=true) var TermsOfPaymentId:UUID? = null /** * Note id's to add to this invoice */ @ApiMember(Description="Note id's to add to this invoice") var Notes:ArrayList = ArrayList() /** * Invoice Customer name */ @ApiMember(Description="Invoice Customer name") var InvoiceCustomerName:String? = null /** * Used for sending the invoice via Auto-invoice Default:None, 0 = None, 1 = AutoInvoiceElectronic, 2 = AutoInvoicePrint, 3 = AutoInvoiceB2C = ['0', '1', '2', '3']. */ @ApiMember(Description="Used for sending the invoice via Auto-invoice Default:None, 0 = None, 1 = AutoInvoiceElectronic, 2 = AutoInvoicePrint, 3 = AutoInvoiceB2C = ['0', '1', '2', '3'].", IsRequired=true) var SendType:EAccountingInvoiceSendTypes? = null /** * 1 = Apartment, 2 = Property Leave blank or set to null if you do not intend to use ROT or Green Technology functionality. */ @ApiMember(Description="1 = Apartment, 2 = Property Leave blank or set to null if you do not intend to use ROT or Green Technology functionality.", IsRequired=true) var RotPropertyType:RotPropertyTypes? = null /** * 0 = Normal, 1 = Rot, 2 = Rut = ['0', '1', '2'] */ @ApiMember(Description="0 = Normal, 1 = Rot, 2 = Rut = ['0', '1', '2']", IsRequired=true) var RotReducedInvoicingType:RotReducedInvoicingTypes? = null /** * The company id, if empty will use the company id for the user you are logged in with. */ @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") var CompanyId:UUID? = null companion object { private val responseType = CreateInvoiceQueryResponse::class.java } override fun getResponseType(): Any? = CreateInvoice.responseType } open class CreateInvoiceQueryResponse { var Invoice:InvoiceQueryResponse? = null var InvoiceUri:String? = null var ResponseStatus:ResponseStatus? = null } open interface ICompany { var CompanyId:UUID? } open class InvoiceAddress { var CorporateIdentityNumber:String? = null var InvoiceAddress1:String? = null var InvoiceAddress2:String? = null var InvoiceCity:String? = null var InvoicePostalCode:String? = null var InvoiceCountryCode:String? = null } enum class RotPropertyTypes(val value:Int) { Apartment(1), Property(2), } enum class RotReducedInvoicingTypes { Normal, Rot, Rut, } enum class EAccountingInvoiceSendTypes { None, AutoInvoiceElectronic, AutoInvoicePrint, AutoInvoiceB2C, } open class InvoiceQueryResponse { var InvoiceId:UUID? = null var CreatedDate:Date? = null var TotalAmount:BigDecimal? = null var TotalVatAmount:BigDecimal? = null var CustomerId:String? = null var Rows:ArrayList = ArrayList() var VatSpecification:ArrayList = ArrayList() var InvoiceDate:String? = null var DueDate:String? = null var DeliveryDate:Date? = null var Persons:ArrayList = ArrayList() var InvoiceCustomerName:String? = null var InvoiceAddress:InvoiceAddress? = null var CustomerIsPrivatePerson:Boolean? = null var TermsOfPaymentId:String? = null var TermsOfPaymentData:EAccountingTermsOfPaymentQueryResponse? = null var CustomerEmail:String? = null var InvoiceNumber:Int? = null var CustomerNumber:String? = null var Notes:ArrayList = ArrayList() var NoteIds:ArrayList = ArrayList() var CreatedUtc:Date? = null var ModifiedUtc:Date? = null var IncludesVat:Boolean? = null var SendType:EAccountingInvoiceSendTypes? = null var IsSold:Boolean? = null var PaymentDate:Date? = null var PaymentStatus:PaymentStatus? = null var PaymentStatusTitle:String? = null var CreditedBy:ArrayList = ArrayList() var PriceSign:String? = null var BookingId:String? = null }