/* tslint:disable:max-classes-per-file */
/* tslint:disable:variable-name */
/* tslint:disable:no-trailing-whitespace */
/* tslint:disable:no-consecutive-blank-lines */
/* tslint:disable:no-namespace */
/* tslint:disable:member-access */
/* tslint:disable:typedef-whitespace */
/* tslint:disable:no-internal-module */

declare module EVA.Core {
  
  export class AccountSummary {
    AccountID : number; // Int32
    Name : string; 
    Amount : number; // Decimal
    ObjectAccount : string; 
    Subsidiary : string; 
  }
  
  export enum AccountType {
    GeneralLedger = 1,
    Debtor = 2,
    Creditor = 3,
  }
  
  export class Address {
    Street : string; 
    Number : string; 
    City : string; 
    PostalCode : string; 
    Country : string; 
    Region : string; 
    Type : EVA.Core.AddressType; 
  }
  
  export class AddressDataDto {
    AddressedTo : string; 
    Street : string; 
    HouseNumber : string; 
    Address1 : string; 
    Address2 : string; 
    ZipCode : string; 
    Subdistrict : string; 
    District : string; 
    City : string; 
    State : string; 
    Region : string; 
    CountryID : string; 
    Latitude? : number; // Double, nullable
    Longitude? : number; // Double, nullable
  }
  
  export class AddressDto extends EVA.Core.AddressDataDto {
    ID : number; // Int32
  }
  
  export class AddressSuggestion {
    ID : string; 
    Reference : string; 
    Description : string; 
  }
  
  export class AddressSuggestionDetails {
    Formatted : string; 
    Components : EVA.Core.AddressSuggestionDetailsComponent[]; 
    Geometry : EVA.Core.AddressSuggestionDetailsGeometryDetails; 
    UtcOffset : number; // Double
    HouseNumber : EVA.Core.AddressSuggestionDetailsComponent; 
    Street : EVA.Core.AddressSuggestionDetailsComponent; 
    City : EVA.Core.AddressSuggestionDetailsComponent; 
    Region : EVA.Core.AddressSuggestionDetailsComponent; 
    District : EVA.Core.AddressSuggestionDetailsComponent; 
    Subdistrict : EVA.Core.AddressSuggestionDetailsComponent; 
    Country : EVA.Core.AddressSuggestionDetailsComponent; 
    PostalCode : EVA.Core.AddressSuggestionDetailsComponent; 
    IsValidCountry : boolean; 
  }
  
  export enum AddressType {
    Street = 0,
    Postal = 1,
    Billing = 2,
    ShipTo = 3,
    ShipFrom = 4,
  }
  
  export class FilterModel {
    Values : any[]; 
    From : string; 
    To : string; 
    Negation : boolean; 
    ExactMatch : boolean; 
    IncludeMissing? : boolean; 
  }
  
  export class AggregationFilterModel extends EVA.Core.FilterModel {
    MaxAggregationTerms? : number; // Int32, nullable
    TermsAggregation : boolean; 
    StatsAggregation : boolean; 
    AggregationOptions : { [ key : string ] : EVA.Core.AggregationFilterModel }; 
  }
  
  export class EventLedgerFiltersAmountFilter {
    EqualTo? : number; // Decimal, nullable
    GreaterThan? : number; // Decimal, nullable
    LessThan? : number; // Decimal, nullable
  }
  
  export enum AppBundlesBehavior {
    Default = 0,
    Fashion = 1,
    Disabled = 2,
  }
  
  export enum AppScanditWorkingRange {
    Normal = 0,
    Long = 1,
  }
  
  export enum AppScanTargets {
    Details = 0,
    Cart = 1,
  }
  
  export enum AppSearchMethods {
    Query = 0,
    CustomID = 1,
  }
  
  export enum AppStockReservationActions {
    ForceComplete = 1,
    Order = 2,
    SetAside = 4,
    Cancel = 8,
    All = 15,
  }
  
  export enum AppViewMethods {
    ListView = 0,
    CardView = 1,
  }
  
  export class EventLedgerDocumentAttachmentDocument {
    Name : string; 
    Category : string; 
    MimeType : string; 
    BlobID : string; 
  }
  
  export enum AuditChainTypes {
    EventLedger = 0,
    InvoiceTotals = 1,
    FinancialPeriodTotals = 2,
    MonthlyFinancialReportingPeriodTotals = 3,
    YearlyFinancialReportingPeriodTotals = 4,
    InvoicePrint = 5,
    Invoice = 6,
    FinancialPeriodAudit = 7,
    InvoiceReprint = 8,
    TerminalTotals = 9,
  }
  
  export class EventLedgerDocumentAuditingDocument {
    CumulativeTotalTaxes : number; // Decimal
    SequenceNumber? : number; // Int64, nullable
    PreviousSequenceNumber? : number; // Int64, nullable
    Signature : string; 
    PreviousSignature : string; 
    Type : string; 
    Version : number; // Int32
    KeyBlobID : string; 
    ChainID : number; // Int64
  }
  
  export class EventLedgerDocumentAuthenticationResponseDocument {
    Result : EVA.Framework.AuthenticationResults; 
  }
  
  export enum AutoOpenCloseResult {
    Failure = 0,
    Success = 1,
    NothingToProcess = 2,
  }
  
  export enum BadgeTypes {
    Role = 1,
    Capability = 2,
    Achievement = 3,
  }
  
  export enum BankAccountAuthorizationResultTypes {
    NoPaymentFound = 1,
    NoPaymentDetails = 2,
    NoBankAccountInDetails = 3,
    NoMatchWithCustomerBankAccount = 4,
    Success = 5,
    NoMatchWithCustomerName = 6,
  }
  
  export enum BasicTypes {
    Cost = 1,
    Product = 2,
    Project = 3,
    ArticleGroup = 4,
    TicketLine = 5,
    Logging = 6,
    Saving = 7,
    Discount = 8,
    Quantity = 9,
    Raise = 10,
    Transaction = 11,
    Payment = 12,
    Event = 13,
    Service = 14,
    User = 15,
    Other = 16,
  }
  
  export class Billable {
    SystemID : string; 
    Name : string; 
    RegistrationNumber : string; 
    TaxRegistrationNumber : string; 
    PhoneNumber : string; 
    Address : EVA.Core.Address; 
  }
  
  export enum BookingFlags {
    None = 0,
    WithTaxInformation = 1,
    WithoutOffsets = 2,
    WithOrderNumber = 4,
    WithReference = 8,
    WithInvoiceNumber = 16,
    WithCurrencyInformation = 32,
  }
  
  export class BrandNameInfo {
    Name : string; 
    ProductCount : number; // Int32
  }
  
  export enum CancellationInitiator {
    System = 1,
    User = 2,
    External = 5,
  }
  
  export enum CardActionTypes {
    Activate = 0,
    Cancel = 1,
    PreventActivation = 2,
    Purchase = 3,
    Issue = 4,
    IssueAndActivate = 5,
  }
  
  export enum CardTransactionStatus {
    NotActivated = 0,
    Activating = 1,
    Activated = 2,
    Issued = 3,
    Cancelled = 99,
  }
  
  export class CarrierDto {
    ID : number; // Int32
    Name : string; 
    Code : string; 
  }
  
  export class CashJournalDetailsModelCashCorrection {
    ID : number; // Int32
    Type : EVA.Core.CashCorrectionTypes; 
    Amount : number; // Decimal
    Remark : string; 
    CashTransactionLedger : EVA.Core.CashJournalDetailsModelCashTransactionLedger; 
  }
  
  export class CashCorrectionDto {
    ID : number; // Int32
    Type : EVA.Core.CashCorrectionTypes; 
    Amount : number; // Decimal
    Remark : string; 
    CreationTime : string; // DateTime
    CashJournalID : number; // Int32
  }
  
  export enum CashCorrectionTypes {
    CashJournalOpening = 1,
    CashJournalClosing = 2,
  }
  
  export class CashJournalDetailsModelCashDenominations {
    Coins : { [ key : number ] : number }; 
    BankNotes : { [ key : number ] : number }; 
  }
  
  export class CashJournalDetailsModelCashDeposit {
    ID : number; // Int32
    Amount : number; // Decimal
    Number : string; 
    CashTransactionLedger : EVA.Core.CashJournalDetailsModelCashTransactionLedger; 
  }
  
  export class CashDepositDto {
    Number : string; 
    Description : string; 
    Total : number; // Decimal
    Lines : EVA.Core.CashDepositLineDto[]; 
  }
  
  export class CashDepositLineDto {
    Currency : number; // Decimal
    Quantity : number; // Int32
  }
  
  export class CashJournalDetailsModelCashDevice {
    ID : number; // Int32
    Name : string; 
    Type : EVA.Framework.FlagsEnumDto; 
    Station : EVA.Core.CashJournalDetailsModelStation; 
  }
  
  export class CashJournalDetailsModelCashExpense {
    ID : number; // Int32
    Amount : number; // Decimal
    TaxCode : EVA.Framework.EnumDto; 
    Description : string; 
    CreationTime : string; // DateTime
  }
  
  export enum CashExpenseAmountTypes {
    Expense = 0,
    Income = 1,
  }
  
  export class CashJournalDetailsModel {
    ID : number; // Int32
    OpeningAmount : number; // Decimal
    ExpectedClosingAmount : number; // Decimal
    OpeningDeviation? : number; // Decimal, nullable
    OpeningTime : string; // DateTime
    ClosingTime? : string; // DateTime, nullable
    ClosingAmount? : number; // Decimal, nullable
    Device : EVA.Core.CashJournalDetailsModelCashDevice; 
    Type : EVA.Core.CashJournalTypes; 
    PaymentType : EVA.Core.CashJournalDetailsModelPaymentTypeDto; 
    CurrencyID : string; 
    CashTransactions : EVA.Core.CashJournalDetailsModelCashTransactionLedger[]; 
    Expenses : EVA.Core.CashJournalDetailsModelCashExpense[]; 
    Deposits : EVA.Core.CashJournalDetailsModelCashDeposit[]; 
    Corrections : EVA.Core.CashJournalDetailsModelCashCorrection[]; 
    OpeningDenominations : EVA.Core.CashJournalDetailsModelCashDenominations; 
    ClosingDenominations : EVA.Core.CashJournalDetailsModelCashDenominations; 
    OpenCashJournalsCount : number; // Int32
  }
  
  export class CashJournalDto {
    OpeningAmount : number; // Decimal
    ClosingAmount? : number; // Decimal, nullable
    CreatedByID : number; // Int32
    CreatedByFullName : string; 
    TypeID : number; // Int32
  }
  
  export enum CashJournalTypes {
    Default = 0,
    NonMonetary = 1,
  }
  
  export class CashJournalDetailsModelCashTransactionLedger {
    ID : number; // Int32
    Description : string; 
    Amount : number; // Decimal
    CreationTime : string; // DateTime
    Type : EVA.Core.CashTransactionLedgerTypes; 
    Denominations : EVA.Core.CashJournalDetailsModelCashDenominations; 
  }
  
  export enum CashTransactionLedgerTypes {
    MoveFrom = 0,
    MoveTo = 1,
    Deposit = 2,
    Correction = 3,
    Expense = 4,
    AmountGiven = 5,
    Change = 6,
  }
  
  export enum CodeMigrationStatuses {
    Running = 0,
    Completed = 1,
    Failed = -1,
  }
  
  export enum ColorOptions {
    None = 0,
    Monochrome = 1,
    Grayscale = 2,
  }
  
  export class CommittedOrderLine {
    ID : number; // Int32
    OrderID : number; // Int32
    SoldFromOrganizationUnitID : number; // Int32
    SoldFromOrganizationUnitName : string; 
    Description : string; 
    TotalQuantityToShip : number; // Int32
    CommitmentStatus? : EVA.Core.OrderLineCommitmentStatus; 
    QuantityCommitted : number; // Int32
    RequestedDate? : string; // DateTime, nullable
    CreationTime : string; // DateTime
  }
  
  export enum CommunicationMessageResults {
    Found = 0,
    NotFoundOrDisabled = 1,
  }
  
  export enum CommunicationMessageTypes {
    Email = 0,
    SMS = 1,
  }
  
  export class CompanyDto {
    Name : string; 
    RegistrationNumber : string; 
    RegistrationCity : string; 
    RegistrationCountryID : string; 
    VatNumber : string; 
    LegalFormID : number; // Int32
    VisitorsAddress : EVA.Core.AddressDto; 
    DeliveryAddress : EVA.Core.AddressDto; 
    ReturnsAddress : EVA.Core.AddressDto; 
    InvoiceAddress : EVA.Core.AddressDto; 
    InvoiceEmailAddress : string; 
    EstablishedDate? : string; // DateTime, nullable
    ContactEmailAddress : string; 
    ContactPhoneNumber : string; 
    AccountHolderName : string; 
    IBAN : string; 
    BIC : string; 
    LogoID : string; 
  }
  
  export class AddressSuggestionDetailsComponent {
    LongName : string; 
    ShortName : string; 
    Types : string[]; 
  }
  
  export class ConfigurableProductDto {
    ProductID : number; // Int32
    Type : EVA.Core.ProductTypes; 
    Status : EVA.Core.ProductStatus; 
    LogicalLevel : string; 
    ConfigurableProperty : string; 
    Value : any; 
    Values : any[]; 
    Children : EVA.Core.ConfigurableProductDto[]; 
    Properties : any; 
  }
  
  export enum ConnectionType {
    Direct = 0,
    Proxy = 1,
  }
  
  export class CultureFilter {
    LanguageID : string; 
    CountryID : string; 
  }
  
  export class CurrencyDto {
    ID : string; 
    Name : string; 
    Precision : number; // Int16
  }
  
  export class EventLedgerDocumentCurrentUserDocument {
    ID : number; // Int32
    FirstName : string; 
    FullName : string; 
    EmailAddress : string; 
    ApplicationID : number; // Int32
    LanguageID : string; 
    CountryID : string; 
    OrganizationUnitID : number; // Int32
    StationID? : number; // Int32, nullable
    Type : EVA.Framework.UserTypes; 
    TimeZone : string; 
    OrganizationUnit : EVA.Core.EventLedgerDocumentOrganizationUnitDocument; 
  }
  
  export class EventLedgerDocumentOrderDocumentCustomerDocument {
    ID : number; // Int32
  }
  
  export enum DebitCreditIndicator {
    Debit = 0,
    Credit = 1,
  }
  
  export class DeliveryAvailabilityIndication {
    AvailabilityDate? : string; // DateTime, nullable
    QuantityAvailable? : number; // Int32, nullable
    IsAvailable : boolean; 
    AvailabilityText : string; 
  }
  
  export class DeliveryOrderData {
    DefaultShippingMethodID? : number; // Int32, nullable
    ShippingType : string; 
    ShippingPrice : number; // Decimal
    DeliveryService : string; 
    PickUpPointID : string; 
    PickUpPointName : string; 
    AdditionalPickUpPointInformation : string; 
    ExpectedDeliveryDate? : string; // DateTime, nullable
    DeliveryTimeFrom? : string; // DateTime, nullable
    DeliveryTimeTo? : string; // DateTime, nullable
  }
  
