|
|
@@ -4,6 +4,8 @@ import com.ffii.core.support.AbstractBaseEntityService |
|
|
|
import com.ffii.core.support.JdbcDao |
|
|
|
import com.ffii.fpsms.m18.entity.M18DataLogRepository |
|
|
|
import com.ffii.fpsms.modules.master.entity.ShopRepository |
|
|
|
import com.ffii.fpsms.modules.master.service.CurrencyService |
|
|
|
import com.ffii.fpsms.modules.master.service.ShopService |
|
|
|
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrder |
|
|
|
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLineRepository |
|
|
|
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository |
|
|
@@ -33,17 +35,22 @@ open class PurchaseOrderService( |
|
|
|
private val m18DataLogRepository: M18DataLogRepository, |
|
|
|
private val stockInRepository: StockInRepository, |
|
|
|
private val stockInLineRepository: StockInLineRepository, |
|
|
|
): AbstractBaseEntityService<PurchaseOrder, Long, PurchaseOrderRepository>(jdbcDao, purchaseOrderRepository) { |
|
|
|
private val currencyService: CurrencyService, |
|
|
|
private val shopService: ShopService, |
|
|
|
) : AbstractBaseEntityService<PurchaseOrder, Long, PurchaseOrderRepository>(jdbcDao, purchaseOrderRepository) { |
|
|
|
open fun getPoList(): List<PurchaseOrderInfo> { |
|
|
|
return purchaseOrderRepository.findPurchaseOrderInfoByDeletedIsFalse() |
|
|
|
} |
|
|
|
|
|
|
|
open fun allPurchaseOrder(): List<PurchaseOrder> { |
|
|
|
return purchaseOrderRepository.findAll() |
|
|
|
} |
|
|
|
|
|
|
|
open fun getDetailedPo(id: Long): Map<String, Any> { |
|
|
|
// REMINDER: po code have duplication |
|
|
|
val po = purchaseOrderRepository.findPurchaseOrderInfoByIdAndDeletedIsFalse(id) |
|
|
|
val pol = polRepository.findAllByPurchaseOrderIdAndDeletedIsFalse(id) |
|
|
|
// val pol = polRepository.findAllPurchaseOrderLineInfoByPurchaseOrderIdAndDeletedIsFalse(id) |
|
|
|
val stockIn = stockInRepository.findByPurchaseOrderIdAndDeletedFalse(id) |
|
|
|
val stockInLine = if (stockIn == null) listOf() else { |
|
|
|
stockInLineRepository.findAllStockInLineInfoByStockInIdAndDeletedFalse(stockIn.id!!) |
|
|
@@ -75,13 +82,18 @@ open class PurchaseOrderService( |
|
|
|
) |
|
|
|
return result |
|
|
|
} |
|
|
|
open fun findPurchaseOrderByM18Id(m18DataLogId: Long): PurchaseOrder? { |
|
|
|
return purchaseOrderRepository.findByM18DataLogIdAndDeletedIsFalse(m18DataLogId) |
|
|
|
|
|
|
|
open fun findByM18DataLogId(m18DataLogId: Long): PurchaseOrder? { |
|
|
|
return purchaseOrderRepository.findTopByM18DataLogIdAndDeletedIsFalseOrderByModifiedDesc(m18DataLogId) |
|
|
|
} |
|
|
|
|
|
|
|
open fun savePurchaseOrder(request: SavePurchaseOrderRequest): SavePurchaseOrderResponse { |
|
|
|
val purchaseOrder = |
|
|
|
request.id?.let { purchaseOrderRepository.findById(it).getOrDefault(PurchaseOrder()) } ?: PurchaseOrder() |
|
|
|
val supplier = request.supplierId?.let { shopRepository.findById(it).getOrNull() } |
|
|
|
val supplier = request.m18SupplierId?.let { shopService.findVendorByM18Id(it) } |
|
|
|
?: request.supplierId?.let { shopService.findById(it) } |
|
|
|
val currency = request.m18CurrencyId?.let { currencyService.findByM18Id(it) } |
|
|
|
?: request.currencyId?.let { currencyService.findById(it) } |
|
|
|
val status = request.status?.let { status -> PurchaseOrderStatus.entries.find { it.value == status } } |
|
|
|
val type = request.type?.let { type -> PurchaseOrderType.entries.find { it.value == type } } |
|
|
|
val m18DataLog = request.m18DataLogId?.let { m18DataLogRepository.findById(it).getOrNull() } |
|
|
@@ -91,6 +103,7 @@ open class PurchaseOrderService( |
|
|
|
purchaseOrder.apply { |
|
|
|
code = request.code |
|
|
|
this.supplier = supplier |
|
|
|
this.currency = currency |
|
|
|
orderDate = request.orderDate |
|
|
|
estimatedArrivalDate = request.estimatedArrivalDate |
|
|
|
completeDate = request.completeDate |
|
|
@@ -104,6 +117,7 @@ open class PurchaseOrderService( |
|
|
|
id = it.id, |
|
|
|
code = it.code, |
|
|
|
supplierCode = it.supplier?.code, |
|
|
|
currencyCode = it.currency?.code, |
|
|
|
orderDate = it.orderDate, |
|
|
|
estimatedArrivalDate = it.estimatedArrivalDate, |
|
|
|
completeDate = it.completeDate, |
|
|
|