package com.ffii.fpsms.modules.stock.entity.projection

import com.ffii.fpsms.modules.master.entity.Items
import com.ffii.fpsms.modules.master.entity.ItemsRepository
import org.springframework.beans.factory.annotation.Value
import java.math.BigDecimal
import java.time.LocalDate
import java.time.LocalDateTime

interface StockInLineInfo {
    val id: Long
    @get:Value("#{target.item?.id}")
    val itemId: Long
    @get:Value("#{target.item?.name}")
    val itemName: String?
    val itemNo: String
    @get:Value("#{target.stockIn?.id}")
    val stockInId: Long
    @get:Value("#{target.purchaseOrderLine?.id}")
    val purchaseOrderLineId: Long?
    val demandQty: BigDecimal?
    val acceptedQty: BigDecimal
    val price: BigDecimal?
    val priceUnit: BigDecimal?
    val receiptDate: LocalDateTime?
    val productionDate: LocalDateTime?
    val expiryDate: LocalDate?
    val status: String
    var lotNo: String?
    var productLotNo: String?
    @get:Value("#{target.stockIn?.supplier?.name}")
    val supplier: String?
    @get:Value("#{target.purchaseOrderLine?.uom?.code}")
    val uom: String?
    @get:Value("#{target.stockIn?.purchaseOrder?.code}")
    val poCode: String
    @get:Value("#{target.item?.type}")
    val itemType: String
}