  export class EventLedgerDocumentDeviceDocument {
    ID : number; // Int32
    Name : string; 
    IpAddress : string; 
    Type : EVA.Core.EventLedgerDocumentDeviceDocumentDeviceTypeDocument; 
    EcrID : string; 
    HardwareID : string; 
    ProxyID : string; 
    StationID? : number; // Int32, nullable
  }
  
  export class DeviceDto {
    ID : number; // Int32
    BackendID : string; 
    Name : string; 
    Type : EVA.Framework.FlagsEnumDto; 
    TypeID : number; // Int32
    NetworkName : string; 
    IpAddress : string; 
    Station : EVA.Core.StationDto; 
    StationID? : number; // Int32, nullable
    AssemblyName : string; 
    EcrID : string; 
    HardwareID : string; 
    ProxyID : string; 
    OrganizationUnitID? : number; // Int32, nullable
    OrganizationUnit : EVA.Core.OrganizationUnitDto; 
  }
  
  export class EventLedgerDocumentDeviceDocumentDeviceTypeDocument {
    ID : number; // Int32
    IDs : number[]; 
    Name : string; 
    Names : string[]; 
  }
  
  export enum DiscountConditionTypes {
    OneOf = 0,
    All = 1,
  }
  
  export class DiscountCouponDto {
    ID : number; // Int32
    CouponCode : string; 
    DiscountID : number; // Int32
    IsActive : boolean; 
    UsageCount : number; // Int32
  }
  
  export class EventLedgerDocumentDiscountDocument {
    Trigger : EVA.Core.DiscountTriggers; 
    ActionType : string; 
    ActionData : any; 
  }
  
  export enum DiscountInvalidReasons {
    None = 0,
    NotExist = 1,
    NotValidYet = 2,
    Expired = 3,
    HasAlreadyBeenUsed = 4,
    CouponCodeAlreadyAdded = 5,
    ManualValueIsInvalid = 6,
    InvalidOrderType = 7,
    Invalid = 8,
  }
  
  export enum DiscountObjectTypes {
    Discount = 0,
    Condition = 1,
    Action = 2,
    Coupon = 3,
  }
  
  export enum DiscountOrderTypes {
    None = 0,
    Sales = 1,
    Purchase = 2,
    WishList = 4,
    All = 7,
  }
  
  export enum DiscountTriggers {
    Automatic = 0,
    Manual = 1,
    Coupon = 2,
    Bundles = 4,
    SystemManaged = -1,
  }
  
  export class DisputeAmounts {
    Total : number; // Decimal
    Original : number; // Decimal
    Expected : number; // Decimal
  }
  
  export enum DocumentType {
    BankAccountCard = 0,
    ID = 1,
  }
  
  export enum DocumentTypes {
    Ticket = 0,
    Invoice = 1,
    CreditNote = 2,
    Totals = 3,
  }
  
  export enum Drawer {
    DrawerA = 0,
    DrawerB = 1,
  }
  
  export class EventLedgerDocument {
    ID : string; 
    Type : string; 
    BackendType : string; 
    CreationTime : string; // DateTime
    IpAddress : string; 
    PartitionKey : string; 
    Auditing : EVA.Core.EventLedgerDocumentAuditingDocument; 
    CurrentUser : EVA.Core.EventLedgerDocumentCurrentUserDocument; 
    Order : EVA.Core.EventLedgerDocumentOrderDocument; 
    UserTask : EVA.Core.EventLedgerDocumentUserTaskDocument; 
    ExecutionContext : EVA.Core.EventLedgerDocumentExecutionContextDocument; 
    AuthenticationResponse : EVA.Core.EventLedgerDocumentAuthenticationResponseDocument; 
    PaymentTransaction : EVA.Core.EventLedgerDocumentPaymentTransactionDocument; 
    FinancialPeriod : EVA.Core.EventLedgerDocumentFinancialPeriodDocument; 
    Device : EVA.Core.EventLedgerDocumentDeviceDocument; 
    OrderLines : EVA.Core.EventLedgerDocumentOrderLineDocument[]; 
    Description : string; 
    Discount : EVA.Core.EventLedgerDocumentDiscountDocument; 
    Invoice : EVA.Core.EventLedgerDocumentInvoiceDocument; 
    Amount? : number; // Decimal, nullable
    Attachments : EVA.Core.EventLedgerDocumentAttachmentDocument[]; 
    MessageTemplate : EVA.Core.EventLedgerDocumentMessageTemplateDocument; 
    FinancialReportingPeriod : EVA.Core.EventLedgerDocumentFinancialReportingPeriodDocument; 
    Data : any; 
    BlobID : string; 
    OrganizationUnit : EVA.Core.EventLedgerDocumentOrganizationUnitDocument; 
    FinancialPeriodAudit : EVA.Core.EventLedgerDocumentFinancialPeriodAuditDocument; 
    Role : EVA.Core.EventLedgerDocumentRoleDocument; 
    User : EVA.Core.EventLedgerDocumentUserDocument; 
    TerminalReport : EVA.Core.EventLedgerDocumentTerminalReportDocument; 
  }
  
  export class EventLedgerFilters {
    Types : string[]; 
    OrderID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    DeviceID? : number; // Int32, nullable
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
    UserIDs : number[]; 
    FinancialPeriodIDs : number[]; 
    FirstName : string; 
    FullName : string; 
    EmailAddress : string; 
    OrderIDs : number[]; 
    OnlyAuditedDocuments : boolean; 
    Amount : EVA.Core.EventLedgerFiltersAmountFilter; 
  }
  
  export enum EventLogStatus {
    New = 0,
    InProgress = 1,
    Solved = 2,
    Incidental = 3,
    WontFix = 4,
  }
  
  export enum ExcludedFieldOptions {
    UseDefaultExcludes = 0,
    AdditionalExcludes = 1,
    ReplaceDefaultExcludes = 2,
    NoExcludes = 3,
  }
  
  export class EventLedgerDocumentExecutionContextDocument {
    Name : string; 
    UserAgent : string; 
    ID : string; 
    Version : string; 
  }
  
  export class ExpenseDto {
    ID : number; // Int32
    TypeID : number; // Int32
    TypeDescription : string; 
    TaxRate : number; // Decimal
    Amount : number; // Decimal
    Description : string; 
    CreationTime : string; // DateTime
  }
  
  export class ListCashExpensesItemExpenseType extends EVA.Framework.EnumDto {
    AmountType : EVA.Core.CashExpenseAmountTypes; 
  }
  
  export enum ExternalModificationStatuses {
    None = 0,
    CancellationRequested = 1,
    QuantityChangeRequested = 2,
    CancellationRequestDenied = 4,
    CancellationRequestApproved = 8,
    QuantityChangeRequestDenied = 16,
    QuantityChangeRequestApproved = 32,
  }
  
  export enum ExternalSystemExportTypes {
    Internal = 0,
    Order = 1,
    AdvanceShipmentNotification = 2,
    Administrative = 3,
    ReturnOrder = 4,
    MadeToOrder = 5,
  }
  
  export enum FactorType {
    Amount = 0,
    Percentage = 1,
  }
  
  export class OrganizationUnitSetDefinitionFilterDefinition {
    Values : string[]; 
    Negate : boolean; 
  }
  
  export enum FinancialEventProcessStatuses {
    Success = 0,
    SuccessWithWarnings = 1,
    Failure = 2,
  }
  
  export enum FinancialEventStatuses {
    Unprocessed = 0,
    Processed = 1,
    Ignored = 2,
    NoProcessingRequired = 3,
    NoMatchingRecipe = 4,
  }
  
  export enum FinancialEventSubTypes {
    SalesTaxDetail = 111,
    PurchaseTaxDetail = 211,
    CashExpense = 501,
    CashDifferenceCorrection = 502,
    CashDeposit = 503,
    CashMovementSource = 504,
    CashMovementDestination = 505,
  }
  
  export enum FinancialEventTypes {
    Sales = 10,
    SalesTax = 11,
    SalesDiscounts = 12,
    Purchase = 20,
    PurchaseTax = 21,
    PurchasePriceVariance = 22,
    PurchaseInvoiceDispute = 23,
    PurchaseInvoiceDisputeResolved = 24,
    PurchaseDiscounts = 25,
    CostOfGoods = 30,
    Payment = 40,
    PaymentEndRounding = 41,
    PaymentSettlement = 42,
    CashAdjustment = 50,
    StockMutation = 60,
    StockMutationAutomaticCorrection = 61,
    StockSold = 62,
    StockReceived = 63,
  }
  
  export class EventLedgerDocumentFinancialPeriodAuditDocument {
    ID : number; // Int32
  }
  
  export class FinancialPeriodAuditDto {
    ID : number; // Int32
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    StatusID : number; // Int32
    BlobID : string; 
    FiscalYear? : number; // Int32, nullable
    CreatedByID : number; // Int32
    CreatedByFirstName : string; 
    CreatedByLastName : string; 
    CreationTime : string; // DateTime
    Status : EVA.Core.FinancialPeriodAuditStatus; 
  }
  
  export enum FinancialPeriodAuditStatus {
    New = 0,
    Processing = 10,
    ProcessingError = 11,
    Processed = 12,
    Exporting = 20,
    ExportingError = 21,
    Exported = 22,
    NothingToBeExported = 999,
  }
  
  export class FinancialPeriodClosingImpediment {
    Type : string; 
    Description : string; 
    Data : any; 
  }
  
  export class FinancialPeriodDetailsDto {
    PreviousPeriodID? : number; // Int32, nullable
    OpeningTime? : string; // DateTime, nullable
    ClosingTime? : string; // DateTime, nullable
    Status : EVA.Core.FinancialPeriodStatus; 
    CurrencyID : string; 
    CashDeposits : EVA.Core.CashDepositDto[]; 
    CashJournals : EVA.Core.CashJournalDto[]; 
    Expenses : EVA.Core.ExpenseDto[]; 
    CashCorrections : EVA.Core.CashCorrectionDto[]; 
    PaymentTotalPerTypes : EVA.Core.PaymentTotalPerPaymentTypeDto[]; 
    Stations : EVA.Core.StationClosing[]; 
    AmountOfRoundingDifference : number; // Decimal
    AmountOfOpeningDifference : number; // Decimal
    AmountOfCashDifference : number; // Decimal
    CashDepositTotal : number; // Decimal
    TotalAmountOfExpenses : number; // Decimal
    TotalAmountOfCorrections : number; // Decimal
  }
  
  export class EventLedgerDocumentFinancialPeriodDocument {
    ID : number; // Int32
  }
  
  export class FinancialPeriodDto {
    ID : number; // Int32
    OpeningTime? : string; // DateTime, nullable
    ClosingTime? : string; // DateTime, nullable
    Status : EVA.Core.FinancialPeriodStatus; 
    OrganizationUnitID : number; // Int32
    UserID? : number; // Int32, nullable
    CurrencyID : string; 
    CostPriceCurrencyID : string; 
  }
  
  export enum FinancialPeriodExportTrigger {
    PeriodOpened = 0,
    PeriodClosed = 1,
    CashJournalOpened = 2,
    CashJournalClosed = 3,
    CashDeposit = 4,
    CashExpense = 5,
    CashMovement = 6,
    Difference = 7,
  }
  
  export enum FinancialPeriodStatus {
    Open = 0,
    Closing = 1,
    Closed = 2,
    Processed = 3,
    Pending = -1,
  }
  
  export class EventLedgerDocumentFinancialReportingPeriodDocument {
    ID : number; // Int32
    Type : EVA.Core.FinancialReportingPeriodTypes; 
    StartDate : string; // DateTime
    EndDate : string; // DateTime
  }
  
  export enum FinancialReportingPeriodStatuses {
    New = 0,
    Closed = 1,
    Processing = 2,
    Processed = 3,
  }
  
  export enum FinancialReportingPeriodTypes {
    Month = 0,
    FiscalYear = 1,
  }
  
  export enum FraudDataType {
    Address = 1,
    IBAN = 2,
    IdentificationDocument = 3,
  }
  
  export class GeneralLedgerDto {
    ID : number; // Int32
    OrganizationUnitID : number; // Int32
    OrganizationUnit : EVA.Core.OrganizationUnitDto; 
    Amount : number; // Decimal
    Remark : string; 
    PaymentTransactionID? : number; // Int32, nullable
    PaymentTransaction : EVA.Core.PaymentTransactionDto; 
    CreationTime : string; // DateTime
    OrderID? : number; // Int32, nullable
    AccountName : string; 
    AccountObjectAccount : string; 
    AccountingID : number; // Int32
    StockMutationID? : number; // Int32, nullable
    StockMutation : EVA.Core.StockMutationDto; 
    CurrencyID : string; 
  }
  
  export enum GeocodeResultStatus {
    OK = 0,
    NoResults = 1,
    InvalidRequest = 2,
    UnknownError = 3,
  }
  
  export class AddressSuggestionDetailsGeometryDetails {
    Location : EVA.Core.GeometryLocation; 
  }
  
  export class GeometryLocation {
    Latitude : number; // Double
    Longitude : number; // Double
  }
  
  export enum GetAvailabilityTypes {
    None = 0,
    Pickup = 1,
    Delivery = 2,
  }
  
  export class GetShipmentDetailsOrder {
    OrderID : number; // Int32
    BackendID : string; 
    CustomerReference : string; 
  }
  
  export enum GiftCardHandlerOptions {
    None = 0,
    Issue = 1,
    Activate = 2,
    Cancel = 4,
    Get = 8,
    Purchase = 16,
    Refund = 32,
  }
  
  export enum GrandTotalsAuditTrailTypes {
    Invoice = 0,
    FinancialPeriod = 1,
    Month = 2,
    FiscalYear = 3,
    Terminal = 4,
  }
  
  export enum IdentificationTypes {
    DiplomaticPassport = 1,
    DriverLicense = 2,
    EuropeanIdentification = 3,
    ForeignPassport = 4,
    INDSticker = 5,
    NatoPassport = 6,
    Passport = 7,
    PermanentResidencyDocument = 8,
    PrivilegedDocument = 9,
    ResidencePermitTypeEuEea = 10,
    ResidencePermitTypeI = 11,
    ResidencePermitTypeII = 12,
    ResidencePermitTypeIII = 13,
    ResidencePermitTypeIV = 14,
    ResidencePermitTypeW = 15,
    VNGCard = 16,
    ResidencePermitTypeV = 17,
  }
  
  export class SearchStockMutationResultIdNameValue {
    ID : number; // Int32
    Name : string; 
  }
  
  export interface ILoginRequest {
    Username : string; 
    Password : string; 
    IdentificationCode : string; 
    OrganizationUnitID? : number; // Int32, nullable
    ApplicationID? : number; // Int32, nullable
  }
  
  export class InTransit {
    QuantityOrdered : number; // Int32
    BackendID : string; 
    TrackingCode : string; 
    ID : string; 
    ExpectedDeliveryDate? : string; // DateTime, nullable
  }
  
