import { ObjectId } from 'mongodb'; import { Attachment } from './attachment'; import { BaseModel } from './baseModel'; import { Employee } from './employee'; import { ExpenseSubtype, ExpenseType } from './expenseType'; import { OperationCenter } from './operationCenter'; import { Procurement } from './procurement'; import { Vendor } from './vendor'; export interface Expense extends BaseModel { date: Date; operationCenter: OperationCenter | ObjectId; code: string; type: ExpenseType | ObjectId; subType: ExpenseSubtype | ObjectId; vendor: Vendor | ObjectId; memo?: string; quantity?: number; baseRate: number; subAmount?: number; gstPercent?: number; gst?: number; tdsPercent?: number; amount?: number; tds?: number; confirmedPrice?: boolean; paymentStatus?: string; paymentDueDate?: Date; paidDate?: Date; paidAmount?: number; paidByEmployee?: Employee | ObjectId; utrNumber?: string; vendorBillNumber?: string; attachments?: Attachment[]; comments?: string; transportationDestination?: string; vehicleNumber?: string; zeroOrLastMileHarvestLocation?: string; zeroOrLastMileQuantityDispatched?: number; zeroOrLastMileReadingIn?: string; zeroOrLastMileReadingOut?: string; zeroOrLastMileDistance?: string; zeroOrLastMileTimeIn?: string; zeroOrLastMileTimeOut?: string; zeroOrLastMileHarvestCancelled?: boolean; firstMileQuantityDispatched?: number; firstMileDriverWageAndGratuity?: number; firstMileCess?: number; firstMileRtoFees?: number; firstMileTollFees?: number; firstMileMiscFees?: number; firstMileVehicleWeightWithMaterial?: number; firstMileTripCancelled?: boolean; procurement?: Procurement | ObjectId; automatic?: boolean; }