/* Options: Date: 2024-11-21 14:01:26 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: EaccountingInvoicePrintQuery.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/eaccounting/invoice/print", "GET") public class EaccountingInvoicePrintQuery : IReturn, ICompany, Codable { public typealias Return = InvoiceQueryResponse public var invoiceId:String public var companyId:String? required public init(){} } public class InvoiceQueryResponse : Codable { public var invoiceId:String public var createdDate:Date public var totalAmount:Double public var totalVatAmount:Double public var customerId:String public var rows:[InvoiceLineQueryResponse] = [] public var vatSpecification:[VatSpecificationQueryResponse] = [] public var invoiceDate:String public var dueDate:String public var deliveryDate:Date? public var persons:[Person] = [] public var invoiceCustomerName:String public var invoiceAddress:InvoiceAddress public var customerIsPrivatePerson:Bool public var termsOfPaymentId:String public var termsOfPaymentData:EAccountingTermsOfPaymentQueryResponse public var customerEmail:String public var invoiceNumber:Int public var customerNumber:String public var notes:[NoteQueryResponse] = [] public var noteIds:[String] = [] public var createdUtc:Date public var modifiedUtc:Date public var includesVat:Bool public var sendType:EAccountingInvoiceSendTypes? public var isSold:Bool public var paymentDate:Date? public var paymentStatus:PaymentStatus public var paymentStatusTitle:String public var creditedBy:[CreditedBy] = [] public var priceSign:String public var bookingId:String required public init(){} } public protocol ICompany { var companyId:String? { get set } } public class InvoiceAddress : Codable { public var corporateIdentityNumber:String public var invoiceAddress1:String public var invoiceAddress2:String public var invoiceCity:String public var invoicePostalCode:String public var invoiceCountryCode:String required public init(){} } public enum EAccountingInvoiceSendTypes : String, Codable { case None case AutoInvoiceElectronic case AutoInvoicePrint case AutoInvoiceB2C } public class InvoiceLineQueryResponse : Codable { public var articleNumber:String public var articleId:String public var isServiceArticle:Bool public var amountNoVat:Double public var percentVat:Double? public var lineNumber:Int public var isTextRow:Bool public var text:String public var unitPrice:Double public var unitAbbreviation:String public var unitAbbreviationEnglish:String public var discountPercentage:Double public var quantity:Float public var isWorkCost:Bool public var isVatFree:Bool public var costCenterItemId1:String public var costCenterItemId2:String public var costCenterItemId3:String public var unitId:String public var projectId:String public var workCostType:Int? public var workHours:Float? public var materialCosts:Double? public var greenTechnologyType:GreenTechnologyType? public var contributionMargin:ContributionMargin required public init(){} } public class VatSpecificationQueryResponse : Codable { public var amountInvoiceCurrency:Double public var vatAmountInvoiceCurrency:Double public var vatPercent:Double required public init(){} } public class Person : Codable { public var ssn:String public var amount:Int required public init(){} } public enum PaymentStatus : String, Codable { case Paid case Unpaid case Overdue } public class CreditedBy : Codable { public var creditInvoiceId:String required public init(){} } public enum GreenTechnologyType : String, Codable { case None case SolarCellInstallation case ElectricEnergyStorageInstallation case ElectricVehicleChargingPointInstallation } public class ContributionMargin : Codable { public var amount:Int? public var percentage:Int? required public init(){} } public class NoteQueryResponse : Codable { public var id:String public var text:String public var createdUtc:Date public var modifiedUtc:Date required public init(){} } public class EAccountingTermsOfPaymentQueryResponse : Codable { public var id:String public var name:String public var nameEnglish:String public var numberOfDays:Int public var termsOfPaymentTypeId:Int public var termsOfPaymentTypeText:String public var availableForSales:Bool public var availableForPurchase:Bool required public init(){} }