/* tslint:disable */
import { EntityDTOBaseOfReceiptItemDTOAndIReceiptItem } from './entity-dtobase-of-receipt-item-dtoand-ireceipt-item';
import { EntityDTOContainerOfReceiptItemDTO } from './entity-dtocontainer-of-receipt-item-dto';
import { KeyValueDTOOfStringAndString } from './key-value-dtoof-string-and-string';
import { CampaignDTO } from './campaign-dto';
import { PriceDTO } from './price-dto';
import { EntityDTOContainerOfLogisticianDTO } from './entity-dtocontainer-of-logistician-dto';
import { LoyaltyDTO } from './loyalty-dto';
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
import { OrderItemType } from './order-item-type';
import { EntityReferenceTypeDTO } from './entity-reference-type-dto';
import { ProductDTO } from './product-dto';
import { EntityDTOContainerOfPackageDTO } from './entity-dtocontainer-of-package-dto';
import { PaymentStatus } from './payment-status';
import { OrderItemProcessingStatusValue } from './order-item-processing-status-value';
import { PromotionDTO } from './promotion-dto';
import { QuantityDTO } from './quantity-dto';
import { EntityDTOContainerOfReceiptDTO } from './entity-dtocontainer-of-receipt-dto';
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
import { ReferencedInOtherReceiptDTO } from './referenced-in-other-receipt-dto';
import { EntityDTOContainerOfSupplierDTO } from './entity-dtocontainer-of-supplier-dto';
export interface ReceiptItemDTO extends EntityDTOBaseOfReceiptItemDTOAndIReceiptItem{
  _Parent?: EntityDTOContainerOfReceiptItemDTO;

  /**
   * Buchhalterischer Indikator / Berechnungsmotiv
   * z.B. Gutschein, E-Book
   */
  accountingIndicator?: string;

  /**
   * Actions / Mögliche Aktionen
   */
  actions?: Array<KeyValueDTOOfStringAndString>;

  /**
   * Bearbeiter-Bemerkungen
   */
  agentComment?: string;

  /**
   * Auftraggeber-Bemerkung
   */
  buyerComment?: string;

  /**
   * Campaign / Kampagne
   */
  campaign?: CampaignDTO;

  /**
   * Individualisierter Produkt-Name
   */
  customProductName?: string;

  /**
   * Rabattbezeichnung
   */
  discountName?: string;

  /**
   * Rabbatierungsgrund
   */
  discountReason?: string;

  /**
   * Rabatt-Wert
   */
  discountValue?: number;

  /**
   * Reduzierter Verkaufspreis (VK)
   */
  discountedPrice?: PriceDTO;

  /**
   * Zusätzliche Markierungen (z.B. Abo, ...)
   */
  features?: {[key: string]: string};

  /**
   * Details
   */
  handlingDetails?: string;

  /**
   * Reason / Grund
   */
  handlingReason?: string;

  /**
   * Item condition / Artikelzustand
   */
  itemCondition?: string;

  /**
   * Positionsnummer
   */
  lineNumber?: number;

  /**
   * Logistiker / Auslieferer
   */
  logistician?: EntityDTOContainerOfLogisticianDTO;

  /**
   * Loyalty
   */
  loyalty?: LoyaltyDTO;

  /**
   * Bestellfiliale
   */
  orderBranch?: EntityDTOContainerOfBranchDTO;

  /**
   * Bestellposten-Typ. Wird immer an Einzel- oder Kopf-Posten gesetzt
   */
  orderItemType?: OrderItemType;

  /**
   * Origin / Ursprung/Herkunft
   */
  origin?: EntityReferenceTypeDTO;

  /**
   * Produkt
   */
  otherProduct?: ProductDTO;

  /**
   * Packstück
   */
  package?: EntityDTOContainerOfPackageDTO;

  /**
   * Übergeordneter Belegposten
   * z.B. bei Mehrwertsteuerbundle
   */
  parent?: EntityDTOContainerOfReceiptItemDTO;

