}
shippingOrderTotal = shippingTotal - shippingDiscountTotal;
}
private float calculateShippingTotal(ShippingMethod shippingMethod) {
CustomerAddress address = getEffectiveShippingAddress();
Iterator<?> iterator = shippingMethod.getShippingMethodRegions().iterator();
ShippingMethodRegion shippingMethodRegion = null;
boolean found = false;
while (iterator.hasNext() && !found) {
ShippingMethodRegion smRegion = (ShippingMethodRegion) iterator.next();
if (smRegion.getPublished() == Constants.PUBLISHED_NO) {
continue;
}
if (smRegion.getShippingRegion().getPublished() == Constants.PUBLISHED_NO) {
continue;
}
if (smRegion.getShippingRegion().getSystemRecord() == Constants.VALUE_YES) {
shippingMethodRegion = smRegion;
}
Iterator<?> countries = smRegion.getShippingRegion().getCountries().iterator();
while (countries.hasNext()) {
Country country = (Country) countries.next();
if (country.getCountryId().equals(address.getCountry().getCountryId())) {
shippingMethodRegion = smRegion;
found = true;
break;
}
}
if (!found) {
Iterator<?> states = smRegion.getShippingRegion().getStates().iterator();
while (states.hasNext()) {
State state = (State) states.next();
if (state.getStateId().equals(address.getState().getStateId())) {
shippingMethodRegion = smRegion;
found = true;
break;
}
}
}
String zipCode = address.getCustZipCode();
if (!found && !Format.isNullOrEmpty(zipCode)) {
for (ShippingRegionZip shippingRegionZip : smRegion.getShippingRegion().getZipCodes()) {
if (shippingRegionZip.getZipCodeExpression() == Constants.VALUE_YES) {
if (zipCode.matches(shippingRegionZip.getZipCodeStart())) {
shippingMethodRegion = smRegion;