Set dynamic decimal digits for Sale WorkFlow
This commit is contained in:
@@ -30,6 +30,8 @@ import com.axelor.apps.base.db.repo.ProductRepository;
|
||||
import com.axelor.apps.base.service.CurrencyService;
|
||||
import com.axelor.apps.base.service.PriceListService;
|
||||
import com.axelor.apps.base.service.ProductMultipleQtyService;
|
||||
import com.axelor.apps.base.service.app.AppBaseService;
|
||||
import com.axelor.apps.base.service.app.AppService;
|
||||
import com.axelor.apps.base.service.tax.AccountManagementService;
|
||||
import com.axelor.apps.base.service.tax.FiscalPositionService;
|
||||
import com.axelor.apps.sale.db.PackLine;
|
||||
@@ -438,8 +440,10 @@ public class SaleOrderLineServiceImpl implements SaleOrderLineService {
|
||||
|
||||
BigDecimal price = inAti ? saleOrderLine.getInTaxPrice() : saleOrderLine.getPrice();
|
||||
|
||||
int scale = Beans.get(AppBaseService.class).getNbDecimalDigitForSalePrice();
|
||||
|
||||
return priceListService.computeDiscount(
|
||||
price, saleOrderLine.getDiscountTypeSelect(), saleOrderLine.getDiscountAmount());
|
||||
price, saleOrderLine.getDiscountTypeSelect(), saleOrderLine.getDiscountAmount()).setScale(scale);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.axelor.apps.account.db.TaxLine;
|
||||
import com.axelor.apps.base.db.Product;
|
||||
import com.axelor.apps.base.db.repo.PriceListLineRepository;
|
||||
import com.axelor.apps.base.db.repo.ProductRepository;
|
||||
import com.axelor.apps.base.service.app.AppBaseService;
|
||||
import com.axelor.apps.base.service.tax.FiscalPositionService;
|
||||
import com.axelor.apps.sale.db.SaleOrder;
|
||||
import com.axelor.apps.sale.db.SaleOrderLine;
|
||||
@@ -390,13 +391,15 @@ public class SaleOrderLineController {
|
||||
Context context = request.getContext();
|
||||
SaleOrderLine saleOrderLine = context.asType(SaleOrderLine.class);
|
||||
|
||||
int scale = Beans.get(AppBaseService.class).getNbDecimalDigitForSalePrice();
|
||||
|
||||
BigDecimal qtyUg = saleOrderLine.getProduct().getUg();
|
||||
BigDecimal qty = saleOrderLine.getQty();
|
||||
BigDecimal totalQty = qty.add(qty.multiply(qtyUg).divide(new BigDecimal(100), 4,RoundingMode.HALF_EVEN));
|
||||
Product product = saleOrderLine.getProduct();
|
||||
if(product.getUg() != null && product.getUg().compareTo(BigDecimal.ZERO) > 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));
|
||||
BigDecimal ug = saleOrderLine.getProduct().getUg().divide(new BigDecimal(100), scale, RoundingMode.HALF_EVEN);
|
||||
BigDecimal ugAmount = ug.divide(ug.add(BigDecimal.ONE),scale, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100));
|
||||
response.setValue("discountTypeSelect", 1);
|
||||
response.setValue("discountAmount", ugAmount);
|
||||
response.setValue("qty", totalQty);
|
||||
|
||||
Reference in New Issue
Block a user