|
|
|
@@ -46,14 +46,58 @@ open class WarehouseService( |
|
|
|
return warehouseRepository.findByCodeAndDeletedIsFalse(code); |
|
|
|
} |
|
|
|
|
|
|
|
open fun markDeleted(id: Long): List<Warehouse> { |
|
|
|
val warehouse = warehouseRepository.findById(id).orElseThrow().apply { |
|
|
|
deleted = true |
|
|
|
} |
|
|
|
|
|
|
|
warehouseRepository.save(warehouse) |
|
|
|
|
|
|
|
return getWarehouses() |
|
|
|
} |
|
|
|
|
|
|
|
open fun saveWarehouse(request: SaveWarehouseRequest): Warehouse { |
|
|
|
val warehouse = request.id?.let { warehouseRepository.findById(it).getOrNull() } ?: Warehouse(); |
|
|
|
|
|
|
|
warehouse.apply { |
|
|
|
code = request.code |
|
|
|
name = request.name |
|
|
|
description = request.description |
|
|
|
capacity = request.capacity |
|
|
|
// Generate code, name, description if not provided but store_id, warehouse, area, slot are provided |
|
|
|
if (request.code == null && request.store_id != null && request.warehouse != null && request.area != null && request.slot != null) { |
|
|
|
code = "${request.store_id}-${request.warehouse}-${request.area}-${request.slot}" |
|
|
|
} else if (request.code != null) { |
|
|
|
code = request.code |
|
|
|
} |
|
|
|
|
|
|
|
if (request.name == null && request.store_id != null && request.warehouse != null) { |
|
|
|
name = "${request.store_id}-${request.warehouse}" |
|
|
|
} else if (request.name != null) { |
|
|
|
name = request.name |
|
|
|
} |
|
|
|
|
|
|
|
if (request.description == null && request.store_id != null && request.warehouse != null) { |
|
|
|
description = "${request.store_id}-${request.warehouse}" |
|
|
|
} else if (request.description != null) { |
|
|
|
description = request.description |
|
|
|
} |
|
|
|
|
|
|
|
if (request.capacity == null) { |
|
|
|
capacity = BigDecimal(10000) |
|
|
|
} else { |
|
|
|
capacity = request.capacity |
|
|
|
} |
|
|
|
|
|
|
|
if (request.order == null && request.id == null) { |
|
|
|
// Set a default order for new warehouses |
|
|
|
val maxOrder = warehouseRepository.findAll().mapNotNull { it.order }.maxOrNull() ?: 0 |
|
|
|
order = maxOrder + 1 |
|
|
|
} else if (request.order != null) { |
|
|
|
order = request.order |
|
|
|
} |
|
|
|
|
|
|
|
if (request.store_id != null) store_id = request.store_id |
|
|
|
if (request.warehouse != null) this.warehouse = request.warehouse |
|
|
|
if (request.area != null) area = request.area |
|
|
|
if (request.slot != null) slot = request.slot |
|
|
|
if (request.stockTakeSection != null) stockTakeSection = request.stockTakeSection |
|
|
|
}; |
|
|
|
|
|
|
|
return warehouseRepository.save(warehouse); |
|
|
|
|