You know what definitely never changes? Shipping prices. Famously static, despite all economic conditions and the same across all shipping providers. It doesn’t matter where you’re shipping from, or to, you know exactly what the price will be to ship that package at all times.
Wait, what? You don’t think that’s true? It must be true, because Chris sent us this function, which calculates shipping prices, and it couldn’t be wrong, could it?
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-built_in">double</span> <span class="hljs-title">getShippingCharge</span>(<span class="hljs-params">String shippingType, <span class="hljs-built_in">bool</span> saturday, <span class="hljs-built_in">double</span> subTot</span>)</span>
{
<span class="hljs-built_in">double</span> shCharge = <span class="hljs-number">0.00</span>;
<span class="hljs-keyword">if</span>(shippingType.Equals(<span class="hljs-string">"Ground"</span>))
{
<span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">29.99</span> && subTot > <span class="hljs-number">0</span>)
{
shCharge = <span class="hljs-number">4.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">99.99</span> && subTot > <span class="hljs-number">29.99</span>)
{
shCharge = <span class="hljs-number">7.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">299.99</span> && subTot > <span class="hljs-number">99.99</span>)
{
shCharge = <span class="hljs-number">9.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot > <span class="hljs-number">299.99</span>)
{
shCharge = subTot * <span class="hljs-number">.05</span>;
}
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(shippingType.Equals(<span class="hljs-string">"Two-Day"</span>))
{
<span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">29.99</span> && subTot > <span class="hljs-number">0</span>)
{
shCharge = <span class="hljs-number">14.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">99.99</span> && subTot > <span class="hljs-number">29.99</span>)
{
shCharge = <span class="hljs-number">19.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">299.99</span> && subTot > <span class="hljs-number">99.99</span>)
{
shCharge = <span class="hljs-number">29.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot > <span class="hljs-number">299.99</span>)
{
shCharge = subTot * <span class="hljs-number">.10</span>;
}
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(shippingType.Equals(<span class="hljs-string">"Next Day"</span>))
{
<span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">29.99</span> && subTot > <span class="hljs-number">0</span>)
{
shCharge = <span class="hljs-number">24.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">99.99</span> && subTot > <span class="hljs-number">29.99</span>)
{
shCharge = <span class="hljs-number">34.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">299.99</span> && subTot > <span class="hljs-number">99.99</span>)
{
shCharge = <span class="hljs-number">44.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot > <span class="hljs-number">299.99</span>)
{
shCharge = subTot * <span class="hljs-number">.15</span>;
}
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(shippingType.Equals(<span class="hljs-string">"Next Day a.m."</span>))
{
<span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">29.99</span> && subTot > <span class="hljs-number">0</span>)
{
shCharge = <span class="hljs-number">29.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">99.99</span> && subTot > <span class="hljs-number">29.99</span>)
{
shCharge = <span class="hljs-number">39.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot <= <span class="hljs-number">299.99</span> && subTot > <span class="hljs-number">99.99</span>)
{
shCharge = <span class="hljs-number">49.95</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(subTot > <span class="hljs-number">299.99</span>)
{
shCharge = subTot * <span class="hljs-number">.20</span>;
}
}
<span class="hljs-keyword">return</span> shCharge;
}
Next you’re going to tell me that passing the shipping types around as stringly typed data instead of enums is a mistake, too!
Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!
Source: Read MoreÂ