import { ObjectId } from 'mongodb'; import { BaseModel } from './baseModel'; import { Customer } from './customer'; import { Location } from './location'; import { OperationCenter } from './operationCenter'; import { SKU } from './sku'; import { Employee } from './employee'; export interface Order extends BaseModel { status: string; date: Date; startTime: Date; endTime: Date; code: string; customer: Customer | ObjectId; operationCenter: OperationCenter | ObjectId; billTo: string; billingAddressLine1: string; billingAddressLine2?: string; billingAddressCity: string; billingAddressState: string; billingAddressCountry: string; billingAddressPincode: string; deliverTo: string; deliveryAddressLine1: string; deliveryAddressLine2?: string; deliveryAddressCity: string; deliveryAddressState: string; deliveryAddressCountry: string; deliveryAddressPincode: string; deliveryAddressLocation?: Location; items: OrderItem[]; originalAmount: number; amountAdjustment: number; amount: number; comments?: string; cod?: boolean; poNumber?: string; employee?: Employee | string; delivery?: (BaseModel & { [key: string]: any; }) | ObjectId; parentOrder?: Order | ObjectId; originalDeliveredAmount?: number; deliveredAmountAdjustment?: number; deliveredAmount?: number; sourceCreatedBy?: string; account?: string; } export interface OrderItem extends BaseModel { order: Order | ObjectId; status: string; date: Date; startTime: Date; endTime: Date; operationCenter: OperationCenter | ObjectId; customer: Customer | ObjectId; sku: SKU | ObjectId; skuCode?: string; pieces?: number; quantity: number; originalUnitPrice: number; unitPriceAdjustment: number; unitPrice: number; originalAmount: number; amountAdjustment: number; amount: number; indentDriven?: boolean; deliveryItem?: (BaseModel & { [key: string]: any; }) | ObjectId; parentOrderItem?: OrderItem | ObjectId; dispatches?: (BaseModel & { [key: string]: any; })[]; deliveries?: (BaseModel & { [key: string]: any; })[]; packedPieces?: number; packedQuantity?: number; dispatchedQuantity?: number; deliveredQuantity?: number; originalDeliveredAmount?: number; deliveredAmountAdjustment?: number; deliveredAmount?: number; specRejectedQuantity?: number; qualityRejectedQuantity?: number; rejectedQuantity?: number; discountedQuantity?: number; employee?: Employee | string; }