  /**
   * Zahlungsstatus
   *
   * NotSet                  = 0,
   * ProformaInvoicePrinted  = 1,    Proformarechnung gedruckt
   * InvoicePrinted          = 2,    Rechnung gedruckt
   * Paid                    = 4,    bezahlt(ausgeglichen)
   * OnApproval              = 8,    Zur Ansicht
   * Free                    = 16,   Kostenfrei
   * Dunning1                = 32,   Gemahnt(Mahnung 1)
   * ProformaInvoicePaid     = 64,   Proformarechnung bezahlt
   * Canceled                = 128,  Canceled
   * Dunning2                = 256,  Gemahnt(Mahnung 2)
   * PartiallyPaid           = 512,  Teilweise bezahlt
   * Outstanding				= 1024, offen/ausstehend
   */
  paymentStatus?: PaymentStatus;

  /**
   * Preis des Belegpostens
   */
  price?: PriceDTO;

  /**
   * Verarbeitungsstatus
   *
   * NotSet							= 0,
   * Ordering						= 1,        neu
   * Placed							= 2,
   * Accepted						= 4,
   * Parked							= 8,
   * InProcess						= 16,       bestellt
   * PreparationForShipping			= 32,
   * Sent							= 64,       versendet
   * Arrived							= 128,      eingetroffen
   * Fetched							= 256,      abgeholt
   * CanceledByBuyer					= 512,      storniert (Kunde)
   * CanceledByRetailer				= 1024,     storniert
   * CanceledBySupplier				= 2048,     storniert (Lieferant)
   * NotAvailable					= 4096,     nicht lieferbar
   * ReOrdered						= 8192,     nachbestellt
   * ReturnedByBuyer					= 16384,    zurückgenommen
   * AvailableForDownload			= 32768,
   * Downloaded						= 65536,
   * NotFetched						= 131072,   nicht abgeholt
   * BackToStock						= 262144,   ans Lager (nicht abgeholt)
   * Requested						= 524288,   angefragt
   * RedirectedInternally			= 1048576,  weitergeleitet intern
   * Overdue							= 2097152,  überfällig
   * Delivered						= 4194304,  zugestellt
   * DetermineSupplier				= 8388608,  Lieferant wird ermittelt
   * SupplierTemporarilyOutOfStock	= 16777216, derzeit nicht lieferba
   */
  processingStatus?: OrderItemProcessingStatusValue;

  /**
   * Produkt
   */
  product?: ProductDTO;

  /**
   * Werbeaktion / Gutscheincode
   */
  promotion?: PromotionDTO;

  /**
   * Mengenangabe
   */
  quantity?: QuantityDTO;

  /**
   * Receipt
   */
  receipt?: EntityDTOContainerOfReceiptDTO;

  /**
   * Receipt number / Belegnummer
   */
  receiptItemNumber?: string;

  /**
   * zusätzlicher Postentext
   */
  receiptItemText?: string;

  /**
   * Entity, durch welche diese Position entstanden ist (z.B. OrderItemStatus)
   */
  referencedEntity?: EntityDTOReferenceContainer;

  /**
   * Referenced in other receipts / Referenziert in anderen Belegen
   * readonly
   */
  referencedInOtherReceipts?: Array<ReferencedInOtherReceiptDTO>;

  /**
   * Referenz zu anderem Posten
   * z.B. Lieferscheinposition => Rechnungsposition
   */
  referencedItem?: EntityDTOContainerOfReceiptItemDTO;

  /**
   * Lieferant
   */
  supplier?: EntityDTOContainerOfSupplierDTO;

  /**
   * Zielfiliale
   */
  targetBranch?: EntityDTOContainerOfBranchDTO;

  /**
   * TrackingNumber
   */
  trackingNumber?: string;

  /**
   * Stückpreis / Komponentenpreis
   */
  unitPrice?: PriceDTO;

  /**
   * Reduzierter Stückpreis / Komponentenpreis
   */
  unitPriceDiscounted?: PriceDTO;
}