  export enum InvalidStockMutationReasons {
    DestinationLabelEqualsSourceLabel = 0,
    InvalidSourceLabel = 1,
    InvalidDestinationLabel = 2,
    InvalidQuantity = 3,
    InvalidLabelForAdjustment = 4,
    RemarkRequired = 5,
    ReasonRequired = 6,
    NonStockProduct = 7,
    InvalidProduct = 8,
    InvalidResourceID = 9,
    InvalidOrganizationUnitID = 10,
    TypeRequired = 11,
    SupplierProduct = 12,
  }
  
  export class InvoiceAdditionalAmountDto {
    ID : number; // Int32
    Type : number; // Int32
    OriginalAmount : number; // Decimal
    Amount : number; // Decimal
    OriginalAmountInTax : number; // Decimal
    AmountInTax : number; // Decimal
    TaxRate : number; // Decimal
    TaxCodeID : number; // Int32
    Disputes : EVA.Core.InvoiceDisputeDto[]; 
  }
  
  export class InvoiceBlobDto {
    BlobID : string; 
  }
  
  export class InvoiceBookStatusDto {
    IsBooked : boolean; 
    CanBeBooked : boolean; 
    Message : string; 
  }
  
  export enum InvoiceCalculationMethod {
    InTax = 0,
    ExTax = 1,
  }
  
  export class InvoiceDetailLineDto {
    ID : number; // Int32
    OrderLine : EVA.Core.InvoiceDetailsOrderLineDto; 
    ShipmentLine : EVA.Core.InvoiceDetailsShipmentLineDto; 
    InvoiceDate? : string; // DateTime, nullable
    UnitCost? : number; // Decimal, nullable
    UnitPrice : number; // Decimal
    TaxRate : number; // Decimal
    DiscountAmount : number; // Decimal
    Disputes : EVA.Core.InvoiceDisputeDto[]; 
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
    TotalAmountInvoicedInTax : number; // Decimal
    TotalAmountInvoiced : number; // Decimal
    ExpectedUnitPrice? : number; // Decimal, nullable
    ExpectedQuantity? : number; // Int32, nullable
    ExpectedDiscountAmount? : number; // Decimal, nullable
    ExpectedTaxRate? : number; // Decimal, nullable
    ExpectedTotalAmount? : number; // Decimal, nullable
    ExpectedTotalAmountInTax? : number; // Decimal, nullable
    // The amount that has to be resolved with disputes: ExpectedTotalAmountInTax - TotalAmountInTax - Disputes
    AmountToBeDisputed? : number; // Decimal, nullable
    Quantity : number; // Int32
  }
  
  export class InvoiceDto {
    ID : number; // Int32
    OrganizationUnitID : number; // Int32
    PaymentTermStartDate? : string; // DateTime, nullable
    PaymentTermDueDate? : string; // DateTime, nullable
    Type : EVA.Core.InvoiceTypes; 
    InvoiceDate? : string; // DateTime, nullable
    InvoiceNumber : string; 
    Description : string; 
    Status : EVA.Core.InvoiceStatuses; 
    SupplierOrganizationUnitID? : number; // Int32, nullable
    TotalAmount : number; // Decimal
    CurrencyID : string; 
    HoldStatusID? : number; // Int32, nullable
    // The TotalAmount on the actual Invoice as provided by the Supplier
    OriginalTotalAmount? : number; // Decimal, nullable
    // The difference between the TotalAmount and the OriginalTotalAmount
    OriginalTotalAmountDifference? : number; // Decimal, nullable
    // The ExpectedTotalAmountInTax of all the InvoiceLines + AdditionalAmounts + ExpectedDisputes
    ExpectedTotalAmount? : number; // Decimal, nullable
    // The difference between the TotalAmount and the ExpectedTotalAmount
    ExpectedTotalAmountDifference? : number; // Decimal, nullable
    TaxReverseCharge : boolean; 
  }
  
  export class InvoiceDetailsDto extends EVA.Core.InvoiceDto {
    OrganizationUnitLanguageID : string; 
    OrganizationUnitCountryID : string; 
    AdditionalAmounts : EVA.Core.InvoiceAdditionalAmountDto[]; 
    Disputes : EVA.Core.InvoiceDisputeDto[]; 
    Lines : EVA.Core.InvoiceDetailLineDto[]; 
    Blobs : EVA.Core.InvoiceBlobDto[]; 
    PaidAmount? : number; // Decimal, nullable
    OpenAmount? : number; // Decimal, nullable
    BookStatus : EVA.Core.InvoiceBookStatusDto; 
    Shipments : EVA.Core.InvoiceShipment[]; 
    // The ExpectedQuantity of all the InvoiceLines summed
    ExpectedTotalQuantity? : number; // Int32, nullable
    // The Quantity of all the InvoiceLines summed
    TotalQuantity : number; // Int32
    // The difference between TotalQuantity and ExpectedTotalQuantity
    TotalQuantityDifference? : number; // Int32, nullable
    // The TotalAmount of the invoice minus the OriginalDisputes
    SubTotalAmount : number; // Decimal
    // The ExpectedTotalAmount of the invoice minus the Disputes
    ExpectedSubTotalAmount? : number; // Decimal, nullable
    // The Amount of the Disputes summed by Type
    DisputeAmounts : EVA.Core.DisputeAmounts; 
    // The TotalAmountInvoicedInTax of all the InvoiceLines summed
    TotalLineAmountInvoicedInTax : number; // Decimal
  }
  
  export class InvoiceDetailsOrderLineDto {
    Description : string; 
    UnitCost : number; // Decimal
    UnitPrice : number; // Decimal
    ID : number; // Int32
    OrderID : number; // Int32
    ProductID? : number; // Int32, nullable
    ProductCustomID : string; 
    SupplierProductBackendID : string; 
  }
  
  export class InvoiceDetailsShipmentDto {
    ID : number; // Int32
    BackendID : string; 
  }
  
  export class InvoiceDetailsShipmentLineDto {
    ID : number; // Int32
    QuantityDelivered : number; // Int32
    TotalAmountDelivered : number; // Decimal
    Shipment : EVA.Core.InvoiceDetailsShipmentDto; 
  }
  
  export class InvoiceDisputeDto {
    ID : number; // Int32
    ReasonID : number; // Int32
    ReasonName : string; 
    Amount : number; // Decimal
    Description : string; 
    Type? : EVA.Core.InvoiceDisputeTypes; 
    IsResolved : boolean; 
    ResolvedAmount : number; // Decimal
    ResolveActions : EVA.Core.InvoiceDisputeResolveActionDto[]; 
  }
  
  export class InvoiceDisputeResolveActionDto {
    ID : number; // Int32
    Amount : number; // Decimal
    Description : string; 
    LedgerClassID : string; 
  }
  
  export enum InvoiceDisputeTypes {
    Original = 0,
    Expected = 1,
  }
  
  export class EventLedgerDocumentInvoiceDocument {
    ID : number; // Int32
    InvoiceNumber : string; 
    FiscalID : string; 
    TotalAmount : number; // Decimal
  }
  
  export enum InvoiceDocumentLedgerFormats {
    Receipt = 0,
    Invoice = 1,
  }
  
  export enum InvoiceDocumentLedgerTypes {
    Physical = 0,
    Digital = 1,
  }
  
  export enum InvoiceExportStatus {
    NotExported = 0,
    Exported = 10,
  }
  
  export enum InvoiceLineTypes {
    Default = 0,
    Discount = 1,
    Return = 2,
  }
  
  export class InvoiceShipment {
    ShipmentID : number; // Int32
    ShipmentBackendID : string; 
    LastDeliveryDate? : string; // DateTime, nullable
    CompletionTime? : string; // DateTime, nullable
    TotalAmount : number; // Decimal
    ExpectedTotalAmount? : number; // Decimal, nullable
    TotalQuantity : number; // Decimal
    ExpectedTotalQuantity? : number; // Decimal, nullable
  }
  
  export enum InvoiceStatuses {
    Open = 0,
    Closed = 1,
  }
  
  export enum InvoiceTrigger {
    None = 0,
    AfterFirstShipment = 1,
    AfterLastShipment = 2,
    EveryShipment = 3,
    AfterFullyPaid = 4,
  }
  
  export enum InvoiceTypes {
    Sales = 0,
    Purchase = 1,
  }
  
  export interface IUserTaskResult {
    Name : string; 
    Description : string; 
    Type : string; 
    Value : string; 
    Data : string; 
  }
  
  export enum LegacyCashJournalTypes {
    Register = 0,
    Safe = 1,
  }
  
  export enum LegalForms {
    None = 0,
    BV = 1,
    NV = 2,
    VoF = 3,
    Eenmanszaak = 4,
    Stichting = 5,
    VrijBeroep = 6,
    Vereniging = 7,
    CV = 8,
    Maatschap = 9,
    Anders = 10,
  }
  
  export enum LineActionTypeChangeInitiator {
    System = 1,
    User = 2,
  }
  
  export enum LineActionTypes {
    None = 0,
    ReserveLine = 1,
    OrderLine = 2,
    ShipLine = 3,
    Delivery = 4,
  }
  
  export enum LineSize {
    Regular = 0,
    Double = 1,
    Half = 2,
  }
  
  export class ListAccountsFilter {
    Name : string; 
    ObjectAccount : string; 
  }
  
  export class ListAccountsItem {
    ID : number; // Int32
    Name : string; 
    ObjectAccount : string; 
    Subsidiary : string; 
    VisibleByApplicationID : number; // Int32
    BookingsFlagsID : number; // Int32
    BookingFlags : EVA.Core.BookingFlags; 
  }
  
  export class ListAddressBookFilter {
    ID? : number; // Int32, nullable
    DefaultShippingAddress? : boolean; 
    DefaultBillingAddress? : boolean; 
    AddressID? : number; // Int32, nullable
    UserID? : number; // Int32, nullable
    Description : string; 
  }
  
  export class ListAssortmentProductsFilter {
    ProductID? : number; // Int32, nullable
    TypeID? : number; // Int32, nullable
    AssortmentID? : number; // Int32, nullable
    IncludeDeleted? : boolean; 
  }
  
  export class ListAuditsFilter {
    OrganizationUnitID? : number; // Int32, nullable
    FiscalYear? : number; // Int32, nullable
  }
  
  export class ListCarriersFilter {
    Name : string; 
  }
  
  export class ListCashDepositsFilter {
    DeviceID? : number; // Int32, nullable
    FinancialPeriodID? : number; // Int32, nullable
  }
  
  export class ListCashDepositsItem {
    ID : number; // Int32
    DeviceID : number; // Int32
    Type : EVA.Core.CashJournalTypes; 
    CurrencyID : string; 
    PaymentTypeID : number; // Int32
    PaymentTypeName : string; 
    Amount : number; // Decimal
    Number : string; 
    Coins : { [ key : number ] : number }; 
    BankNotes : { [ key : number ] : number }; 
    CreationTime : string; // DateTime
  }
  
  export class ListCashExpensesFilter {
    DeviceID? : number; // Int32, nullable
    FinancialPeriodID? : number; // Int32, nullable
  }
  
  export class ListCashExpensesItem {
    ID : number; // Int32
    Amount : number; // Decimal
    TaxCode : EVA.Framework.EnumDto; 
    Type : EVA.Core.ListCashExpensesItemExpenseType; 
    Description : string; 
    BlobID : string; 
    CreationTime : string; // DateTime
  }
  
  export class ListCashHandlersFilter {
    Name : string; 
    CurrencyID : string; 
  }
  
  export class ListCashTransactionLedgerFilter {
    Types : EVA.Core.CashTransactionLedgerTypes[]; 
    CurrencyID? : string; // DateTime, nullable
    DeviceID? : number; // Int32, nullable
    CashJournalID? : number; // Int32, nullable
    FinancialPeriodID? : number; // Int32, nullable
    PaymentTypeID? : number; // Int32, nullable
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
  }
  
  export class ListCashTransactionLedgerGroup {
    ID : string; 
    Items : EVA.Core.ListCashTransactionLedgerItem[]; 
  }
  
  export class ListCashTransactionLedgerItem {
    ID : number; // Int32
    Amount : number; // Decimal
    DeviceName : string; 
    DeviceTypeID : number; // Int32
    StationName : string; 
    Description : string; 
    Type : EVA.Core.CashTransactionLedgerTypes; 
    CreationTime : string; // DateTime
    GroupID : string; 
    CurrencyID : string; 
    PaymentTypeID : number; // Int32
    PaymentTypeName : string; 
    Details : string; 
    Coins : { [ key : number ] : number }; 
    BankNotes : { [ key : number ] : number }; 
  }
  
  export class ListCumulativeStockFilter {
    ProductIDs : number[]; 
    OrganizationUnitType : EVA.Framework.OrganizationUnitTypes; 
    OrganizationUnitName : string; 
    HasStock? : boolean; 
  }
  
  export class ListDevicesFilter {
    BackendID : string; 
    OrganizationUnitID? : number; // Int32, nullable
    StationID? : number; // Int32, nullable
    TypeID? : number; // Int32, nullable
    Name : string; 
    IpAddress : string; 
    NetworkName : string; 
    EcrID : string; 
    HardwareID : string; 
    ProxyID : string; 
    // Obsolete, combine the types in the TypeID property
    TypeIDs : number[]; 
  }
  
  export class ListDevicesModel {
    ID : number; // Int32
    BackendID : string; 
    Name : string; 
    Type : EVA.Framework.FlagsEnumDto; 
    TypeID : number; // Int32
    NetworkName : string; 
    IpAddress : string; 
    Station : EVA.Core.ListDevicesModelStationModel; 
    StationID? : number; // Int32, nullable
    AssemblyName : string; 
    EcrID : string; 
    HardwareID : string; 
    ProxyID : string; 
    OrganizationUnitID? : number; // Int32, nullable
    OrganizationUnit : EVA.Core.ListDevicesModelOrganizationUnitModel; 
    CashLimit : number; // Decimal
  }
  
  export class ListDiscountLayerFilter {
    Name : string; 
    IsExclusive? : boolean; 
  }
  
  export class ListEntityTranslation {
    EntityID : number; // Int32
    EntityType : string; 
    EntityField : string; 
    LanguageID : string; 
    CountryID : string; 
    Value : string; 
  }
  
  export class ListEntityTranslationsFilter {
    EntityID? : number; // Int32, nullable
    EntityType : string; 
    EntityField : string; 
    LanguageID : string; 
    CountryID : string; 
    Value : string; 
  }
  
  export class ListExchangeRatesFilter {
    FromCurrencyID : string; 
    ToCurrencyID : string; 
  }
  
  export class ListFinancialEventRow {
    ID : number; // Int32
    FinancialPeriodID : number; // Int32
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    Type : EVA.Core.FinancialEventTypes; 
    TypeID : number; // Int32
    CurrencyID : string; 
    Amount : number; // Decimal
    Remark : string; 
    StatusID : number; // Int32
    Status : EVA.Core.FinancialEventStatuses; 
    OrderID? : number; // Int32, nullable
    ProcessingError : string; 
  }
  
