|
|
|
@@ -1564,7 +1564,8 @@ open class ProductionScheduleService( |
|
|
|
val matSheet = workbook.createSheet(UiText.t("物料用量總結", "Material usage summary")) |
|
|
|
|
|
|
|
val matHeaders = listOf( |
|
|
|
UiText.t("物料編號", "Material code"), UiText.t("物料名稱", "Material name"), UiText.t("需求量", "Required qty"), UiText.t("總用量", "Total usage"), |
|
|
|
UiText.t("物料編號", "Material code"), UiText.t("物料名稱", "Material name"), |
|
|
|
UiText.t("需採購/生產數量", "Qty to purchase/produce"), UiText.t("總用量", "Total usage"), |
|
|
|
UiText.t("單位", "UOM"), UiText.t("數量(採購單位)", "Qty (purchase UOM)"), UiText.t("採購單位", "Purchase UOM"), |
|
|
|
UiText.t("已採購數量", "Purchased qty"), UiText.t("庫存數", "On hand"), UiText.t("庫存單位", "Stock UOM"), |
|
|
|
UiText.t("相關成品編號", "Related finished-good code"), UiText.t("相關成品名稱", "Related finished-good name") |
|
|
|
@@ -1586,12 +1587,13 @@ open class ProductionScheduleService( |
|
|
|
val purchaseQtyNeed = asDouble(rowData["purchaseQtyNeed"]) |
|
|
|
val purchased = asDouble(rowData["purchasedQty"]) |
|
|
|
val onHand = asDouble(rowData["onHandQty"]) |
|
|
|
val requiredQty = (totalNeed - purchased - onHand).coerceAtLeast(0.0) |
|
|
|
// 總用量 − 庫存;不扣在途採購。負數代表有餘量。 |
|
|
|
val qtyToPurchaseOrProduce = totalNeed - onHand |
|
|
|
|
|
|
|
val values = listOf<Any>( |
|
|
|
rowData["matCode"]?.toString() ?: "", |
|
|
|
rowData["matName"]?.toString() ?: "", |
|
|
|
requiredQty, |
|
|
|
qtyToPurchaseOrProduce, |
|
|
|
totalNeed, |
|
|
|
rowData["uomName"]?.toString() ?: "", |
|
|
|
purchaseQtyNeed, |
|
|
|
@@ -1628,7 +1630,7 @@ open class ProductionScheduleService( |
|
|
|
// Column widths for material summary |
|
|
|
matSheet.setColumnWidth(0, 20 * 256) |
|
|
|
matSheet.setColumnWidth(1, 50 * 256) // 物料名稱 |
|
|
|
matSheet.setColumnWidth(2, 16 * 256) |
|
|
|
matSheet.setColumnWidth(2, 22 * 256) // 需採購/生產數量 |
|
|
|
matSheet.setColumnWidth(3, 16 * 256) |
|
|
|
matSheet.setColumnWidth(4, 12 * 256) |
|
|
|
matSheet.setColumnWidth(5, 16 * 256) |
|
|
|
|