return context;
}
protected void setTaxSums(Order order) {
if (order.getTaxOverride()) {
Money zeroMoney = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency());
for (FulfillmentGroup fg : order.getFulfillmentGroups()) {
if (fg.getTaxes() != null) {
fg.getTaxes().clear();
}
fg.setTotalTax(zeroMoney);
for (FulfillmentGroupItem fgi : fg.getFulfillmentGroupItems()) {
if (fgi.getTaxes() != null) {
fgi.getTaxes().clear();
}
fgi.setTotalTax(zeroMoney);
}
for (FulfillmentGroupFee fee : fg.getFulfillmentGroupFees()) {
if (fee.getTaxes() != null) {
fee.getTaxes().clear();
}
fee.setTotalTax(zeroMoney);
}
fg.setTotalFulfillmentGroupTax(zeroMoney);
fg.setTotalItemTax(zeroMoney);
fg.setTotalFeeTax(zeroMoney);
}
order.setTotalTax(zeroMoney);
return;
}
Money orderTotalTax = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency());
for (FulfillmentGroup fg : order.getFulfillmentGroups()) {
Money fgTotalFgTax = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency());
Money fgTotalItemTax = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency());
Money fgTotalFeeTax = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency());
// Add in all FG specific taxes (such as shipping tax)
if (fg.getTaxes() != null) {
for (TaxDetail tax : fg.getTaxes()) {
fgTotalFgTax = fgTotalFgTax.add(tax.getAmount());
}
}
for (FulfillmentGroupItem item : fg.getFulfillmentGroupItems()) {
Money itemTotalTax = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency());
// Add in all taxes for this item
if (item.getTaxes() != null) {
for (TaxDetail tax : item.getTaxes()) {
itemTotalTax = itemTotalTax.add(tax.getAmount());
}
}
item.setTotalTax(itemTotalTax);
fgTotalItemTax = fgTotalItemTax.add(itemTotalTax);
}
for (FulfillmentGroupFee fee : fg.getFulfillmentGroupFees()) {
Money feeTotalTax = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency());
// Add in all taxes for this fee
if (fee.getTaxes() != null) {
for (TaxDetail tax : fee.getTaxes()) {
feeTotalTax = feeTotalTax.add(tax.getAmount());
}
}
fee.setTotalTax(feeTotalTax);
fgTotalFeeTax = fgTotalFeeTax.add(feeTotalTax);
}
Money fgTotalTax = BroadleafCurrencyUtils.getMoney(BigDecimal.ZERO, order.getCurrency()).add(fgTotalFgTax).add(fgTotalItemTax).add(fgTotalFeeTax);
// Set the fulfillment group tax sums
fg.setTotalFulfillmentGroupTax(fgTotalFgTax);
fg.setTotalItemTax(fgTotalItemTax);
fg.setTotalFeeTax(fgTotalFeeTax);