  export class ListFinancialEventsFilter {
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
    Type : EVA.Core.FinancialEventTypes; 
    Status : EVA.Core.FinancialEventStatuses; 
    OrderID? : number; // Int32, nullable
    StatusID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    FinancialPeriodID? : number; // Int32, nullable
  }
  
  export class ListGeneralLedgersFilter {
    OrganizationUnitID? : number; // Int32, nullable
    AccountID? : number; // Int32, nullable
    IsProcessed? : boolean; 
    FinancialPeriodID? : number; // Int32, nullable
    OrderID? : number; // Int32, nullable
    InvoiceID? : number; // Int32, nullable
    CreationTime? : string; // DateTime, nullable
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
    ObjectAccount : string; 
  }
  
  export class ListInvoiceFilter {
    Type : EVA.Core.InvoiceTypes; 
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
    Number : string; 
    OrganizationUnitID? : number; // Int32, nullable
    SupplierOrganizationUnitID? : number; // Int32, nullable
    Status : EVA.Core.InvoiceStatuses; 
    OrderIDs : number[]; 
    HasUnresolvedDisputes? : boolean; 
    IsMatched? : boolean; 
  }
  
  export class ListInvoiceLedgerFilter {
    InvoiceID? : number; // Int32, nullable
    InvoiceLineID? : number; // Int32, nullable
    InvoiceDisputeID? : number; // Int32, nullable
    Type? : number; // Int32, nullable
  }
  
  export class ListInvoicesDto {
    ID : number; // Int32
    InvoiceDate? : string; // DateTime, nullable
    InvoiceNumber : string; 
    OrganizationUnitID : string; 
    OrganizationUnitName : string; 
    SupplierOrganizationUnitID? : number; // Int32, nullable
    SupplierOrganizationUnitName : string; 
    Description : string; 
    CurrencyID : string; 
    TotalAmount? : number; // Decimal, nullable
    Status : EVA.Core.InvoiceStatuses; 
    StatusID : number; // Int32
    HoldStatusID? : number; // Int32, nullable
    HasUnresolvedDisputes : boolean; 
  }
  
  export class ListManualInputAdjustmentsFilter {
    PriceListAdjustmentID : number; // Int32
    ProductID? : number; // Int32, nullable
    IsActive? : boolean; 
  }
  
  export class ListMessageQueueErrorsFilter {
    Status : EVA.Core.MessageQueueErrorStatuses; 
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
    MessageTypeName : string; 
    MessageID : string; 
    ExceptionMessage : string; 
    ErrorCode : string; 
  }
  
  export class ListOrderLedgerFilter {
    TypeIDs : number[]; 
  }
  
  export class ListOrderLinesFilter {
    IDs : number[]; 
    Shippable : boolean; 
    Invoiceable : boolean; 
    OnlyShippableLines : boolean; 
    ProductTypes : EVA.Core.ProductTypes; 
    Query : string; 
  }
  
  export class ListOrdersForCustomerFilter {
    ID? : number; // Int32, nullable
    OrderID? : number; // Int32, nullable
    OpenOrdersOnly : boolean; 
    ShowOrdersWithoutLines : boolean; 
    ModifiableOrdersOnly : boolean; 
    Type : EVA.Core.OrderTypes[]; 
    Status : EVA.Core.OrderStatus[]; 
  }
  
  export class ListOrganizationUnitGroupsFilter {
    Name : string; 
    BackendID : string; 
  }
  
  export class ListOrganizationUnitSetsFilter {
    Name : string; 
    ID? : number; // Int32, nullable
    Types : EVA.Core.OrganizationUnitSetTypes[]; 
    OrganizationUnitID? : number; // Int32, nullable
    IncludedOrganizationUnitTypes : EVA.Framework.OrganizationUnitTypes; 
    ExcludedOrganizationUnitTypes : EVA.Framework.OrganizationUnitTypes; 
    ScopeID? : number; // Int32, nullable
    IncludeWithoutScopeID? : boolean; 
  }
  
  export class ListOrganizationUnitSetsItem {
    ID : number; // Int32
    Name : string; 
    Type : EVA.Core.OrganizationUnitSetTypes; 
    OrganizationUnitCount : number; // Int32
    ScopeID? : number; // Int32, nullable
    ScopeName : string; 
  }
  
  export class ListOrganizationUnitsFilter {
    IDs : number[]; 
    Name : string; 
    BackendIDs : string[]; 
    CountryIDs : string[]; 
    TypeID? : number; // Int32, nullable
    StatusID? : number; // Int32, nullable
    ParentID? : number; // Int32, nullable
  }
  
  export class ListOrganizationUnitSuppliersFilter {
    OrganizationUnitID? : number; // Int32, nullable
    SupplierOrganizationUnitID? : number; // Int32, nullable
    Type : EVA.Core.OrganizationUnitSupplierTypes; 
  }
  
  export class ListOrganizationUnitSuppliersModel {
    ID : number; // Int32
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    SupplierOrganizationUnitID : number; // Int32
    SupplierOrganizationUnitName : string; 
    Type : EVA.Core.OrganizationUnitSupplierTypes; 
  }
  
  export class ListPriceListAdjustmentsFilter {
    PriceListID? : number; // Int32, nullable
    ParentID? : number; // Int32, nullable
    Type : string; 
  }
  
  export class ListPriceListOrganizationUnitsFilter {
    PriceListID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    PriceListUsageTypeID? : number; // Int32, nullable
  }
  
  export class ListPriceListsFilter {
    Name : string; 
    CurrencyID : string; 
    IncludingVat? : boolean; 
    IsActive? : boolean; 
    IsSpecialPricesPriceList? : boolean; 
    SpecialPricesPriceListID? : number; // Int32, nullable
  }
  
  export class ListProductBarcodesFilter {
    ProductID? : number; // Int32, nullable
    Barcode : string; 
    UnitOfMeasureID? : number; // Int32, nullable
    IsSupplierProduct? : boolean; 
    Origin : EVA.Core.ProductBarcodeOrigin; 
  }
  
  export class ListProductBundlesFilter {
    BundleProductID? : number; // Int32, nullable
    BundleProductIDs : number[]; 
  }
  
  export class ListProductGiftCardsFilter {
    ProductID : number; // Int32
    Type : string; 
  }
  
  export class ListProductPriceLedgerFilter {
    ProductIDs : number[]; 
    PriceListID? : number; // Int32, nullable
    PriceListUsageTypeID? : number; // Int32, nullable
    OrganizationUnitIDs : number[]; 
    FromDate? : string; // DateTime, nullable
  }
  
  export class ListProductUnitOfMeasuresFilter {
    ProductID? : number; // Int32, nullable
    UnitOfMeasureID? : number; // Int32, nullable
    Quantity? : number; // Int32, nullable
  }
  
  export class ListPurchaseOrderShipmentsFilter {
    ShipmentID? : number; // Int32, nullable
    OrderID? : number; // Int32, nullable
    OrderBackendID : string; 
    OrganizationUnitID? : number; // Int32, nullable
    IncludeChildOrganizationUnits : boolean; 
    BackendID : string; 
    TrackingCode : string; 
    IsCompleted? : boolean; 
    StatusID? : number; // Int32, nullable
    StatusIDs : number[]; 
  }
  
  export class ListSettlementsFilter {
    PaymentTransactionID? : number; // Int32, nullable
    Type? : number; // Int32, nullable
  }
  
  export class ListShipmentLinesFilter {
    ShipmentID? : number; // Int32, nullable
    ProductIDs : number[]; 
    OrderIDs : number[]; 
    OrderLineIDs : number[]; 
  }
  
  export class ListShipmentLinesToInvoiceFilter {
    ShipmentID : number; // Int32
    ProductIDs : number[]; 
  }
  
  export class ListShipmentsToInvoiceFilter {
    ID? : number; // Int32, nullable
    ShipFromOrganizationUnitID : number; // Int32
    From? : string; // DateTime, nullable
    To? : string; // DateTime, nullable
    ProductID? : number; // Int32, nullable
    BackendID : string; 
    OrderID? : number; // Int32, nullable
    OrderBackendID : string; 
  }
  
  export class ListShippingMethodsFilter {
    CarrierID : number; // Int32
  }
  
  export class ListShippingRestrictionsFilter {
    OrganizationUnitSetID? : number; // Int32, nullable
    CountryID : string; 
    ProductPropertyTypeID : string; 
    Type : EVA.Core.ShippingRestrictionType; 
    ZipCodeFrom : string; 
    ZipCodeTo : string; 
  }
  
  export class ListStockAllocationRulesFilter {
    OrganizationUnitSupplierID? : number; // Int32, nullable
    SupplierOrganizationUnitID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
  }
  
  export class ListStockAllocationRulesItem {
    ID : number; // Int32
    SupplierOrganizationUnitID : number; // Int32
    SupplierOrganizationUnitName : string; 
    OrganizationUnitSupplierID : number; // Int32
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    ProductSearchTemplateID? : number; // Int32, nullable
    Value : number; // Int32
    ValueType : EVA.Core.StockAllocationRuleValueTypes; 
    RefillPeriodInDays? : number; // Int32, nullable
    LastRefill? : string; // DateTime, nullable
    Type : EVA.Core.StockAllocationRuleTypes; 
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
  }
  
  export class ListStockMutationsFilter {
    ProductID? : number; // Int32, nullable
    OrderID? : number; // Int32, nullable
    CreationTime? : string; // DateTime, nullable
    SourceStockLabelID? : number; // Int32, nullable
    DestinationStockLabelID? : number; // Int32, nullable
    ReasonID? : number; // Int32, nullable
    StartDateTime? : string; // DateTime, nullable
    EndDateTime? : string; // DateTime, nullable
    MutationQuantity? : number; // Int32, nullable
  }
  
  export class ListStringTranslation {
    Key : string; 
    LanguageID : string; 
    CountryID : string; 
    Value : string; 
  }
  
  export class ListStringTranslationsFilter {
    Key : string; 
    LanguageID : string; 
    CountryID : string; 
    Value : string; 
  }
  
  export class ListSupplierProductsFilter {
    SupplierOrganizationUnitID : number; // Int32
    BackendID : string; 
    PrimitiveName : string; 
  }
  
  export class ListSuspendedOrdersFilter {
    IsPaid? : boolean; 
    OrderID? : number; // Int32, nullable
    Description : string; 
  }
  
  export class ListTaxRateModelFilters {
    CountryID : string; 
    OnlyActive? : boolean; 
  }
  
  export class ListTransportationTimesFilter {
    ShippingMethodID? : number; // Int32, nullable
    FromCountryID : string; 
    ToCountryID : string; 
    TimeInDays? : number; // Int32, nullable
  }
  
  export class ListTransputJobsFilter {
    ShipmentID? : number; // Int32, nullable
    OrderID? : number; // Int32, nullable
    FinancialPeriodID? : number; // Int32, nullable
    InvoiceID? : number; // Int32, nullable
    Status : number[]; 
    Types : number[]; 
    Identifier : string; 
    Name : string; 
    StartTimeBefore? : string; // DateTime, nullable
    StartTimeOnOrAfter? : string; // DateTime, nullable
    EndTimeBefore? : string; // DateTime, nullable
    EndTimeOnOrAfter? : string; // DateTime, nullable
    CreationTimeBefore? : string; // DateTime, nullable
    CreationTimeOnOrAfter? : string; // DateTime, nullable
    ShipFromOrganizationUnit? : number; // Int32, nullable
    ShipToOrganizationUnit? : number; // Int32, nullable
  }
  
  export class ListUserCardsFilter {
    Barcode : string; 
    TypeID? : number; // Int32, nullable
    UserID? : number; // Int32, nullable
    User : string; 
  }
  
  export class ListUserTaskTypeOrganizationUnitSetsFilter {
    UserTaskTypeID? : number; // Int32, nullable
    OrganizationUnitSetID? : number; // Int32, nullable
    Required? : boolean; 
  }
  
  export class UserDto {
    ID : number; // Int32
    BackendRelationID : string; 
    EmailAddress : string; 
    Initials : string; 
    FirstName : string; 
    LastName : string; 
    FullName : string; 
    DateOfBirth? : string; // DateTime, nullable
    PlaceOfBirth : string; 
    Gender : string; 
    ShippingAddressID? : number; // Int32, nullable
    ShippingAddress : EVA.Core.AddressDto; 
    BillingAddressID? : number; // Int32, nullable
    BillingAddress : EVA.Core.AddressDto; 
    Type : EVA.Framework.UserTypes; 
    LanguageID : string; 
    CountryID : string; 
    IsDeleted : boolean; 
    IsIncognito : boolean; 
    Nickname : string; 
    Company : EVA.Core.CompanyDto; 
    BankAccount : string; 
    IsDebtor : boolean; 
    PhoneNumber : string; 
    GravatarHash : string; 
    Data : { [ key : string ] : string }; 
    TimeZone : string; 
    FiscalID : string; 
    SocialSecurityNumber : string; 
    IdentificationPin : EVA.Core.UserIdentificationPin; 
  }
  
  export class LoggedInUserDto extends EVA.Core.UserDto {
    OrganizationUnitIDs : number[]; 
    CurrentOrganizationID? : number; // Int32, nullable
    CurrentOrganizationName : string; 
    CurrentApplicationID : number; // Int32
    CurrentCurrencyID : string; 
    AuthenticationToken : string; 
    Functionalities : string[]; 
    ScopedFunctionalities : { [ key : string ] : EVA.Framework.FunctionalityScope }; 
    CurrentOrganizationUnitType : EVA.Framework.OrganizationUnitTypes; 
    CurrentCountryID : string; 
    CurrentLanguageID : string; 
  }
  
  export enum MessageQueueErrorStatuses {
    New = 0,
    Republished = 1,
    SuccessAfterRetry = 2,
    FailureAfterRetry = 3,
    Ignored = 4,
  }
  
  export enum MessageQueueProfile {
    SendOnly = 0,
    SendAndReceive = 1,
  }
  
  export enum MessageTargetContentTypes {
    Html = 0,
    Pdf = 1,
    Plain = 2,
    Png = 3,
  }
  
  export enum MessageTemplateDestinations {
    Mail = 1,
    Sms = 2,
    Pdf = 4,
    Thermal = 8,
    Notification = 16,
  }
  
  export class EventLedgerDocumentMessageTemplateDocument {
    ID : number; // Int32
    Name : string; 
    OrganizationUnitID? : number; // Int32, nullable
    LanguageID : string; 
    CountryID : string; 
    DestinationID : number; // Int32
  }
  
  export enum MessageTemplateTypes {
    Template = 1,
    Partial = 2,
    Layout = 3,
  }
  
  export enum MessageTypeKinds {
    Request = 0,
    Response = 1,
  }
  
  export class EventLedgerDocumentTerminalReportDocumentPaymentMetadata {
    ID : number; // Int32
    Name : string; 
    Code : string; 
  }
  
  export enum ModificiationReason {
    Addresses = 1,
    ShippingMethod = 2,
  }
  
  export enum MomentOfCommitment {
    None = 0,
    CreateOrderLine = 1,
    CreatePayment = 2,
    PlaceOrder = 3,
    ExportOrder = 4,
    Custom = 1000,
  }
  
