diff --git a/modules/axelor-open-suite/axelor-account/src/main/java/com/axelor/apps/account/web/InvoiceLineController.java b/modules/axelor-open-suite/axelor-account/src/main/java/com/axelor/apps/account/web/InvoiceLineController.java index 763632f0..cb6130dd 100644 --- a/modules/axelor-open-suite/axelor-account/src/main/java/com/axelor/apps/account/web/InvoiceLineController.java +++ b/modules/axelor-open-suite/axelor-account/src/main/java/com/axelor/apps/account/web/InvoiceLineController.java @@ -40,6 +40,7 @@ import com.axelor.rpc.Context; import com.google.common.base.Strings; import com.google.inject.Singleton; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -401,4 +402,23 @@ public class InvoiceLineController { } response.setValue("fixedAssetCategory", fixedAssetCategory); } + + + public void updateQtyUg(ActionRequest request, ActionResponse response) throws AxelorException{ + Context context = request.getContext(); + InvoiceLine invoiceLine = context.asType(InvoiceLine.class); + + BigDecimal qtyUg = invoiceLine.getProduct().getUg(); + BigDecimal qty = invoiceLine.getQty(); + BigDecimal totalQty = qty.add(qty.multiply(qtyUg).divide(new BigDecimal(100), 4,RoundingMode.HALF_EVEN)); + Product product = invoiceLine.getProduct(); + if(product.getUg() != null && product.getUg().compareTo(BigDecimal.ZERO) > 0){ + BigDecimal ug = invoiceLine.getProduct().getUg().divide(new BigDecimal(100), 10, RoundingMode.HALF_EVEN); + BigDecimal ugAmount = ug.divide(ug.add(BigDecimal.ONE),10, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)); + response.setValue("discountTypeSelect", 1); + response.setValue("discountAmount", ugAmount); + response.setValue("qty", totalQty); + } + } + } diff --git a/modules/axelor-open-suite/axelor-base/src/main/resources/domains/Product.xml b/modules/axelor-open-suite/axelor-base/src/main/resources/domains/Product.xml index b52f113d..1b1578e8 100644 --- a/modules/axelor-open-suite/axelor-base/src/main/resources/domains/Product.xml +++ b/modules/axelor-open-suite/axelor-base/src/main/resources/domains/Product.xml @@ -141,6 +141,10 @@ + + + + 0){ + BigDecimal ug = saleOrderLine.getProduct().getUg().divide(new BigDecimal(100), 10, RoundingMode.HALF_EVEN); + BigDecimal ugAmount = ug.divide(ug.add(BigDecimal.ONE),10, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)); + response.setValue("discountTypeSelect", 1); + response.setValue("discountAmount", ugAmount); + response.setValue("qty", totalQty); + } + } + public void resetPackLine(ActionRequest request, ActionResponse response) throws AxelorException { Context context = request.getContext();