/* Options: Date: 2024-11-21 11:58:48 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: EaccountingInvoiceQuery.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: string; } export class InvoiceAddress { public CorporateIdentityNumber: string; public InvoiceAddress1: string; public InvoiceAddress2: string; public InvoiceCity: string; public InvoicePostalCode: string; public InvoiceCountryCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class EAccountingPagination { /** @description 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") public PageNumber?: number; /** @description 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~") public PageSize?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum EAccountingInvoiceSendTypes { None = 'None', AutoInvoiceElectronic = 'AutoInvoiceElectronic', AutoInvoicePrint = 'AutoInvoicePrint', AutoInvoiceB2C = 'AutoInvoiceB2C', } export enum GreenTechnologyType { None = 'None', SolarCellInstallation = 'SolarCellInstallation', ElectricEnergyStorageInstallation = 'ElectricEnergyStorageInstallation', ElectricVehicleChargingPointInstallation = 'ElectricVehicleChargingPointInstallation', } export class ContributionMargin { public Amount?: number; public Percentage?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class InvoiceLineQueryResponse { public ArticleNumber: string; public ArticleId: string; public IsServiceArticle: boolean; public AmountNoVat: number; public PercentVat?: number; public LineNumber: number; public IsTextRow: boolean; public Text: string; public UnitPrice: number; public UnitAbbreviation: string; public UnitAbbreviationEnglish: string; public DiscountPercentage: number; public Quantity: number; public IsWorkCost: boolean; public IsVatFree: boolean; public CostCenterItemId1: string; public CostCenterItemId2: string; public CostCenterItemId3: string; public UnitId: string; public ProjectId: string; public WorkCostType?: number; public WorkHours?: number; public MaterialCosts?: number; public GreenTechnologyType?: GreenTechnologyType; public ContributionMargin: ContributionMargin; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class VatSpecificationQueryResponse { public AmountInvoiceCurrency: number; public VatAmountInvoiceCurrency: number; public VatPercent: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Person { public Ssn: string; public Amount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum PaymentStatus { Paid = 'Paid', Unpaid = 'Unpaid', Overdue = 'Overdue', } export class CreditedBy { public CreditInvoiceId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class NoteQueryResponse { public Id: string; public Text: string; public CreatedUtc: string; public ModifiedUtc: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class EAccountingTermsOfPaymentQueryResponse { public Id: string; public Name: string; public NameEnglish: string; public NumberOfDays: number; public TermsOfPaymentTypeId: number; public TermsOfPaymentTypeText: string; public AvailableForSales: boolean; public AvailableForPurchase: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class InvoiceQueryResponse { public InvoiceId: string; public CreatedDate: string; public TotalAmount: number; public TotalVatAmount: number; public CustomerId: string; public Rows: InvoiceLineQueryResponse[]; public VatSpecification: VatSpecificationQueryResponse[]; public InvoiceDate: string; public DueDate: string; public DeliveryDate?: string; public Persons: Person[]; public InvoiceCustomerName: string; public InvoiceAddress: InvoiceAddress; public CustomerIsPrivatePerson: boolean; public TermsOfPaymentId: string; public TermsOfPaymentData: EAccountingTermsOfPaymentQueryResponse; public CustomerEmail: string; public InvoiceNumber: number; public CustomerNumber: string; public Notes: NoteQueryResponse[]; public NoteIds: string[]; public CreatedUtc: string; public ModifiedUtc: string; public IncludesVat: boolean; public SendType?: EAccountingInvoiceSendTypes; public IsSold: boolean; public PaymentDate?: string; public PaymentStatus: PaymentStatus; public PaymentStatusTitle: string; public CreditedBy: CreditedBy[]; public PriceSign: string; public BookingId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/eaccounting/invoices", "GET") export class EaccountingInvoiceQuery extends EAccountingPagination implements IReturn, ICompany { public BookingId?: number; public Paid?: boolean; public IncludeInvoiceLines: boolean; public IncludeInvoiceNotes: boolean; public IncludePaymentTermData: boolean; public IncludeInvoiceAddress: boolean; public CompanyId?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'EaccountingInvoiceQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new InvoiceQueryResponse(); } }