  export enum MultipleSuppliersHandling {
    Cheapest = 0,
    MostExpensive = 1,
  }
  
  export enum OpenCashDrawerResults {
    Failure = 0,
    Opened = 1,
    AlreadyOpen = 2,
    OpenedAndClosed = 3,
  }
  
  export class OpeningHoursDataDto {
    OrganizationUnitID : number; // Int32
    DayOfWeek? : System.Private.CoreLib.DayOfWeek; 
    ClosedForReceipts : boolean; 
    StartTime? : any; // TimeSpan, nullable
    EndTime? : any; // TimeSpan, nullable
    Date? : string; // DateTime, nullable
    Description : string; 
    IsSpecial : boolean; 
    IsClosed : boolean; 
  }
  
  export class OpeningHoursDto extends EVA.Core.OpeningHoursDataDto {
    ID : number; // Int32
  }
  
  export enum OpeningStatuses {
    Open = 0,
    OpensLater = 1,
    ClosesBefore = 2,
    Closed = 3,
  }
  
  export class OpenOrderAmount {
    // Obsolete: use InTax
    Amount : number; // Decimal
    // Obsolete
    Foreign : number; // Decimal
    InTax : number; // Decimal
    // Obsolete
    ForeignInTax : number; // Decimal
    PendingInTax : number; // Decimal
  }
  
  export class OrderAmounts {
    Total : EVA.Core.OrderAmount; 
    UnroundedTotal : EVA.Core.OrderAmount; 
    Paid : EVA.Core.PaidOrderAmount; 
    Taxes : EVA.Core.TaxAmount[]; 
    Types : { [ OrderLineTypes : number ] : EVA.Core.OrderAmount }; 
  }
  
  export class OpenOrderAmounts extends EVA.Core.OrderAmounts {
    Open : EVA.Core.OpenOrderAmount; 
    OpenAmountIsZero : boolean; 
  }
  
  export enum OperationTypes {
    Sales = 0,
    Return = 1,
    Archiving = 2,
  }
  
  export enum OptionalTypes {
    NotOptional = 0,
    PropertyOptional = 1,
    PropertyAndChildrenOptional = 2,
  }
  
  export class OrderAmount {
    Amount : number; // Decimal
    // Obsolete
    Foreign : number; // Decimal
    InTax : number; // Decimal
    // Obsolete
    ForeignInTax : number; // Decimal
  }
  
  export enum OrderBlobTypes {
    None = 0,
    Invoice = 1,
    InvoiceThermal = 2,
    ReturnLabel = 3,
    ReturnForm = 4,
    ShipmentLabel = 5,
    Identification = 6,
    PackingSlip = 7,
    PickSlip = 8,
  }
  
  export enum OrderCancellationOptions {
    CanBeCancelled = 0,
    AlreadyCancelled = 1,
    ShouldBeRequested = 2,
    MustBeRequested = 3,
    CannotBeCancelled = 4,
  }
  
  export enum OrderChangeTypes {
    OrderLineCreated = 1,
    CustomerAttachedToOrder = 2,
    CustomerDetachedFromOrder = 4,
    ShippingAddressChanged = 8,
    LineActionTypeChanged = 16,
  }
  
  export enum OrderCharacteristics {
    None = 0,
    IsPickup = 1,
    CreatedByEmployee = 2,
    IsInterbranch = 4,
    IsB2B = 8,
    Duplicated = 16,
    Autocompleted = 32,
    CreatedFromWishList = 64,
    ReturnToSupplier = 128,
    CustomTaxesApplied = 256,
  }
  
  export class EventLedgerDocumentOrderDocument {
    ID : number; // Int32
    Customer : EVA.Core.EventLedgerDocumentOrderDocumentCustomerDocument; 
    HasReturns : boolean; 
    CurrencyID : string; 
    Type : EVA.Core.OrderTypes; 
    IsPaid : boolean; 
    IsCompleted : boolean; 
    IsShipped : boolean; 
    IsInvoiced : boolean; 
  }
  
  export class OrderDto {
    ID : number; // Int32
    BackendID : string; 
    Type : EVA.Core.OrderTypes; 
    CustomerID? : number; // Int32, nullable
    Customer : EVA.Core.UserDto; 
    CreatedByID : number; // Int32
    CreatedBy : EVA.Core.UserDto; 
    CreationTime : string; // DateTime
    Payments : EVA.Core.PaymentTransactionDto[]; 
    ShippingAddressID? : number; // Int32, nullable
    BillingAddressID? : number; // Int32, nullable
    ShippingAddress : EVA.Core.AddressDto; 
    BillingAddress : EVA.Core.AddressDto; 
    Lines : EVA.Core.OrderLineDto[]; 
    OfferExpirationDate? : string; // DateTime, nullable
    TotalAmountInTax : number; // Decimal
    TotalAmountInvoiced : number; // Decimal
    // Obsolete
    ForeignTotalAmountInTax : number; // Decimal
    TaxTable : EVA.Core.TaxAmount[]; 
    IsCompleted : boolean; 
    IsDelivered : boolean; 
    IsShipped : boolean; 
    IsPaid : boolean; 
    IsInvoiced : boolean; 
    IsPlaced : boolean; 
    Status : EVA.Core.OrderStatus; 
    HoldStatusID? : number; // Int32, nullable
    Remark : string; 
    CustomerOrderID : string; 
    CustomerReference : string; 
    TotalItems : number; // Int32
    NeedsExtendedCustomerInformation : boolean; 
    InvoiceDate? : string; // DateTime, nullable
    HasDelivery : boolean; 
    IdentificationID? : number; // Int32, nullable
    SessionID : string; 
    Characteristics : EVA.Core.OrderCharacteristics; 
    OriginatingOrganizationUnitID : number; // Int32
    // Obsolete: Use OriginatingOrganizationUnitID
    OrganizationUnitID : number; // Int32
    PickupOrganizationUnitID : number; // Int32
    SoldFromOrganizationUnitID : number; // Int32
    ShipFromOrganizationUnitID? : number; // Int32, nullable
    SoldToOrganizationUnitID? : number; // Int32, nullable
    ShipToOrganizationUnitID? : number; // Int32, nullable
    CurrencyID : string; 
    CustomStatusID? : number; // Int32, nullable
    PreferredPriceDisplayMode : EVA.Core.OrderPreferredPriceDisplayMode; 
    IsTaxExempt : boolean; 
    FiscalID : string; 
    VatNumber : string; 
    UserAgentApplication : string; 
    UserAgentVersion : string; 
    AllowPartialFulfillment : boolean; 
    PlacementDate? : string; // DateTime, nullable
    IgnoreDiscounts : boolean; 
    IgnoreShippingCosts : boolean; 
    IgnoreGiftWrappingCosts : boolean; 
    DisabledDiscounts : number[]; 
    IsConfirmed : boolean; 
  }
  
  export class PurchaseOrderShipmentDtoOrderDto {
    ID : number; // Int32
    BackendID : string; 
  }
  
  export enum OrderExportStatuses {
    NotExported = 0,
    ShouldBeExported = 1,
    Exporting = 2,
    Exported = 3,
    WillNotBeExported = 4,
  }
  
  export class OrderExportValidationResult {
    Result : EVA.Core.OrderExportValidationResults; 
    Messages : EVA.Core.OrderExportValidationResultMessage[]; 
  }
  
  export class OrderExportValidationResultMessage {
    Code : string; 
    Message : string; 
  }
  
  export enum OrderExportValidationResults {
    Unknown = 0,
    Valid = 1,
    Invalid = 2,
    NothingToBeExported = 3,
  }
  
  export enum OrderLineCancellationResultReasons {
    Cancelled = 0,
    CouldNoLongerCancel = 1,
    CancellationNotSupported = 2,
    OrderLineNotFoundInExternalSystem = 3,
    InProgress = 4,
  }
  
  export enum OrderLineCloneIntent {
    Split = 0,
    Derived = 1,
  }
  
  export enum OrderLineCommitmentResultTypes {
    NoCommitmentNecessary = 1,
    CommitmentStatusChanged = 2,
    InsuffientStock = 3,
  }
  
  export enum OrderLineCommitmentStatus {
    Uncommitted = 0,
    SoftCommit = 1,
    HardCommit = 2,
    ManualCommit = 5,
    ForcedCommit = 10,
  }
  
  export class EventLedgerDocumentOrderLineDocument {
    ID : number; // Int32
    Description : string; 
    ProductID? : number; // Int32, nullable
    TotalQuantityToShip : number; // Int32
    QuantityShipped : number; // Int32
    QuantityInvoiced : number; // Int32
    UnitPrice : number; // Decimal
    TaxRate : number; // Decimal
  }
  
  export class OrderLineDto {
    ID : number; // Int32
    OrderID : number; // Int32
    ParentID? : number; // Int32, nullable
    Type : EVA.Core.OrderLineTypes; 
    StockLabel : number; // Int32
    ResourceID? : number; // Int32, nullable
    Description : string; 
    AdditionalDescription : string; 
    QuantityOrdered : number; // Int32
    QuantityOpen : number; // Int32
    QuantityCommitted : number; // Int32
    CommitmentStatus? : EVA.Core.OrderLineCommitmentStatus; 
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    QuantityReserved : number; // Int32
    QuantityBackordered : number; // Int32
    QuantityReturned : number; // Int32
    QuantityCancelled : number; // Int32
    QuantityInvoiced : number; // Int32
    ProductID? : number; // Int32, nullable
    Product : EVA.Core.ProductDto; 
    UnitPrice : number; // Decimal
    TaxRate : number; // Decimal
    ShowTaxInfo : boolean; 
    SerialNumber : string; 
    UnitPriceInTax : number; // Decimal
    IsCancelled : boolean; 
    TotalQuantityToShip : number; // Int32
    TotalAmountInTax : number; // Decimal
    TotalAmount : number; // Decimal
    DisplayPriceInTax? : number; // Decimal, nullable
    DisplayPrice? : number; // Decimal, nullable
    CanModifyPrice : boolean; 
    ModificationAllowed : boolean; 
    Remark : string; 
    Reference : string; 
    LineActionType? : EVA.Core.LineActionTypes; 
    ReturnedOrderLineID? : number; // Int32, nullable
    ExportStatusID : number; // Int32
    ContractNumber : string; 
    IsCompleted : boolean; 
    IsShipped : boolean; 
    IsInvoiced : boolean; 
    ExpectedAvailabilityDate? : string; // DateTime, nullable
    RequestedDate? : string; // DateTime, nullable
    CreationTime : string; // DateTime
    CreatedByID : number; // Int32
    LastModificationTime? : string; // DateTime, nullable
    DiscountID? : number; // Int32, nullable
    DiscountCouponID? : number; // Int32, nullable
    DiscountAmount : number; // Decimal
    DiscountPercentage? : number; // Int32, nullable
    DiscountBackendID : string; 
    ShippingMethodID? : number; // Int32, nullable
    ShippingMethod : EVA.Core.ShippingMethodDto; 
    ExternalModificationStatus : EVA.Core.ExternalModificationStatuses; 
    CustomOrderLineType : string; 
    RelatedOrderLineID? : number; // Int32, nullable
    CurrencyID : string; 
    // Obsolete
    ExchangeRate : number; // Decimal
    // Obsolete
    ForeignUnitPrice : number; // Decimal
    // Obsolete
    ForeignUnitPriceInTax : number; // Decimal
    // Obsolete
    ForeignTotalAmount : number; // Decimal
    // Obsolete
    ForeignTotalAmountInTax : number; // Decimal
    ProductVariation : { [ key : string ] : string }; 
    ProductBundleLineID? : number; // Int32, nullable
    TaxExemptionCode : string; 
    TaxExemptionReason : string; 
    FulfillmentStatus? : EVA.Core.OrderLineFulfillmentStatus; 
    ReturnReason : EVA.Framework.EnumDto; 
  }
  
  export enum OrderLineFulfillmentStatus {
    Unknown = 0,
    Blocked = 5,
    CannotFulfill = 10,
    CannotFulfillOnTime = 12,
    CanFulfill = 15,
  }
  
  export enum OrderLinePlacementStatuses {
    None = 0,
    MadeToOrderRequested = 1,
    MadeToOrderCompleted = 2,
  }
  
  export class SearchStockMutationResultOrderLineResult {
    ID : number; // Int32
    OrderID : number; // Int32
  }
  
  export class OrderStatisticsOrderLineStatistics {
    UnitPrice : number; // Decimal
    UnitCost : number; // Decimal
    DiscountAmount : number; // Decimal
  }
  
  export enum OrderLineTypes {
    NormalProduct = 0,
    Discount = 1,
    ExtraCosts = 2,
    ShippingCosts = 5,
    ReturnCosts = 6,
    PriceCorrection = 7,
    Service = 8,
    GiftWrappingCosts = 9,
  }
  
  export class OrderLineWithQuantity {
    OrderLineID : number; // Int32
    Quantity? : number; // Int32, nullable
  }
  
  export enum OrderLineWithStockProcessAction {
    None = 0,
    CreateStockReservationTask = 1,
    Export = 2,
  }
  
  export enum OrderOptions {
    None = 0,
    IgnoreDiscounts = 1,
    IgnoreShippingCosts = 2,
    UseAlternateTaxCalculation = 4,
    IgnoreOrderLineValidation = 16,
    DoNotCommitStock = 64,
    DisableAutoReceiveShipment = 128,
    ApplyDiscountsBeforeSalesTax = 256,
    CalculateAmountsBasedOnExTax = 260,
    IgnoreGiftWrappingCosts = 512,
    DisableAutomaticLineCreation = 522,
    SystemGenerated = 570,
    Sentinel = 1024,
    DisableTaxCalculation = 2048,
    TaxExempt = 4096,
    AllowPartialFulfillment = 8192,
    CancelIfNotAvailable = 16384,
    Hidden = 32768,
    DisableChangeCascading = 65536,
  }
  
  export enum OrderPreferredPriceDisplayMode {
    InTax = 0,
    ExTax = 1,
  }
  
  export class OrderSearchDataFilterModel {
    StringValue : string; 
    BooleanValue? : boolean; 
    StartDateTime? : string; // DateTime, nullable
    EndDateTime? : string; // DateTime, nullable
    StartDecimal? : number; // Decimal, nullable
    EndDecimal? : number; // Decimal, nullable
  }
  
  export class OrderSearchFulfillmentStatusFilterModel {
    CanFulfill? : boolean; 
    IsBlocked? : boolean; 
  }
  
