/* Options: Date: 2024-11-21 14:20:54 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: EaccountingInvoiceQuery.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class ICompany { String? CompanyId; } class InvoiceAddress implements IConvertible { String? CorporateIdentityNumber; String? InvoiceAddress1; String? InvoiceAddress2; String? InvoiceCity; String? InvoicePostalCode; String? InvoiceCountryCode; InvoiceAddress({this.CorporateIdentityNumber,this.InvoiceAddress1,this.InvoiceAddress2,this.InvoiceCity,this.InvoicePostalCode,this.InvoiceCountryCode}); InvoiceAddress.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CorporateIdentityNumber = json['CorporateIdentityNumber']; InvoiceAddress1 = json['InvoiceAddress1']; InvoiceAddress2 = json['InvoiceAddress2']; InvoiceCity = json['InvoiceCity']; InvoicePostalCode = json['InvoicePostalCode']; InvoiceCountryCode = json['InvoiceCountryCode']; return this; } Map toJson() => { 'CorporateIdentityNumber': CorporateIdentityNumber, 'InvoiceAddress1': InvoiceAddress1, 'InvoiceAddress2': InvoiceAddress2, 'InvoiceCity': InvoiceCity, 'InvoicePostalCode': InvoicePostalCode, 'InvoiceCountryCode': InvoiceCountryCode }; getTypeName() => "InvoiceAddress"; TypeContext? context = _ctx; } class EAccountingPagination implements IConvertible { /** * Page number that will be fetched to e-accounting client; Default 1 */ // @DataMember(Order=1) // @ApiMember(Description="Page number that will be fetched to e-accounting client; Default 1") int? PageNumber; /** * Page size that will be fetched to e-accounting client; Default 75~ */ // @DataMember(Order=2) // @ApiMember(Description="Page size that will be fetched to e-accounting client; Default 75~") int? PageSize; EAccountingPagination({this.PageNumber,this.PageSize}); EAccountingPagination.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PageNumber = json['PageNumber']; PageSize = json['PageSize']; return this; } Map toJson() => { 'PageNumber': PageNumber, 'PageSize': PageSize }; getTypeName() => "EAccountingPagination"; TypeContext? context = _ctx; } enum EAccountingInvoiceSendTypes { None, AutoInvoiceElectronic, AutoInvoicePrint, AutoInvoiceB2C, } enum GreenTechnologyType { None, SolarCellInstallation, ElectricEnergyStorageInstallation, ElectricVehicleChargingPointInstallation, } class ContributionMargin implements IConvertible { int? Amount; int? Percentage; ContributionMargin({this.Amount,this.Percentage}); ContributionMargin.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Amount = json['Amount']; Percentage = json['Percentage']; return this; } Map toJson() => { 'Amount': Amount, 'Percentage': Percentage }; getTypeName() => "ContributionMargin"; TypeContext? context = _ctx; } class InvoiceLineQueryResponse implements IConvertible { String? ArticleNumber; String? ArticleId; bool? IsServiceArticle; double? AmountNoVat; double? PercentVat; int? LineNumber; bool? IsTextRow; String? Text; double? UnitPrice; String? UnitAbbreviation; String? UnitAbbreviationEnglish; double? DiscountPercentage; double? Quantity; bool? IsWorkCost; bool? IsVatFree; String? CostCenterItemId1; String? CostCenterItemId2; String? CostCenterItemId3; String? UnitId; String? ProjectId; int? WorkCostType; double? WorkHours; double? MaterialCosts; GreenTechnologyType? GreenTechnologyType; ContributionMargin? ContributionMargin; InvoiceLineQueryResponse({this.ArticleNumber,this.ArticleId,this.IsServiceArticle,this.AmountNoVat,this.PercentVat,this.LineNumber,this.IsTextRow,this.Text,this.UnitPrice,this.UnitAbbreviation,this.UnitAbbreviationEnglish,this.DiscountPercentage,this.Quantity,this.IsWorkCost,this.IsVatFree,this.CostCenterItemId1,this.CostCenterItemId2,this.CostCenterItemId3,this.UnitId,this.ProjectId,this.WorkCostType,this.WorkHours,this.MaterialCosts,this.GreenTechnologyType,this.ContributionMargin}); InvoiceLineQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ArticleNumber = json['ArticleNumber']; ArticleId = json['ArticleId']; IsServiceArticle = json['IsServiceArticle']; AmountNoVat = JsonConverters.toDouble(json['AmountNoVat']); PercentVat = JsonConverters.toDouble(json['PercentVat']); LineNumber = json['LineNumber']; IsTextRow = json['IsTextRow']; Text = json['Text']; UnitPrice = JsonConverters.toDouble(json['UnitPrice']); UnitAbbreviation = json['UnitAbbreviation']; UnitAbbreviationEnglish = json['UnitAbbreviationEnglish']; DiscountPercentage = JsonConverters.toDouble(json['DiscountPercentage']); Quantity = JsonConverters.toDouble(json['Quantity']); IsWorkCost = json['IsWorkCost']; IsVatFree = json['IsVatFree']; CostCenterItemId1 = json['CostCenterItemId1']; CostCenterItemId2 = json['CostCenterItemId2']; CostCenterItemId3 = json['CostCenterItemId3']; UnitId = json['UnitId']; ProjectId = json['ProjectId']; WorkCostType = json['WorkCostType']; WorkHours = JsonConverters.toDouble(json['WorkHours']); MaterialCosts = JsonConverters.toDouble(json['MaterialCosts']); GreenTechnologyType = JsonConverters.fromJson(json['GreenTechnologyType'],'GreenTechnologyType',context!); ContributionMargin = JsonConverters.fromJson(json['ContributionMargin'],'ContributionMargin',context!); return this; } Map toJson() => { 'ArticleNumber': ArticleNumber, 'ArticleId': ArticleId, 'IsServiceArticle': IsServiceArticle, 'AmountNoVat': AmountNoVat, 'PercentVat': PercentVat, 'LineNumber': LineNumber, 'IsTextRow': IsTextRow, 'Text': Text, 'UnitPrice': UnitPrice, 'UnitAbbreviation': UnitAbbreviation, 'UnitAbbreviationEnglish': UnitAbbreviationEnglish, 'DiscountPercentage': DiscountPercentage, 'Quantity': Quantity, 'IsWorkCost': IsWorkCost, 'IsVatFree': IsVatFree, 'CostCenterItemId1': CostCenterItemId1, 'CostCenterItemId2': CostCenterItemId2, 'CostCenterItemId3': CostCenterItemId3, 'UnitId': UnitId, 'ProjectId': ProjectId, 'WorkCostType': WorkCostType, 'WorkHours': WorkHours, 'MaterialCosts': MaterialCosts, 'GreenTechnologyType': JsonConverters.toJson(GreenTechnologyType,'GreenTechnologyType',context!), 'ContributionMargin': JsonConverters.toJson(ContributionMargin,'ContributionMargin',context!) }; getTypeName() => "InvoiceLineQueryResponse"; TypeContext? context = _ctx; } class VatSpecificationQueryResponse implements IConvertible { double? AmountInvoiceCurrency; double? VatAmountInvoiceCurrency; double? VatPercent; VatSpecificationQueryResponse({this.AmountInvoiceCurrency,this.VatAmountInvoiceCurrency,this.VatPercent}); VatSpecificationQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { AmountInvoiceCurrency = JsonConverters.toDouble(json['AmountInvoiceCurrency']); VatAmountInvoiceCurrency = JsonConverters.toDouble(json['VatAmountInvoiceCurrency']); VatPercent = JsonConverters.toDouble(json['VatPercent']); return this; } Map toJson() => { 'AmountInvoiceCurrency': AmountInvoiceCurrency, 'VatAmountInvoiceCurrency': VatAmountInvoiceCurrency, 'VatPercent': VatPercent }; getTypeName() => "VatSpecificationQueryResponse"; TypeContext? context = _ctx; } class Person implements IConvertible { String? Ssn; int? Amount; Person({this.Ssn,this.Amount}); Person.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Ssn = json['Ssn']; Amount = json['Amount']; return this; } Map toJson() => { 'Ssn': Ssn, 'Amount': Amount }; getTypeName() => "Person"; TypeContext? context = _ctx; } enum PaymentStatus { Paid, Unpaid, Overdue, } class CreditedBy implements IConvertible { String? CreditInvoiceId; CreditedBy({this.CreditInvoiceId}); CreditedBy.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CreditInvoiceId = json['CreditInvoiceId']; return this; } Map toJson() => { 'CreditInvoiceId': CreditInvoiceId }; getTypeName() => "CreditedBy"; TypeContext? context = _ctx; } class NoteQueryResponse implements IConvertible { String? Id; String? Text; DateTime? CreatedUtc; DateTime? ModifiedUtc; NoteQueryResponse({this.Id,this.Text,this.CreatedUtc,this.ModifiedUtc}); NoteQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Text = json['Text']; CreatedUtc = JsonConverters.fromJson(json['CreatedUtc'],'DateTime',context!); ModifiedUtc = JsonConverters.fromJson(json['ModifiedUtc'],'DateTime',context!); return this; } Map toJson() => { 'Id': Id, 'Text': Text, 'CreatedUtc': JsonConverters.toJson(CreatedUtc,'DateTime',context!), 'ModifiedUtc': JsonConverters.toJson(ModifiedUtc,'DateTime',context!) }; getTypeName() => "NoteQueryResponse"; TypeContext? context = _ctx; } class EAccountingTermsOfPaymentQueryResponse implements IConvertible { String? Id; String? Name; String? NameEnglish; int? NumberOfDays; int? TermsOfPaymentTypeId; String? TermsOfPaymentTypeText; bool? AvailableForSales; bool? AvailableForPurchase; EAccountingTermsOfPaymentQueryResponse({this.Id,this.Name,this.NameEnglish,this.NumberOfDays,this.TermsOfPaymentTypeId,this.TermsOfPaymentTypeText,this.AvailableForSales,this.AvailableForPurchase}); EAccountingTermsOfPaymentQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; NameEnglish = json['NameEnglish']; NumberOfDays = json['NumberOfDays']; TermsOfPaymentTypeId = json['TermsOfPaymentTypeId']; TermsOfPaymentTypeText = json['TermsOfPaymentTypeText']; AvailableForSales = json['AvailableForSales']; AvailableForPurchase = json['AvailableForPurchase']; return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'NameEnglish': NameEnglish, 'NumberOfDays': NumberOfDays, 'TermsOfPaymentTypeId': TermsOfPaymentTypeId, 'TermsOfPaymentTypeText': TermsOfPaymentTypeText, 'AvailableForSales': AvailableForSales, 'AvailableForPurchase': AvailableForPurchase }; getTypeName() => "EAccountingTermsOfPaymentQueryResponse"; TypeContext? context = _ctx; } class InvoiceQueryResponse implements IConvertible { String? InvoiceId; DateTime? CreatedDate; double? TotalAmount; double? TotalVatAmount; String? CustomerId; List? Rows; List? VatSpecification; String? InvoiceDate; String? DueDate; DateTime? DeliveryDate; List? Persons; String? InvoiceCustomerName; InvoiceAddress? InvoiceAddress; bool? CustomerIsPrivatePerson; String? TermsOfPaymentId; EAccountingTermsOfPaymentQueryResponse? TermsOfPaymentData; String? CustomerEmail; int? InvoiceNumber; String? CustomerNumber; List? Notes; List? NoteIds; DateTime? CreatedUtc; DateTime? ModifiedUtc; bool? IncludesVat; EAccountingInvoiceSendTypes? SendType; bool? IsSold; DateTime? PaymentDate; PaymentStatus? PaymentStatus; String? PaymentStatusTitle; List? CreditedBy; String? PriceSign; String? BookingId; InvoiceQueryResponse({this.InvoiceId,this.CreatedDate,this.TotalAmount,this.TotalVatAmount,this.CustomerId,this.Rows,this.VatSpecification,this.InvoiceDate,this.DueDate,this.DeliveryDate,this.Persons,this.InvoiceCustomerName,this.InvoiceAddress,this.CustomerIsPrivatePerson,this.TermsOfPaymentId,this.TermsOfPaymentData,this.CustomerEmail,this.InvoiceNumber,this.CustomerNumber,this.Notes,this.NoteIds,this.CreatedUtc,this.ModifiedUtc,this.IncludesVat,this.SendType,this.IsSold,this.PaymentDate,this.PaymentStatus,this.PaymentStatusTitle,this.CreditedBy,this.PriceSign,this.BookingId}); InvoiceQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { InvoiceId = json['InvoiceId']; CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); TotalAmount = JsonConverters.toDouble(json['TotalAmount']); TotalVatAmount = JsonConverters.toDouble(json['TotalVatAmount']); CustomerId = json['CustomerId']; Rows = JsonConverters.fromJson(json['Rows'],'List',context!); VatSpecification = JsonConverters.fromJson(json['VatSpecification'],'List',context!); InvoiceDate = json['InvoiceDate']; DueDate = json['DueDate']; DeliveryDate = JsonConverters.fromJson(json['DeliveryDate'],'DateTime',context!); Persons = JsonConverters.fromJson(json['Persons'],'List',context!); InvoiceCustomerName = json['InvoiceCustomerName']; InvoiceAddress = JsonConverters.fromJson(json['InvoiceAddress'],'InvoiceAddress',context!); CustomerIsPrivatePerson = json['CustomerIsPrivatePerson']; TermsOfPaymentId = json['TermsOfPaymentId']; TermsOfPaymentData = JsonConverters.fromJson(json['TermsOfPaymentData'],'EAccountingTermsOfPaymentQueryResponse',context!); CustomerEmail = json['CustomerEmail']; InvoiceNumber = json['InvoiceNumber']; CustomerNumber = json['CustomerNumber']; Notes = JsonConverters.fromJson(json['Notes'],'List',context!); NoteIds = JsonConverters.fromJson(json['NoteIds'],'List',context!); CreatedUtc = JsonConverters.fromJson(json['CreatedUtc'],'DateTime',context!); ModifiedUtc = JsonConverters.fromJson(json['ModifiedUtc'],'DateTime',context!); IncludesVat = json['IncludesVat']; SendType = JsonConverters.fromJson(json['SendType'],'EAccountingInvoiceSendTypes',context!); IsSold = json['IsSold']; PaymentDate = JsonConverters.fromJson(json['PaymentDate'],'DateTime',context!); PaymentStatus = JsonConverters.fromJson(json['PaymentStatus'],'PaymentStatus',context!); PaymentStatusTitle = json['PaymentStatusTitle']; CreditedBy = JsonConverters.fromJson(json['CreditedBy'],'List',context!); PriceSign = json['PriceSign']; BookingId = json['BookingId']; return this; } Map toJson() => { 'InvoiceId': InvoiceId, 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!), 'TotalAmount': TotalAmount, 'TotalVatAmount': TotalVatAmount, 'CustomerId': CustomerId, 'Rows': JsonConverters.toJson(Rows,'List',context!), 'VatSpecification': JsonConverters.toJson(VatSpecification,'List',context!), 'InvoiceDate': InvoiceDate, 'DueDate': DueDate, 'DeliveryDate': JsonConverters.toJson(DeliveryDate,'DateTime',context!), 'Persons': JsonConverters.toJson(Persons,'List',context!), 'InvoiceCustomerName': InvoiceCustomerName, 'InvoiceAddress': JsonConverters.toJson(InvoiceAddress,'InvoiceAddress',context!), 'CustomerIsPrivatePerson': CustomerIsPrivatePerson, 'TermsOfPaymentId': TermsOfPaymentId, 'TermsOfPaymentData': JsonConverters.toJson(TermsOfPaymentData,'EAccountingTermsOfPaymentQueryResponse',context!), 'CustomerEmail': CustomerEmail, 'InvoiceNumber': InvoiceNumber, 'CustomerNumber': CustomerNumber, 'Notes': JsonConverters.toJson(Notes,'List',context!), 'NoteIds': JsonConverters.toJson(NoteIds,'List',context!), 'CreatedUtc': JsonConverters.toJson(CreatedUtc,'DateTime',context!), 'ModifiedUtc': JsonConverters.toJson(ModifiedUtc,'DateTime',context!), 'IncludesVat': IncludesVat, 'SendType': JsonConverters.toJson(SendType,'EAccountingInvoiceSendTypes',context!), 'IsSold': IsSold, 'PaymentDate': JsonConverters.toJson(PaymentDate,'DateTime',context!), 'PaymentStatus': JsonConverters.toJson(PaymentStatus,'PaymentStatus',context!), 'PaymentStatusTitle': PaymentStatusTitle, 'CreditedBy': JsonConverters.toJson(CreditedBy,'List',context!), 'PriceSign': PriceSign, 'BookingId': BookingId }; getTypeName() => "InvoiceQueryResponse"; TypeContext? context = _ctx; } // @Route("/eaccounting/invoices", "GET") class EaccountingInvoiceQuery extends EAccountingPagination implements IReturn, ICompany, IConvertible, IGet { int? BookingId; bool? Paid; bool? IncludeInvoiceLines; bool? IncludeInvoiceNotes; bool? IncludePaymentTermData; bool? IncludeInvoiceAddress; String? CompanyId; EaccountingInvoiceQuery({this.BookingId,this.Paid,this.IncludeInvoiceLines,this.IncludeInvoiceNotes,this.IncludePaymentTermData,this.IncludeInvoiceAddress,this.CompanyId}); EaccountingInvoiceQuery.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); BookingId = json['BookingId']; Paid = json['Paid']; IncludeInvoiceLines = json['IncludeInvoiceLines']; IncludeInvoiceNotes = json['IncludeInvoiceNotes']; IncludePaymentTermData = json['IncludePaymentTermData']; IncludeInvoiceAddress = json['IncludeInvoiceAddress']; CompanyId = json['CompanyId']; return this; } Map toJson() => super.toJson()..addAll({ 'BookingId': BookingId, 'Paid': Paid, 'IncludeInvoiceLines': IncludeInvoiceLines, 'IncludeInvoiceNotes': IncludeInvoiceNotes, 'IncludePaymentTermData': IncludePaymentTermData, 'IncludeInvoiceAddress': IncludeInvoiceAddress, 'CompanyId': CompanyId }); createResponse() => InvoiceQueryResponse(); getResponseTypeName() => "InvoiceQueryResponse"; getTypeName() => "EaccountingInvoiceQuery"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: { 'ICompany': TypeInfo(TypeOf.Interface), 'InvoiceAddress': TypeInfo(TypeOf.Class, create:() => InvoiceAddress()), 'EAccountingPagination': TypeInfo(TypeOf.Class, create:() => EAccountingPagination()), 'EAccountingInvoiceSendTypes': TypeInfo(TypeOf.Enum, enumValues:EAccountingInvoiceSendTypes.values), 'GreenTechnologyType': TypeInfo(TypeOf.Enum, enumValues:GreenTechnologyType.values), 'ContributionMargin': TypeInfo(TypeOf.Class, create:() => ContributionMargin()), 'InvoiceLineQueryResponse': TypeInfo(TypeOf.Class, create:() => InvoiceLineQueryResponse()), 'VatSpecificationQueryResponse': TypeInfo(TypeOf.Class, create:() => VatSpecificationQueryResponse()), 'Person': TypeInfo(TypeOf.Class, create:() => Person()), 'PaymentStatus': TypeInfo(TypeOf.Enum, enumValues:PaymentStatus.values), 'CreditedBy': TypeInfo(TypeOf.Class, create:() => CreditedBy()), 'NoteQueryResponse': TypeInfo(TypeOf.Class, create:() => NoteQueryResponse()), 'EAccountingTermsOfPaymentQueryResponse': TypeInfo(TypeOf.Class, create:() => EAccountingTermsOfPaymentQueryResponse()), 'InvoiceQueryResponse': TypeInfo(TypeOf.Class, create:() => InvoiceQueryResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'EaccountingInvoiceQuery': TypeInfo(TypeOf.Class, create:() => EaccountingInvoiceQuery()), });