Browse Source

[po] update po

create_edit_user
cyril.tsui 3 months ago
parent
commit
fc22127c05
9 changed files with 42 additions and 16 deletions
  1. +5
    -0
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrder.kt
  2. +2
    -4
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrderLine.kt
  3. +1
    -1
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrderRepository.kt
  4. +8
    -3
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/service/PurchaseOrderLineService.kt
  5. +18
    -4
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/service/PurchaseOrderService.kt
  6. +2
    -2
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderLineRequest.kt
  7. +1
    -1
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderLineResponse.kt
  8. +4
    -1
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderRequest.kt
  9. +1
    -0
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderResponse.kt

+ 5
- 0
src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrder.kt View File

@@ -3,6 +3,7 @@ package com.ffii.fpsms.modules.purchaseOrder.entity
import com.ffii.core.entity.BaseEntity import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Shop import com.ffii.fpsms.modules.master.entity.Shop
import com.ffii.fpsms.m18.entity.M18DataLog import com.ffii.fpsms.m18.entity.M18DataLog
import com.ffii.fpsms.modules.master.entity.Currency
import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderStatus import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderStatus
import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderStatusConverter import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderStatusConverter
import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderType import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderType
@@ -43,6 +44,10 @@ open class PurchaseOrder : BaseEntity<Long>() {
@Convert(converter = PurchaseOrderTypeConverter::class) @Convert(converter = PurchaseOrderTypeConverter::class)
open var type: PurchaseOrderType? = null open var type: PurchaseOrderType? = null


@ManyToOne
@JoinColumn(name = "currencyId")
open var currency: Currency? = null

@NotNull @NotNull
@ManyToOne @ManyToOne
@JoinColumn(name = "m18DataLogId", nullable = false) @JoinColumn(name = "m18DataLogId", nullable = false)


+ 2
- 4
src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrderLine.kt View File

@@ -14,7 +14,7 @@ import java.math.BigDecimal


@Entity @Entity
@Table(name = "purchase_order_line") @Table(name = "purchase_order_line")
open class PurchaseOrderLine : BaseEntity<Long>(){
open class PurchaseOrderLine : BaseEntity<Long>() {
@NotNull @NotNull
@ManyToOne @ManyToOne
@JoinColumn(name = "itemId", nullable = false) @JoinColumn(name = "itemId", nullable = false)
@@ -52,8 +52,6 @@ open class PurchaseOrderLine : BaseEntity<Long>(){
open var m18DataLog: M18DataLog? = null open var m18DataLog: M18DataLog? = null


@ManyToOne @ManyToOne
@JoinColumn(name = "uomId")
// @Column(name = "uomId")
@JoinColumn(name = "uomId", nullable = false)
open var uom: UomConversion? = null open var uom: UomConversion? = null

} }

+ 1
- 1
src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrderRepository.kt View File

@@ -8,7 +8,7 @@ import java.util.Optional


@Repository @Repository
interface PurchaseOrderRepository : AbstractRepository<PurchaseOrder, Long> { interface PurchaseOrderRepository : AbstractRepository<PurchaseOrder, Long> {
fun findByM18DataLogIdAndDeletedIsFalse(m18datalogId: Serializable): PurchaseOrder?
fun findTopByM18DataLogIdAndDeletedIsFalseOrderByModifiedDesc(m18datalogId: Serializable): PurchaseOrder?


fun findPurchaseOrderInfoByDeletedIsFalse(): List<PurchaseOrderInfo> fun findPurchaseOrderInfoByDeletedIsFalse(): List<PurchaseOrderInfo>
fun findPurchaseOrderInfoByIdAndDeletedIsFalse(id: Long): PurchaseOrderInfo fun findPurchaseOrderInfoByIdAndDeletedIsFalse(id: Long): PurchaseOrderInfo


+ 8
- 3
src/main/java/com/ffii/fpsms/modules/purchaseOrder/service/PurchaseOrderLineService.kt View File

@@ -4,6 +4,7 @@ import com.ffii.fpsms.m18.entity.M18DataLogRepository
import com.ffii.fpsms.modules.master.entity.ItemsRepository import com.ffii.fpsms.modules.master.entity.ItemsRepository
import com.ffii.fpsms.modules.master.service.CurrencyService import com.ffii.fpsms.modules.master.service.CurrencyService
import com.ffii.fpsms.modules.master.service.ItemsService import com.ffii.fpsms.modules.master.service.ItemsService
import com.ffii.fpsms.modules.master.service.UomConversionService
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLine import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLine
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLineRepository import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLineRepository
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository
@@ -23,6 +24,7 @@ open class PurchaseOrderLineService(
private val purchaseOrderRepository: PurchaseOrderRepository, private val purchaseOrderRepository: PurchaseOrderRepository,
private val m18DataLogRepository: M18DataLogRepository, private val m18DataLogRepository: M18DataLogRepository,
private val currencyService: CurrencyService, private val currencyService: CurrencyService,
private val uomConversionService: UomConversionService,
) { ) {
open fun allPurchaseOrderLine(): List<PurchaseOrderLine> { open fun allPurchaseOrderLine(): List<PurchaseOrderLine> {
return purchaseOrderLineRepository.findAll() return purchaseOrderLineRepository.findAll()
@@ -44,8 +46,9 @@ open class PurchaseOrderLineService(
val purchaseOrder = request.purchaseOrderId?.let { purchaseOrderRepository.findById(it).getOrNull() } val purchaseOrder = request.purchaseOrderId?.let { purchaseOrderRepository.findById(it).getOrNull() }
val status = request.status?.let { status -> PurchaseOrderLineStatus.entries.find { it.value == status } } val status = request.status?.let { status -> PurchaseOrderLineStatus.entries.find { it.value == status } }
val m18DataLog = request.m18DataLogId?.let { m18DataLogRepository.findById(it).getOrNull() } val m18DataLog = request.m18DataLogId?.let { m18DataLogRepository.findById(it).getOrNull() }
val currency = request.m18CurrencyId?.let { currencyService.findByM18Id(it) }
?: request.currencyId?.let { currencyService.findById(it) }
// val currency = request.m18CurrencyId?.let { currencyService.findByM18Id(it) }
// ?: request.currencyId?.let { currencyService.findById(it) }
val uom = request.uomId?.let { uomConversionService.find(it).getOrNull() }


purchaseOrderLine.apply { purchaseOrderLine.apply {
this.item = item this.item = item
@@ -53,6 +56,8 @@ open class PurchaseOrderLineService(
this.purchaseOrder = purchaseOrder this.purchaseOrder = purchaseOrder
qty = request.qty qty = request.qty
price = request.price price = request.price
this.uom = uom
// this.currency = currency
this.status = status this.status = status
this.m18DataLog = m18DataLog ?: this.m18DataLog this.m18DataLog = m18DataLog ?: this.m18DataLog
} }
@@ -63,7 +68,7 @@ open class PurchaseOrderLineService(
itemNo = it.itemNo, itemNo = it.itemNo,
qty = it.qty, qty = it.qty,
price = it.price, price = it.price,
currency = currency?.name,
// currency = currency?.name,
status = it.status?.value status = it.status?.value
) )
} }


+ 18
- 4
src/main/java/com/ffii/fpsms/modules/purchaseOrder/service/PurchaseOrderService.kt View File

@@ -4,6 +4,8 @@ import com.ffii.core.support.AbstractBaseEntityService
import com.ffii.core.support.JdbcDao import com.ffii.core.support.JdbcDao
import com.ffii.fpsms.m18.entity.M18DataLogRepository import com.ffii.fpsms.m18.entity.M18DataLogRepository
import com.ffii.fpsms.modules.master.entity.ShopRepository 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.PurchaseOrder
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLineRepository import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLineRepository
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository
@@ -33,17 +35,22 @@ open class PurchaseOrderService(
private val m18DataLogRepository: M18DataLogRepository, private val m18DataLogRepository: M18DataLogRepository,
private val stockInRepository: StockInRepository, private val stockInRepository: StockInRepository,
private val stockInLineRepository: StockInLineRepository, 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> { open fun getPoList(): List<PurchaseOrderInfo> {
return purchaseOrderRepository.findPurchaseOrderInfoByDeletedIsFalse() return purchaseOrderRepository.findPurchaseOrderInfoByDeletedIsFalse()
} }

open fun allPurchaseOrder(): List<PurchaseOrder> { open fun allPurchaseOrder(): List<PurchaseOrder> {
return purchaseOrderRepository.findAll() return purchaseOrderRepository.findAll()
} }

open fun getDetailedPo(id: Long): Map<String, Any> { open fun getDetailedPo(id: Long): Map<String, Any> {
// REMINDER: po code have duplication // REMINDER: po code have duplication
val po = purchaseOrderRepository.findPurchaseOrderInfoByIdAndDeletedIsFalse(id) val po = purchaseOrderRepository.findPurchaseOrderInfoByIdAndDeletedIsFalse(id)
val pol = polRepository.findAllByPurchaseOrderIdAndDeletedIsFalse(id) val pol = polRepository.findAllByPurchaseOrderIdAndDeletedIsFalse(id)
// val pol = polRepository.findAllPurchaseOrderLineInfoByPurchaseOrderIdAndDeletedIsFalse(id)
val stockIn = stockInRepository.findByPurchaseOrderIdAndDeletedFalse(id) val stockIn = stockInRepository.findByPurchaseOrderIdAndDeletedFalse(id)
val stockInLine = if (stockIn == null) listOf() else { val stockInLine = if (stockIn == null) listOf() else {
stockInLineRepository.findAllStockInLineInfoByStockInIdAndDeletedFalse(stockIn.id!!) stockInLineRepository.findAllStockInLineInfoByStockInIdAndDeletedFalse(stockIn.id!!)
@@ -75,13 +82,18 @@ open class PurchaseOrderService(
) )
return result 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 { open fun savePurchaseOrder(request: SavePurchaseOrderRequest): SavePurchaseOrderResponse {
val purchaseOrder = val purchaseOrder =
request.id?.let { purchaseOrderRepository.findById(it).getOrDefault(PurchaseOrder()) } ?: 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 status = request.status?.let { status -> PurchaseOrderStatus.entries.find { it.value == status } }
val type = request.type?.let { type -> PurchaseOrderType.entries.find { it.value == type } } val type = request.type?.let { type -> PurchaseOrderType.entries.find { it.value == type } }
val m18DataLog = request.m18DataLogId?.let { m18DataLogRepository.findById(it).getOrNull() } val m18DataLog = request.m18DataLogId?.let { m18DataLogRepository.findById(it).getOrNull() }
@@ -91,6 +103,7 @@ open class PurchaseOrderService(
purchaseOrder.apply { purchaseOrder.apply {
code = request.code code = request.code
this.supplier = supplier this.supplier = supplier
this.currency = currency
orderDate = request.orderDate orderDate = request.orderDate
estimatedArrivalDate = request.estimatedArrivalDate estimatedArrivalDate = request.estimatedArrivalDate
completeDate = request.completeDate completeDate = request.completeDate
@@ -104,6 +117,7 @@ open class PurchaseOrderService(
id = it.id, id = it.id,
code = it.code, code = it.code,
supplierCode = it.supplier?.code, supplierCode = it.supplier?.code,
currencyCode = it.currency?.code,
orderDate = it.orderDate, orderDate = it.orderDate,
estimatedArrivalDate = it.estimatedArrivalDate, estimatedArrivalDate = it.estimatedArrivalDate,
completeDate = it.completeDate, completeDate = it.completeDate,


+ 2
- 2
src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderLineRequest.kt View File

@@ -9,8 +9,8 @@ data class SavePurchaseOrderLineRequest(
val purchaseOrderId: Long?, val purchaseOrderId: Long?,
val qty: BigDecimal?, val qty: BigDecimal?,
val price: BigDecimal?, val price: BigDecimal?,
val currencyId: Long? = null,
val m18CurrencyId: Long? = null,
// val currencyId: Long? = null,
// val m18CurrencyId: Long? = null,
val status: String?, val status: String?,
val m18DataLogId: Long?, val m18DataLogId: Long?,
) )

+ 1
- 1
src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderLineResponse.kt View File

@@ -7,6 +7,6 @@ data class SavePurchaseOrderLineResponse (
val itemNo: String?, val itemNo: String?,
val qty: BigDecimal?, val qty: BigDecimal?,
val price: BigDecimal?, val price: BigDecimal?,
val currency: String?,
// val currency: String?,
val status: String?, val status: String?,
) )

+ 4
- 1
src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderRequest.kt View File

@@ -7,7 +7,10 @@ import java.time.LocalDateTime
data class SavePurchaseOrderRequest ( data class SavePurchaseOrderRequest (
val id: Long?, val id: Long?,
val code: String?, val code: String?,
val supplierId: Long?,
val supplierId: Long? = null,
val m18SupplierId: Long? = null,
val currencyId: Long? = null,
val m18CurrencyId: Long? = null,
val orderDate: LocalDateTime?, val orderDate: LocalDateTime?,
val estimatedArrivalDate: LocalDateTime?, val estimatedArrivalDate: LocalDateTime?,
val completeDate: LocalDateTime?, val completeDate: LocalDateTime?,


+ 1
- 0
src/main/java/com/ffii/fpsms/modules/purchaseOrder/web/model/SavePurchaseOrderResponse.kt View File

@@ -8,6 +8,7 @@ data class SavePurchaseOrderResponse (
val id: Long?, val id: Long?,
val code: String?, val code: String?,
val supplierCode: String?, val supplierCode: String?,
val currencyCode: String?,
val orderDate: LocalDateTime?, val orderDate: LocalDateTime?,
val estimatedArrivalDate: LocalDateTime?, val estimatedArrivalDate: LocalDateTime?,
val completeDate: LocalDateTime?, val completeDate: LocalDateTime?,


Loading…
Cancel
Save