  export class OrderSearchResultItem {
    CreatedBy : EVA.Core.OrderSearchResultItemUser; 
    LastModifiedBy : EVA.Core.OrderSearchResultItemUser; 
    Customer : EVA.Core.OrderSearchResultItemCustomer; 
    OrganizationUnits : EVA.Core.OrderSearchResultItemOrganizationUnit[]; 
    SoldFromOrganizationUnit : EVA.Core.OrderSearchResultItemOrganizationUnit; 
    SoldToOrganizationUnit : EVA.Core.OrderSearchResultItemOrganizationUnit; 
    ShipFromOrganizationUnit : EVA.Core.OrderSearchResultItemOrganizationUnit; 
    ShipToOrganizationUnit : EVA.Core.OrderSearchResultItemOrganizationUnit; 
    OriginatingOrganizationUnit : EVA.Core.OrderSearchResultItemOrganizationUnit; 
    PickupOrganizationUnitID : EVA.Core.OrderSearchResultItemOrganizationUnit; 
    IsCompleted : boolean; 
    IsPaid : boolean; 
    IsPlaced : boolean; 
    IsConfirmed : boolean; 
    IsShipped : boolean; 
    IsReserved : boolean; 
    IsInvoiced : boolean; 
    HasShipLines? : boolean; 
    HasDeliveryLines? : boolean; 
    HasReserveLines? : boolean; 
    HasOrderLines? : boolean; 
    ID : number; // Int32
    BackendID : string; 
    TotalAmountInTax : number; // Decimal
    // Obsolete
    ForeignTotalAmountInTax : number; // Decimal
    TotalAmount : number; // Decimal
    // Obsolete
    ForeignTotalAmount : number; // Decimal
    PaidAmount : number; // Decimal
    ForeignPaidAmount : number; // Decimal
    OpenAmountInTax : number; // Decimal
    // Obsolete
    ForeignOpenAmountInTax : number; // Decimal
    OpenAmount : number; // Decimal
    // Obsolete
    ForeignOpenAmount : number; // Decimal
    LastModificationTime : string; // DateTime
    CreationTime : string; // DateTime
    CurrencyID : string; 
    Type : EVA.Core.OrderTypes; 
    Status : EVA.Core.OrderStatus; 
    CustomerReference : string; 
    HasReturns : boolean; 
    TotalQuantityToShip : number; // Int32
    TotalQuantityShipped : number; // Int32
    Properties : EVA.Core.OrderCharacteristics; 
    PropertiesIDs : number[]; 
    CustomStatus : number; // Int32
    CustomStatusIDs : number[]; 
    RequestedDate? : string; // DateTime, nullable
    ConfirmationDate? : string; // DateTime, nullable
    Data : EVA.Core.OrderSearchResultItemData[]; 
    IsEmpty : boolean; 
    UserAgentApplication : string; 
    UserAgentVersion : string; 
    ProductImage : string; 
  }
  
  export class OrderSearchResultItemUser {
    ID : number; // Int32
    FullName : string; 
  }
  
  export class OrderSearchResultItemCustomer extends EVA.Core.OrderSearchResultItemUser {
    EmailAddress : string; 
  }
  
  export class OrderSearchResultItemData {
    Name : string; 
    StringValue : string; 
    DecimalValue? : number; // Decimal, nullable
    BooleanValue? : boolean; 
    DateValue? : string; // DateTime, nullable
  }
  
  export class OrderSearchResultItemOrganizationUnit {
    ID : number; // Int32
    Name : string; 
  }
  
  export class OrderStatistics {
    GrossMargin : number; // Decimal
    OrderLines : { [ key : number ] : EVA.Core.OrderStatisticsOrderLineStatistics }; 
  }
  
  export enum OrderStatus {
    Cart = 0,
    Order = 1,
  }
  
  export enum OrderTypes {
    Sales = 0,
    Purchase = 1,
    WishList = 2,
  }
  
  export class OrderWithCustomerReferences {
    ID : number; // Int32
    CustomerReference : string; 
    CustomerOrderID : string; 
    CreationTime : string; // DateTime
  }
  
  export class OrganizationUnitCountryFilter {
    OrganizationUnitID : number; // Int32
    CountryID : string; 
    IncludeInheritedOrganizationUnits : boolean; 
  }
  
  export class OrganizationUnitCurrencyFilter {
    OrganizationUnitID : number; // Int32
    CurrencyID : string; 
    IncludeInheritedOrganizationUnits : boolean; 
  }
  
  export class EventLedgerDocumentOrganizationUnitDocument {
    ID : number; // Int32
    Name : string; 
    Type : EVA.Framework.OrganizationUnitTypes; 
  }
  
  export class OrganizationUnitDto {
    ID : number; // Int32
    BackendID : string; 
    ParentID? : number; // Int32, nullable
    VisibleByApplicationID : number; // Int32
    Name : string; 
    Description : string; 
    AddressID? : number; // Int32, nullable
    Address : EVA.Core.AddressDto; 
    EmailAddress : string; 
    PhoneNumber : string; 
    Type : EVA.Framework.OrganizationUnitTypes; 
    Status : EVA.Core.OrganizationUnitStatus; 
    OpeningHours : EVA.Core.OpeningHoursDto[]; 
    Latitude? : number; // Double, nullable
    Longitude? : number; // Double, nullable
    CountryID : string; 
    CurrencyID : string; 
    CostPriceCurrencyID : string; 
    Subnet : string; 
  }
  
  export class OrganizationUnitLanguageFilter {
    OrganizationUnitID : number; // Int32
    LanguageID : string; 
    IncludeInheritedOrganizationUnits : boolean; 
  }
  
  export class ListDevicesModelOrganizationUnitModel {
    ID : number; // Int32
    BackendID : string; 
    Name : string; 
  }
  
  export class OrganizationUnitSetDefinition {
    CountryFilter : EVA.Core.OrganizationUnitSetDefinitionFilterDefinition; 
    LanguageFilter : EVA.Core.OrganizationUnitSetDefinitionFilterDefinition; 
    TypeFilter : EVA.Framework.OrganizationUnitTypes; 
    IsEmpty : boolean; 
  }
  
  export enum OrganizationUnitSetOperatorTypes {
    Add = 0,
    Remove = 1,
  }
  
  export enum OrganizationUnitSetTypes {
    System = 0,
    Custom = 1,
    AdHoc = 2,
  }
  
  export enum OrganizationUnitStatus {
    Default = 0,
    Open = 1,
    Closed = 2,
    OpeningSoon = 4,
    TemporarilyClosed = 8,
    Sale = 16,
    Hidden = 32,
  }
  
  export enum OrganizationUnitSupplierTypes {
    Internal = 0,
    External = 1,
  }
  
  export class OrganizationUnitWithStock {
    ID : number; // Int32
    Name : string; 
    SellableStock : number; // Int32
  }
  
  export enum PackagingTypes {
    Unknown = 0,
    Collo = 1,
    Oversized = 2,
    Pallet = 3,
  }
  
  export class PaidOrderAmount {
    Pending : number; // Decimal
    Amount : number; // Decimal
  }
  
  export enum PaperFormats {
    A3 = 1,
    A4 = 2,
    A5 = 3,
    Legal = 4,
    Letter = 5,
    Tabloid = 6,
    Auto = 7,
    Ledger = 8,
    A0 = 9,
    A1 = 10,
    A2 = 11,
    A6 = 12,
  }
  
  export class PaperPropertiesPaperMargin {
    Top? : number; // Int32, nullable
    Left? : number; // Int32, nullable
    Bottom? : number; // Int32, nullable
    Right? : number; // Int32, nullable
  }
  
  export enum PaperOrientations {
    Portrait = 1,
    Landscape = 2,
  }
  
  export class PaperProperties {
    WaitForNetworkIdle : boolean; 
    Size : EVA.Core.PaperPropertiesPaperSize; 
    Format? : EVA.Core.PaperFormats; 
    Orientation? : EVA.Core.PaperOrientations; 
    Margin : EVA.Core.PaperPropertiesPaperMargin; 
    ThermalPrinterTemplateType? : EVA.Core.ThermalPrinterTemplateTypes; 
  }
  
  export class PaperPropertiesPaperSize {
    Width : string; 
    Height : string; 
    DeviceScaleFactor? : number; // Decimal, nullable
  }
  
  export class EventLedgerDocumentTerminalReportDocumentPayment {
    Type : EVA.Core.EventLedgerDocumentTerminalReportDocumentPaymentMetadata; 
    Amount : number; // Decimal
    Count : number; // Int32
  }
  
  export enum PaymentCashJournalMethod {
    None = 0,
    Close = 1,
    OpenAndClose = 2,
  }
  
  export enum PaymentLogType {
    EJournal = 0,
    Receipt = 1,
    CustomerReceipt = 2,
    MerchantReceipt = 3,
    JsonReceipt = 4,
  }
  
  export class PaymentMethodNotUsableError {
    Type : string; 
    Message : string; 
  }
  
  export class EventLedgerDocumentTerminalReportDocumentPaymentPerUser {
    UserID : number; // Int32
    EmployeeNumber : string; 
    Description : string; 
    Amount : number; // Decimal
    Count : number; // Int32
  }
  
  export enum PaymentReturnActions {
    Default = 0,
    Blocked = 1,
    Forced = 2,
  }
  
  export enum PaymentStatus {
    NotPaid = 0,
    Paid = 1,
    Partial = 2,
  }
  
  export enum PaymentStatuses {
    New = 0,
    Pending = 1,
    Partial = 2,
    Confirmed = 10,
    Failed = -1,
  }
  
  export class PaymentTotalPerPaymentTypeDto {
    Total : number; // Decimal
    TypeName : string; 
  }
  
  export class PaymentTransactionActions {
    Cancel : boolean; 
    Refund : boolean; 
    Update : boolean; 
    Approve : boolean; 
  }
  
  export class EventLedgerDocumentPaymentTransactionDocument {
    ID : number; // Int32
    BackendID : string; 
    Amount : number; // Decimal
    PaidAmount : number; // Decimal
    Description : string; 
    Type : EVA.Core.EventLedgerDocumentPaymentTransactionDocumentPaymentTypeDocument; 
    PaymentMethod : string; 
    CurrencyID : string; 
    AmountToRefund? : number; // Decimal, nullable
    RefundedAmount? : number; // Decimal, nullable
    Status : EVA.Core.PaymentStatuses; 
  }
  
  export class PaymentTransactionDto {
    ID : number; // Int32
    BackendID : string; 
    OrderID? : number; // Int32, nullable
    GroupID : string; 
    PaymentDetails : string; 
    ErrorDetails : string; 
    PaymentDate? : string; // DateTime, nullable
    Amount : number; // Decimal
    Status : EVA.Core.PaymentStatuses; 
    IsConfirmed : boolean; 
    PendingOrConfirmed : boolean; 
    PaidAmount : number; // Decimal
    PaymentName : string; 
    Change : number; // Decimal
    TypeID : number; // Int32
    Type : EVA.Core.PaymentTypeDto; 
    CurrencyID : string; 
    ExchangeRate : number; // Decimal
    ForeignAmount : number; // Decimal
    ForeignPaidAmount : number; // Decimal
    Description : string; 
  }
  
  export enum PaymentTypeCategory {
    Other = 0,
    Debit = 1,
    Credit = 2,
    Cash = 3,
    Voucher = 4,
    Online = 5,
  }
  
  export class EventLedgerDocumentPaymentTransactionDocumentPaymentTypeDocument {
    ID : number; // Int32
    Name : string; 
  }
  
  export class PaymentTypeDto {
    Code : string; 
    Name : string; 
    IsRoundingType : boolean; 
    PrintOnDocuments : boolean; 
  }
  
  export class CashJournalDetailsModelPaymentTypeDto {
    ID : number; // Int32
    Name : string; 
    Code : string; 
    CashJournalMethod : EVA.Core.PaymentCashJournalMethod; 
  }
  
  export enum PhoneNumberTypes {
    Unspecified = 0,
    Home = 1,
    Mobile = 2,
    Work = 3,
    Fax = 4,
    Other = 999,
  }
  
  export class PickupAvailabilityIndication {
    PickupOrganizationUnit : EVA.Core.OrganizationUnitDto; 
    PickupIndicationDate : string; // DateTime
    // When the store has a known time to finish a pickup this contains the first available time
    PickupIndicationTime? : string; // DateTime, nullable
    QuantityOnHand : number; // Int32
    QuantityAvailable : number; // Int32
    IsAvailable : boolean; 
  }
  
  export enum POSBarcodeHRI {
    NotPrinted = 0,
    AboveBarcode = 1,
    BelowBarcode = 2,
  }
  
  export enum POSBarcodeType {
    UpcA = 0,
    UpcE = 1,
    Jan13 = 2,
    Jan8 = 3,
    Code39 = 4,
    Itf = 5,
    Codabar = 6,
    TriopticCode39 = -12,
    BooklandEAN = -11,
    EAN128 = -10,
    MSI = -9,
    Code11 = -8,
    Discrete = -7,
    Interleaved = -6,
    Code93 = -5,
    Code128 = -4,
    Ean13 = -3,
    Ean8 = -2,
    Unknown = -1,
  }
  
  export enum POSImageSize {
    Normal = 0,
    DoubleWidth = 1,
    DoubleHeight = 2,
  }
  
  export enum POSPrinterAlignment {
    Left = 0,
    Center = 1,
    Right = 2,
  }
  
  export enum POSPrinterFont {
    FontA = 0,
    FontB = 1,
    FontC = 2,
  }
  
  export enum POSPrinterOrientation {
    Landscape = 0,
    Portrait = 1,
  }
  
  export enum PrinterCommandTypes {
    SetBold = 0,
    SetAlign = 1,
    SetSize = 2,
    SetFont = 3,
    SetTabSize = 4,
    SetLineSpacing = 5,
    OutputNewLine = 6,
    OutputImage = 7,
    OutputBarcode = 8,
    OutputText = 9,
    OutputFeed = 10,
    OutputHorizontalLine = 11,
    OutputQRCode = 12,
    CutPaper = 13,
  }
  
  export class ProductAvailabilityDataDto {
    ID : number; // Int32
    PromisedDeliveryStatusID? : number; // Int32, nullable
    PromisedDeliveryStatus? : EVA.Core.ProductPromisedDeliveryStatuses; 
    MinDeviationDays : number; // Int32
    MaxDeviationDays : number; // Int32
    DeliveryText : string; 
    PickupNoStoresText : string; 
    PickupSomeStoresText : string; 
    PickupAllStoresText : string; 
    ProductID? : number; // Int32, nullable
    Product : EVA.Core.ProductDto; 
    ValidThrough? : string; // DateTime, nullable
  }
  
  export class ProductAvailabilityIndication {
    ProductID : number; // Int32
    PickupIndications : EVA.Core.PickupAvailabilityIndication[]; 
    Delivery : EVA.Core.DeliveryAvailabilityIndication; 
    StoreAvailabilityCount : number; // Int32
    StoreCount : number; // Int32
    ProductStatus : EVA.Core.ProductStatus; 
    ExpectedAvailabilityStatus? : EVA.Core.ProductPromisedDeliveryStatuses; 
    PickupText : string; 
  }
  
  export enum ProductBarcodeOrigin {
    Imported = 0,
    UserDefined = 1,
  }
  
  export enum ProductBundleLineOptionTypes {
    LeafProduct = 0,
    ConfigurableProduct = 1,
    BundleProduct = 2,
  }
  
  export enum ProductBundleLineTypes {
    Required = 0,
    Optional = 1,
    OptionalIncludedInPrice = 2,
  }
  
