rounding numbers attempt

This commit is contained in:
buzzcode2007 2024-02-27 19:17:13 +08:00
parent 5c5c5552a8
commit bc5c0a7030

View file

@ -8,6 +8,7 @@ package tech.iBeans.POSware.Lite;
import tech.iBeans.POSware.Lite.inventory.*; import tech.iBeans.POSware.Lite.inventory.*;
import tech.iBeans.POSware.Lite.receipt.*; import tech.iBeans.POSware.Lite.receipt.*;
import java.text.DecimalFormat;
// Import global modules. // Import global modules.
import java.util.*; import java.util.*;
@ -118,31 +119,36 @@ public class transact {
if (item_details != null) { if (item_details != null) {
if (item_details.get("Price") != null) { if (item_details.get("Price") != null) {
item_pricing.put("unit", Float.valueOf(item_details.get("Price").toString())); // Set up the decimal format.
item_pricing.put("subtotal", Float.valueOf(item_details.get("Price").toString()) * QUANTITY); DecimalFormat FORMAT_DECIMAL = new DecimalFormat("#.00");
item_pricing.put("total", Float.valueOf( item_pricing.get("subtotal")));
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) { 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())); 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 (item_details.get("Discount") != null) {
if (Integer.parseInt(item_details.get("Discount").toString()) > 0) { 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()) * (1 - (Float.parseFloat(item_details.get("Discount").toString()) / 100)) 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) { } 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)) QUANTITY * Float.parseFloat(item_details.get("Price").toString()) * (0 - (Float.parseFloat(item_details.get("Discount").toString()) / 100))
); )));
} else { } else {
item_pricing.put("discount", (float) 0); 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 the data.
return item_pricing; return item_pricing;
@ -158,7 +164,7 @@ public class transact {
*/ */
var action_pricing = calculate(SKU, QUANTITY); 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) { public static boolean add(String SKU, int QUANTITY) {