import { ObjectId } from 'mongodb'; import { AssetBuilder } from './assetBuilder'; import { Attachment } from './attachment'; import { BaseModel } from './baseModel'; import { Employee } from './employee'; import { Fulfilment } from './fulfilment'; import { OperationCenter } from './operationCenter'; import { SKU } from './sku'; import { Vendor } from './vendor'; export interface Procurement extends BaseModel { date: Date; operationCenter: OperationCenter | ObjectId; code: string; vendor: Vendor | ObjectId; procurementType: string; items: ProcurementItem[]; assets?: AssetBuilder[]; price: number; confirmedPrice?: boolean; fulfilments?: Fulfilment[]; attachments?: Attachment[]; comments?: string; discount?: number; paymentStatus?: string; paymentDueDate?: Date; paidDate?: Date; paidAmount?: number; paidByEmployee?: Employee | ObjectId; vendorBillNumber?: string; utrNumber?: string; metadata?: FishgramMetadata; poId?: string; } export interface ProcurementItem extends BaseModel { procurement: Procurement | ObjectId; date: Date; operationCenter: OperationCenter | ObjectId; vendor: Vendor | ObjectId; sku: SKU | ObjectId; subQuantity: number; assetsQuantity?: number; weightChange?: number; includeWeightChangeInBilling?: boolean; dumpedQuantity?: number; includeDumpedInBilling?: boolean; extraQuantity?: number; quantity: number; marketRate: number; rebate?: number; unitPrice: number; billingQuantity: number; price: number; commissionPerKG?: number; commissionAmount?: number; metadata?: FishgramMetadata; poItemId?: string; } interface FishgramMetadata { fishgram?: { buyer_account?: { id?: string; name?: string; user?: string; }; seller_account?: { id?: string; name?: string; user?: string; }; created_by_user?: string; }; } export {};