diff --git a/src/main/java/tech/iBeans/POSware/Lite/transact.java b/src/main/java/tech/iBeans/POSware/Lite/transact.java index f6e664d..884f698 100644 --- a/src/main/java/tech/iBeans/POSware/Lite/transact.java +++ b/src/main/java/tech/iBeans/POSware/Lite/transact.java @@ -8,6 +8,7 @@ package tech.iBeans.POSware.Lite; import tech.iBeans.POSware.Lite.inventory.*; import tech.iBeans.POSware.Lite.receipt.*; +import java.text.DecimalFormat; // Import global modules. import java.util.*; @@ -118,31 +119,36 @@ public class transact { if (item_details != null) { if (item_details.get("Price") != null) { - item_pricing.put("unit", Float.valueOf(item_details.get("Price").toString())); - item_pricing.put("subtotal", Float.valueOf(item_details.get("Price").toString()) * QUANTITY); - item_pricing.put("total", Float.valueOf( item_pricing.get("subtotal"))); + // Set up the decimal format. + DecimalFormat FORMAT_DECIMAL = new DecimalFormat("#.00"); + + item_pricing.put("unit", Float.valueOf(FORMAT_DECIMAL.format(Float.valueOf(item_details.get("Price").toString())))); + item_pricing.put("subtotal", Float.valueOf(FORMAT_DECIMAL.format(Float.parseFloat(item_details.get("Price").toString()) * QUANTITY))); + item_pricing.put("total", Float.valueOf(FORMAT_DECIMAL.format(item_pricing.get("subtotal")))); if (item_details.get("Tax") != null) { - item_pricing.put("tax", Float.valueOf(item_details.get("Tax").toString()) * QUANTITY); + item_pricing.put("tax", Float.valueOf(FORMAT_DECIMAL.format(Float.valueOf(item_details.get("Tax").toString()) * QUANTITY))); item_pricing.put("total", Float.valueOf(item_pricing.get("total").toString()) + Float.valueOf(item_pricing.get("tax").toString())); }; if (item_details.get("Discount") != null) { if (Integer.parseInt(item_details.get("Discount").toString()) > 0) { - item_pricing.put("discount", - QUANTITY * Float.parseFloat(item_details.get("Price").toString()) * (1 - (Float.parseFloat(item_details.get("Discount").toString()) / 100)) - ); + item_pricing.put("discount", Float.valueOf(FORMAT_DECIMAL.format( + QUANTITY * Float.parseFloat(item_details.get("Price").toString()) * (1 - (Float.parseFloat(item_details.get("Discount").toString()) / 100)) + ))); } else if (Integer.parseInt(item_details.get("Discount").toString()) < 0) { - item_pricing.put("discount", + item_pricing.put("discount", Float.valueOf(FORMAT_DECIMAL.format( QUANTITY * Float.parseFloat(item_details.get("Price").toString()) * (0 - (Float.parseFloat(item_details.get("Discount").toString()) / 100)) - ); + ))); } else { item_pricing.put("discount", (float) 0); }; - item_pricing.put("total", Float.valueOf(item_pricing.get("total").toString()) - Float.valueOf(item_pricing.get("discount").toString())); + item_pricing.put("total", Float.valueOf(FORMAT_DECIMAL.format(Float.valueOf(item_pricing.get("total").toString()) - Float.valueOf(item_pricing.get("discount").toString())))); }; }; }; + + System.out.println(item_pricing); // Return the data. return item_pricing; @@ -158,7 +164,7 @@ public class transact { */ var action_pricing = calculate(SKU, QUANTITY); - receipt.action(SKU, QUANTITY, action_pricing.get("unit"), action_pricing.get("total")); + receipt.action(inventory.collate().get(inventory.list().indexOf(SKU)), QUANTITY, action_pricing.get("unit"), action_pricing.get("total")); }; public static boolean add(String SKU, int QUANTITY) {