  export class ProductDto {
    ID : number; // Int32
    BackendID : string; 
    CustomID : string; 
    BrandID? : number; // Int32, nullable
    BrandName : string; 
    PrimitiveName : string; 
    Type : EVA.Core.ProductTypes; 
    CatalogID : number; // Int32
    LedgerClassID : string; 
    OrganizationUnitID? : number; // Int32, nullable
    Properties : any; 
  }
  
  export class EventLedgerDocumentTerminalReportDocumentProductGroup {
    Code : string; 
    Amount : number; // Decimal
    Count : number; // Int32
  }
  
  export enum ProductHierarchyTypes {
    ConfigurableProduct = 0,
    TemplateProduct = 1,
  }
  
  export enum ProductLedgerTypes {
    Adjustment = 0,
    AutomaticCorrection = 3,
    MoveFrom = 4,
    MoveTo = 5,
    Summary = 6,
    ExternalModification = 9,
    Allocation = 10,
  }
  
  export enum ProductPromisedDeliveryStatuses {
    Unknown = 0,
    KnownUnSure = 1,
    KnownQuiteSure = 2,
    KnownSure = 3,
    OnDay = 4,
    Stock = 5,
  }
  
  export class ProductQuantityDto {
    ProductID : number; // Int32
    QuantityRequested : number; // Int32
    ShippingMethodID? : number; // Int32, nullable
  }
  
  export enum ProductRequirementDataTypes {
    String = 0,
    Bool = 1,
    Integer = 2,
    Decimal = 3,
    Enum = 4,
    Text = 5,
  }
  
  export class SearchStockMutationResultProductResult {
    ID : number; // Int32
    CustomID : string; 
    BackendID : string; 
    PrimitiveName : string; 
  }
  
  export enum ProductSearchOptions {
    None = 0,
    IsInternalCall = 1,
    IsSearch = 2,
    IsLargePageSize = 4,
  }
  
  export class ProductSearchTemplateFilters {
    Name : string; 
    LanguageID : string; 
    CountryID : string; 
  }
  
  export enum ProductStatus {
    None = 0,
    PreRelease = 1,
    DeliveryOnly = 4,
    DisableDelivery = 8,
    DisablePickup = 16,
    DisableBackorder = 32,
    UseUp = 34,
  }
  
  export class ProductStructureDefinition {
    Name : string; 
    Filters : { [ key : string ] : EVA.Core.FilterModel }; 
    Children : EVA.Core.ProductStructureDefinition[]; 
  }
  
  export enum ProductTypes {
    None = 0,
    Stock = 1,
    Marketing = 4,
    GiftCard = 8,
    Service = 16,
    GreetingCard = 32,
    CustomPricing = 64,
    External = 128,
    OrderCosts = 256,
    SystemGenerated = 512,
    ProductSet = 1024,
    BundleProduct = 2048,
    VirtualProduct = 4096,
    MadeToOrder = 8192,
    Configurable = 16384,
    SupplierProduct = 32768,
    Template = 65536,
  }
  
  export enum ProductTypes {
    Goods = 0,
    Services = 1,
  }
  
  export enum PropertyValueType {
    None = 0,
    Single = 1,
    Multi = 2,
  }
  
  export class PurchaseOrderShipmentDto {
    ID : number; // Int32
    OrganizationUnitID : number; // Int32
    OrganizationUnitName : string; 
    ShipmentDate : string; // DateTime
    ExpectedDeliveryDate? : string; // DateTime, nullable
    BackendID : string; 
    BackendSystemID : string; 
    TrackingCode : string; 
    TrackingLink : string; 
    CreationTime : string; // DateTime
    TotalQuantityShipped : number; // Int32
    TotalQuantityDelivered : number; // Int32
    NetTotalQuantityShipped : number; // Int32
    NetTotalQuantityDelivered : number; // Int32
    IsCompleted : boolean; 
    StatusID : number; // Int32
    TotalPackageCountIndication : number; // Int32
    Orders : EVA.Core.PurchaseOrderShipmentDtoOrderDto[]; 
    ReceiveMethodID? : number; // Int32, nullable
  }
  
  export class PurchaseOrderShipmentLineDto {
    ID : number; // Int32
    ProductID : number; // Int32
    Description : string; 
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    IsCompleted : boolean; 
    CurrencyID : string; 
    UnitPrice : number; // Decimal
    // Obsolete
    ForeignUnitPrice : number; // Decimal
    TotalAmount : number; // Decimal
    // Obsolete
    ForeignTotalAmount : number; // Decimal
    ShipmentDate : string; // DateTime
    // Obsolete
    ExchangeRate : number; // Decimal
  }
  
  export enum PushNotificationPriority {
    Low = 1,
    High = 2,
  }
  
  export class SearchStockMutationResultReasonResult {
    ID : number; // Int32
    Name : string; 
    BackendID : string; 
  }
  
  export class ReceiveShipmentWorkSet {
    ShipmentID : number; // Int32
    BackendID : string; 
    ShippedToOrganizationUnitID : number; // Int32
    ReceiveMethod : EVA.Core.ShipmentReceiveMethods; 
    Lines : EVA.Core.ReceiveShipmentWorkSetLine[]; 
    Orders : EVA.Core.GetShipmentDetailsOrder[]; 
  }
  
  export class ReceiveShipmentWorkSetLine {
    ProductID : number; // Int32
    ProductPrimitiveName : string; 
    ProductCustomID : string; 
    QuantityOrdered : number; // Int32
    QuantityAlreadyReceived : number; // Int32
    QuantityShipped : number; // Int32
    NetQuantityShipped : number; // Int32
    NetQuantityDelivered : number; // Int32
    Receipts : EVA.Core.ReceiveShipmentWorkSetLineReceipt[]; 
    RequiredResourceTypes : EVA.Core.StockResourceTypeDto[]; 
    Packages : EVA.Core.ReceiveShipmentWorkSetLinePackage[]; 
  }
  
  export class ReceiveShipmentWorkSetLinePackage {
    UnitOfMeasure : string; 
    Barcode : string; 
    Quantity : number; // Int32
    QuantityBarcode : number; // Int32
    QuantityTotal : number; // Int32
  }
  
  export class ReceiveShipmentWorkSetLineReceipt {
    QuantityReceived : number; // Int32
    Resource : EVA.Core.ReceiveShipmentWorkSetLineResource; 
  }
  
  export class ReceiveShipmentWorkSetLineResource {
    ResourceID? : number; // Int32, nullable
    Resources : { [ key : string ] : string }; 
  }
  
  export class RequestedDateByOrderLineID {
    OrderLineID : number; // Int32
    RequestedDate? : string; // DateTime, nullable
  }
  
  export enum RequestedPriceTypes {
    UnitPrice = 1,
    UnitCost = 2,
    PurchasePrice = 4,
    RecommendedRetailPrice = 8,
  }
  
  export class RequiredData {
    Order : EVA.Core.Requirement[]; 
    OrderLines : { [ key : number ] : EVA.Core.Requirement[] }; 
    Customer : EVA.Core.Requirement[]; 
  }
  
  export class RequiredDataValidationResult {
    ValidationErrors : EVA.Core.ValidationError[]; 
  }
  
  export enum RequiredFor {
    PlaceOrder = 1,
    Payment = 2,
    Ship = 4,
    Invoice = 8,
    All = 15,
  }
  
  export enum RequiredResourceMoments {
    Sale = 1,
    Stock = 2,
  }
  
  export class Requirement {
    Name : string; 
    IsValid : boolean; 
    Message : string; 
    Type : string; 
    ValidationRule : string; 
    DataType : string; 
    RequiredFor : EVA.Core.RequiredFor; 
  }
  
  export class SearchStockMutationResultResourceLineResult {
    ResourceID : number; // Int32
    Type : string; 
    Value : string; 
    IsUnique : boolean; 
  }
  
  export enum ReturnableStatuses {
    Returnable = 0,
    ReturnableWithParent = 1,
    NotReturnable = 2,
    SelfAndChildrenNotReturnable = 3,
    AlwaysReturnable = 4,
  }
  
  export enum ReturnStatus {
    Returnable = 0,
    NotReturnable = 1,
    ReturnableForced = 2,
  }
  
  export class EventLedgerDocumentRoleDocument {
    ID : number; // Int32
  }
  
  export class SearchDiscountsByQueryFilter {
    IsActive? : boolean; 
    DiscountTriggerID : number; // Int32
    Description : string; 
    CouponCode : string; 
    CreatedBy : string; 
    BackendID : string; 
    IsActiveAndVerified? : boolean; 
    ShowOnlyChildDiscounts? : boolean; 
    OrderType : EVA.Core.OrderTypes; 
    LayerID? : number; // Int32, nullable
    OrganizationUnitID? : number; // Int32, nullable
    CurrencyID : string; 
  }
  
  export class SearchStockMutationResult {
    ID : number; // Int32
    CreationTime : string; // DateTime
    Product : EVA.Core.SearchStockMutationResultProductResult; 
    OrganizationUnit : EVA.Core.SearchStockMutationResultIdNameValue; 
    SourceStockLabel : EVA.Core.SearchStockMutationResultIdNameValue; 
    DestinationStockLabel : EVA.Core.SearchStockMutationResultIdNameValue; 
    MutationQuantity : number; // Int32
    AutomaticCorrectionQuantity : number; // Int32
    SourceUnitCost : number; // Decimal
    SourceUnitPrice : number; // Decimal
    DestinationUnitCost : number; // Decimal
    DestinationUnitPrice : number; // Decimal
    Reason : EVA.Core.SearchStockMutationResultReasonResult; 
    ResourceLines : EVA.Core.SearchStockMutationResultResourceLineResult[]; 
    Type : EVA.Core.SearchStockMutationResultIdNameValue; 
    Remark : string; 
    OrderLine : EVA.Core.SearchStockMutationResultOrderLineResult; 
    UserTask : EVA.Core.SearchStockMutationResultUserTaskResult; 
    ShipmentLine : EVA.Core.SearchStockMutationResultShipmentLineResult; 
    CreatedBy : EVA.Core.SearchStockMutationResultUserResult; 
  }
  
  export enum ServiceExceptionTypes {
    General = 0,
    Unknown = 1,
    PasswordPolicyViolation = 2,
    UserPhoneNumberRequired = 3,
    SubscribeTokenInvalid = 4,
    UnknownStation = 5,
    ProductNotFound = 6,
    CustomerMissing = 7,
    UnknownOrganization = 8,
    NoOrganization = 9,
    PaymentValidationError = 10,
    IncompleteConfirmation = 11,
    InvalidEmailAddress = 12,
    SecurityException = 13,
    StationRequired = 14,
    ScanStationBeforeInitiatingPayment = 15,
    FinanceException = 16,
    NoOpenFinancePeriod = 17,
    FinancePeriodUnavailable = 18,
    OrderCompleted = 19,
    PrintFailed = 20,
    NotFound = 21,
    UpdateLineActionTypeNotAllowed = 22,
    OrderLineAlreadyCompleted = 23,
    AddLineNotAllowed = 24,
    CannotDeleteOrder = 25,
    InvalidOpeningHours = 26,
    InvalidRequest = 27,
    ShoppingCartNotFound = 28,
    InvalidStockLabel = 29,
    InsufficientStock = 30,
    ModifyLineNotAllowed = 31,
    PendingPayment = 32,
    InvalidOrder = 33,
    InvalidBankAccount = 34,
    CustomerRequired = 35,
    CardActivationFailure = 36,
    InvalidCustomer = 37,
    ReservationFailed = 38,
    DetachCustomerNotAllowed = 39,
    NotImplemented = 40,
    NoCountedQuantitiesSpecified = 41,
    TaskAlreadyCompleted = 42,
    CannotMoveBackMoreToSellableThanWasRequested = 43,
    InitialCycleCountAlreadyExists = 44,
    CannotCountNonStockProduct = 45,
    PaymentReturnActionBlocked = 46,
    CannotCreateInitialCycleCountWithoutOpenPeriod = 47,
    CouponCodeAlreadyInUse = 48,
    TransactionAlreadyConfirmed = 49,
    CannotChangeShippingMethod = 50,
    OrganizationUnitUnavailableForPickup = 51,
    ValidationFailed = 52,
    CannotCancelOrderLine = 53,
    InvalidStockMutation = 54,
    InvalidVerificationCode = 55,
    PolicyOrReferenceNumberNotValid = 56,
    PolicyAndReferenceNumberRequired = 57,
    OpeningCashDrawerDisabled = 58,
    OpeningCashDrawerRequiresRemark = 59,
    CannotCancelOrder = 60,
    StockResourceInvalid = 61,
    OrderFlaggedForFraud = 62,
    CardIssuingFailure = 63,
    ParseException = 64,
  }
  
  export enum SetPasswordOptions {
    None = 0,
    IgnorePasswordCheck = 1,
    SkipExisting = 2,
    GeneratePassword = 4,
    GenerateTemporaryPassword = 8,
  }
  
  export enum ShipmentInitiator {
    External = 0,
    User = 1,
  }
  
  export enum ShipmentLineDeliveryTypes {
    Default = 0,
    Surplus = 1,
    Deficiency = 2,
  }
  
  export class ShipmentLineDto {
    ID : number; // Int32
    CustomID : string; 
    ProductID? : number; // Int32, nullable
    Description : string; 
    BackendReference : string; 
    QuantityShipped : number; // Int32
    QuantityDelivered : number; // Int32
    CurrencyID : string; 
    UnitPrice : number; // Decimal
    IsCompleted : boolean; 
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
    UnitPriceInTax : number; // Decimal
    TaxRate : number; // Decimal
    DeliveryType : EVA.Core.ShipmentLineDeliveryTypes; 
    OrderID : number; // Int32
    OrderLineID : number; // Int32
    ShipmentID : number; // Int32
    ShipmentDate : string; // DateTime
    NetQuantityShipped : number; // Int32
    NetQuantityDelivered : number; // Int32
  }
  
  export class SearchStockMutationResultShipmentLineResult {
    ID : number; // Int32
    Shipment : EVA.Core.SearchStockMutationResultShipmentResult; 
  }
  
  export enum ShipmentReceiveMethods {
    Manual = 0,
    Automatic = 1,
    UserDefined = 2,
  }
  
  export class SearchStockMutationResultShipmentResult {
    ID : number; // Int32
    TrackingCode : string; 
  }
  
  export class ShipmentResultMessage {
    Code : string; 
    Message : string; 
  }
  
  export enum ShipmentStatuses {
    Open = 0,
    Completed = 10,
    Cancelled = 11,
  }
  
  export class ShippingMethodDto {
    ID : number; // Int32
    CarrierID : number; // Int32
    Carrier : EVA.Core.CarrierDto; 
    Name : string; 
    Description : string; 
    Code : string; 
    ExtraCosts : number; // Decimal
    Priority : number; // Int32
    PaymentHandledByCarrier : boolean; 
  }
  
  export class ShippingMethodByOrderLineDto extends EVA.Core.ShippingMethodDto {
    AppliesToOrderLineIDs : number[]; 
    RequestedDeliveryDates : EVA.Core.RequestedDateByOrderLineID[]; 
  }
  
  export enum ShippingMethodDeliveryTypes {
    None = 0,
    Default = 1,
    ShipFromStore = 2,
  }
  
  export class ShippingMethodTransportationTimeItem {
    ID : number; // Int32
    ShippingMethodID? : number; // Int32, nullable
    ShippingMethodName : string; 
    FromCountryID : string; 
    ToCountryID : string; 
    TimeInDays : number; // Int32
  }
  
  export enum ShippingOptions {
    Automatic = 0,
    Manual = 1,
    ManualWithShipmentIDs = 2,
    ManualWithDetailInspection = 3,
  }
  
  export enum ShippingRestrictionType {
    SoldFromOrganizationUnit = 0,
    ShipFromOrganizationUnit = 1,
  }
  
  export class ShoppingCartResponse extends EVA.API.ResponseMessage {
    ShoppingCart : EVA.Core.OrderDto; 
    Amounts : EVA.Core.OpenOrderAmounts; 
  }
  
  export class SimpleShoppingCartResponse extends EVA.API.ResponseMessage {
    OrderID : number; // Int32
  }
  
  export enum SmsPriority {
    Normal = 0,
    High = 1,
  }
  
  export class CashJournalDetailsModelStation {
    ID : number; // Int32
    Name : string; 
  }
  
  export class StationCashResult {
    Currency : number; // Decimal
    Quantity : number; // Int32
  }
  
  export class StationClosing {
    InitialAmount : number; // Decimal
    Name : string; 
    Type : EVA.Core.LegacyCashJournalTypes; 
    TypeName : string; 
    StationID? : number; // Int32, nullable
    ClosingAmount : number; // Decimal
    Currencies : EVA.Core.StationCashResult[]; 
  }
  
  export class StationDto {
    ID : number; // Int32
    BackendID : string; 
    Name : string; 
    OrganizationUnitID : number; // Int32
    OrganizationUnit : EVA.Core.OrganizationUnitDto; 
    OrganizationUnitDescription : string; 
    Devices : EVA.Core.DeviceDto[]; 
    HasPrinterDevice : boolean; 
    HasPinDevice : boolean; 
    HasThermalPrinterDevice : boolean; 
    HasCashDrawerDevice : boolean; 
    HasCustomerFacingDisplay : boolean; 
    ProxyID : string; 
  }
  
  export class ListDevicesModelStationModel {
    ID : number; // Int32
    BackendID : string; 
    Name : string; 
    OrganizationUnitID? : number; // Int32, nullable
    OrganizationUnit : EVA.Core.ListDevicesModelOrganizationUnitModel; 
  }
  
  export enum StockAllocationRuleTypes {
    Reservation = 0,
    Limitation = 1,
  }
  
  export enum StockAllocationRuleValueTypes {
    Quantity = 0,
    Percentage = 1,
  }
  
  export class StockMutationDto {
    ID : number; // Int32
    CreationTime : string; // DateTime
    SourceOrganizationUnitID : number; // Int32
    SourceOrganizationUnit : EVA.Core.OrganizationUnitDto; 
    SourceStockLabelID : number; // Int32
    SourceStockLabel : number; // Int32
    DestinationOrganizationUnitID : number; // Int32
    DestinationOrganizationUnit : EVA.Core.OrganizationUnitDto; 
    DestinationStockLabelID : number; // Int32
    DestinationStockLabel : number; // Int32
    ReasonID : number; // Int32
    Reason : EVA.Framework.EnumDto; 
    ProductID : number; // Int32
    Product : EVA.Core.ProductDto; 
    OrderLineID? : number; // Int32, nullable
    OrderLine : EVA.Core.OrderLineDto; 
    ResourceID? : number; // Int32, nullable
    MutationQuantity : number; // Int32
    Remark : string; 
    SourceUnitCost : number; // Decimal
    DestinationUnitCost : number; // Decimal
    AutomaticCorrectionQuantity : number; // Int32
  }
  
  export class StockMutationFilters {
    ProductIDs : number[]; 
    MutationQuantity? : number; // Int32, nullable
    Remark : string; 
    SourceStockLabelID? : number; // Int32, nullable
    DestinationStockLabelID? : number; // Int32, nullable
    ReasonIDs : number[]; 
    OrganizationUnitID? : number; // Int32, nullable
    FromDate? : string; // DateTime, nullable
    ToDate? : string; // DateTime, nullable
    UserIDs : number[]; 
    OrderIDs : number[]; 
  }
  
  export enum StockMutationTypes {
    Unknown = 0,
    Move = 1,
    Adjust = 2,
  }
  
  export class StockResourceTypeDto {
    Name : string; 
    IsUnique : boolean; 
  }
  
  export enum StockTimelineItemStatuses {
    New = 0,
    Blocked = 5,
    Processed = 10,
    ProcessedObsolete = 20,
    Deleted = 30,
  }
  
  export enum StockTimelineItemTypes {
    Replenishment = 0,
    Commitment = 1,
    Shipment = 2,
  }
  
  export enum SubscriptionStatus {
    None = 0,
    Requested = 1,
    Subscribed = 2,
    Unsubscribed = 3,
  }
  
  export class SuggestionModel {
    Score : number; // Double
    Text : string; 
    Payload : any; 
  }
  
  export enum SystemQueues {
    Default = 0,
    Mails = 1,
  }
  
  export class EventLedgerDocumentTerminalReportDocumentTax {
    Name : string; 
    Code : string; 
    Rate : number; // Decimal
    Base : number; // Decimal
    Amount : number; // Decimal
  }
  
  export class TaxAmount {
    Rate : number; // Decimal
    Amount : number; // Decimal
    // Obsolete
    ForeignAmount : number; // Decimal
    Base : number; // Decimal
  }
  
  export class TaxRateModel {
    ID : number; // Int32
    CountryID : string; 
    TaxCodeID : number; // Int32
    TaxCodeName : string; 
    Rate : number; // Decimal
    StartDate? : string; // DateTime, nullable
    EndDate? : string; // DateTime, nullable
  }
  
  export enum TemplateOutputChannel {
    Print = 1,
    Download = 2,
    Email = 4,
    Receipt = 8,
  }
  
  export class EventLedgerDocumentTerminalReportDocument {
    Type : EVA.Core.TerminalReportType; 
    Supplier : EVA.Core.Billable; 
    Company : EVA.Core.Billable; 
    Date : string; // DateTime
    Payments : EVA.Core.EventLedgerDocumentTerminalReportDocumentPayment[]; 
    Taxes : EVA.Core.EventLedgerDocumentTerminalReportDocumentTax[]; 
    ProductGroups : EVA.Core.EventLedgerDocumentTerminalReportDocumentProductGroup[]; 
    PaymentsPerUser : EVA.Core.EventLedgerDocumentTerminalReportDocumentPaymentPerUser[]; 
    CopyReceiptsPrinted : number; // Int32
    TotalCopyReceiptsAmount : number; // Decimal
    ReceiptsPrinted : number; // Int32
    CashDrawerOpenings : number; // Int32
    ReturnCount : number; // Int32
    TotalReturnsAmount : number; // Decimal
    DiscountCount : number; // Int32
    TotalDiscounts : number; // Decimal
    Change : number; // Decimal
    GrandTotalCash : number; // Decimal
    GrandTotal : number; // Decimal
    GrandTotalNet : number; // Decimal
    GrandTotalReturns : number; // Decimal
  }
  
  export enum TerminalReportType {
    X = 0,
    Z = 1,
  }
  
  export enum ThermalPrinterStatus {
    None = 0,
    CashDrawerOpened = 1,
    CashDrawerClosed = 2,
    Online = 4,
    Offline = 8,
    CoverOpen = 16,
    CoverClosed = 32,
    PaperNearEnd = 64,
    PaperAdequate = 128,
    PaperPresent = 256,
    PaperNotPresent = 512,
  }
  
  export enum ThermalPrinterTemplateTypes {
    Xml = 0,
    Html = 1,
  }
  
  export enum TimelineItemTypes {
    InitialStock = 0,
    Replenishment = 1,
    Shipment = 2,
    Commitment = 3,
  }
  
  export enum TotalTypes {
    GrandTotal = 0,
    PeriodGrandTotal = 1,
    MonthlyGrandTotal = 2,
    FiscalYearGrandTotal = 3,
  }
  
  export class TransportOrderLineData {
    TransportID : string; 
    Priority? : number; // Int32, nullable
    PlannedDate? : string; // DateTime, nullable
    Timeslot : string; 
  }
  
  export class TransputJobDocument {
    CreationTime : string; // DateTime
    Document : string; 
  }
  
  export enum TransputJobStatuses {
    New = 0,
    Running = 1,
    Finished = 2,
    Failed = -1,
  }
  
  export class TransputJobWithRelatedExportDataDto {
    Status : EVA.Core.TransputJobStatuses; 
    Type : EVA.Framework.EnumDto; 
    Identifier : string; 
    CreationTime : string; // DateTime
    StartTime? : string; // DateTime, nullable
    EndTime? : string; // DateTime, nullable
    OrderID? : number; // Int32, nullable
    OrderExportID? : number; // Int32, nullable
    ShipmentID? : number; // Int32, nullable
    ShipmentExportID? : number; // Int32, nullable
    InvoiceID? : number; // Int32, nullable
    InvoiceExportID? : number; // Int32, nullable
    FinancialPeriodID? : number; // Int32, nullable
    FinancialPeriodExportID? : number; // Int32, nullable
    Name : string; 
    ShipFromOrganizationUnit? : number; // Int32, nullable
    ShipToOrganizationUnit? : number; // Int32, nullable
  }
  
  export enum TravelAvoidTypes {
    None = 0,
    Tolls = 1,
    Highways = 2,
    Ferries = 3,
  }
  
  export enum TravelModes {
    Driving = 0,
    Bicycling = 1,
    Walking = 2,
  }
  
  export enum UrlRewriteTypes {
    MovedPermanently = 301,
    MovedTemporarily = 302,
    TemporaryRedirect = 307,
    PermanentRedirect = 308,
    Gone = 410,
    Silent = 999,
  }
  
  export enum UrlSafetyResult {
    Safe = 0,
    Unsafe = 1,
    InvalidUrl = 2,
  }
  
  export enum UserCardAmountTypes {
    Currency = 0,
    Points = 1,
  }
  
  export class UserCardBalance {
    CardBalance : number; // Decimal
    CurrencyBalance : number; // Decimal
    CurrencyID : string; 
  }
  
  export class UserCardDto {
    ID : number; // Int32
    UserID : number; // Int32
    User : EVA.Core.UserDto; 
    Barcode : string; 
    IsActive : boolean; 
    CurrentBalance : EVA.Core.UserCardBalance; 
    TypeID : number; // Int32
    Type : EVA.Core.UserCardTypeDto; 
    CurrencyID : string; 
  }
  
  export enum UserCardMutationStatuses {
    Pending = 0,
    Completed = 1,
    Cancelled = 2,
  }
  
  export enum UserCardMutationTypes {
    Deposit = 0,
    Withdraw = 1,
  }
  
  export class UserCardTypeDto extends EVA.Framework.EnumDto {
    AmountType : EVA.Core.UserCardAmountTypes; 
  }
  
  export class EventLedgerDocumentUserDocument {
    ID : number; // Int32
  }
  
  export class UserIdentificationPin {
    HasPin : boolean; 
    ResetDate? : string; // DateTime, nullable
  }
  
  export enum UserLedgerTypes {
    None = 0,
    Deleted = 1,
    EmailAddressChanged = 2,
    NameChanged = 3,
    DOBChanged = 4,
    RegistrationNumberChanged = 5,
    CompanyNameChanged = 6,
    VatNumberChanged = 7,
    BankAccountChanged = 8,
    TypeChanged = 9,
    PasswordChanged = 10,
    PasswordResetRequested = 11,
    FunctionalitiesUpdated = 12,
    ShippingAddressChanged = 13,
    BillingAddressChanged = 14,
    PasswordResetFailed = 15,
    SubscriptionChanged = 16,
    FiscalIDChanged = 17,
    IsIncognitoChanged = 18,
    SessionKeyChanged = 19,
  }
  
  export class UserRequirement {
    Required : boolean; 
    CustomValidators : { [ key : string ] : any }; 
  }
  
  export class SearchStockMutationResultUserResult {
    ID : number; // Int32
    EmailAddress : string; 
    FirstName : string; 
    LastName : string; 
  }
  
  export class EventLedgerDocumentUserTaskDocument {
    ID : number; // Int32
    UserID? : number; // Int32, nullable
    StartTime? : string; // DateTime, nullable
    CompletionTime? : string; // DateTime, nullable
    Type : EVA.Core.EventLedgerDocumentUserTaskDocumentUserTaskTypeDocument; 
    Description : string; 
  }
  
  export class UserTaskDto {
    ID : number; // Int32
    UserID? : number; // Int32, nullable
    User : EVA.Core.UserDto; 
    UserFullname : string; 
    OrganizationUnitID : number; // Int32
    OrganizationUnit : EVA.Core.OrganizationUnitDto; 
    FinancialPeriodID? : number; // Int32, nullable
    FinancialPeriod : EVA.Core.FinancialPeriodDto; 
    Type : EVA.Core.UserTaskTypeDto; 
    Priority : number; // Int32
    IsCompleted : boolean; 
    IsActive : boolean; 
    CreationTime : string; // DateTime
    Deadline? : string; // DateTime, nullable
    ExpectedTimeToComplete? : any; // TimeSpan, nullable
    StartTime? : string; // DateTime, nullable
    CompletionTime? : string; // DateTime, nullable
    Description : string; 
  }
  
  export class SearchStockMutationResultUserTaskResult {
    ID : number; // Int32
    Type : EVA.Core.SearchStockMutationResultIdNameValue; 
  }
  
  export class EventLedgerDocumentUserTaskDocumentUserTaskTypeDocument {
    ID : number; // Int32
    Name : string; 
  }
  
  export class UserTaskTypeDto extends EVA.Framework.EnumDto {
    Configuration : string; 
    ExpectedTimeToComplete? : any; // TimeSpan, nullable
    DefaultPriority : number; // Int32
    DefaultRequired : boolean; 
  }
  
  export class UserTaskTypeOrganizationUnitSetDto {
    ID : number; // Int32
    UserTaskTypeID : number; // Int32
    OrganizationUnitSetID : number; // Int32
    Required : boolean; 
  }
  
  export class ValidationError {
    Field : string; 
    Message : string; 
    Context : string; 
  }
  
  export class WarehouseOrderData {
  }
  
  export class WeekOpeningsDto {
    DayOfWeek? : System.Private.CoreLib.DayOfWeek; 
    OpeningTime : any; // TimeSpan
    ClosingTime : any; // TimeSpan
    Date? : string; // DateTime, nullable
    Closed : boolean; 
  }
  
  export enum WishListFundingType {
    Payment = 0,
    Delivery = 1,
  }
  
  export enum ZipCodeHouseNumber {
    Uneven = 0,
    Even = 1,
    Sequential = 2,
  }
  
  export enum ZipCodePartType {
    Digit = 0,
    Letter = 1,
    Other = 2,
  }
  
}