Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. /**
  2. * Calculates shipping cost to ship X grams with EMS.
  3. * @param {Range} range Range or cell containing the shipping weights.
  4. * @param {Number} firstCost Cost of first interval. (Default 20.91)
  5. * @param {Number} additionalCost Cost of additional intervals. (Default 6.31)
  6. * @param {Number} interval Interval size. (Default 500)
  7. * @return Shipping cost in USD.
  8. * @customfunction
  9. */
  10. function EMS_SHIPPING(range, firstCost, additionalCost, interval) {
  11. firstCost = Number(firstCost);
  12.  
  13. if(isNaN(firstCost)) {
  14. firstCost = 20.91;
  15. }
  16.  
  17. additionalCost = Number(additionalCost);
  18.  
  19. if(isNaN(additionalCost)) {
  20. additionalCost = 6.31;
  21. }
  22.  
  23. interval = Number(interval);
  24.  
  25. if(isNaN(interval)) {
  26. interval = 500;
  27. }
  28.  
  29. var totalWeight = 0;
  30.  
  31. if(typeof range == 'number') {
  32. totalWeight = range;
  33. } else {
  34. for(var i = 0; i < range.length; i++) {
  35. totalWeight += parseFloat(range[i]);
  36. }
  37. }
  38.  
  39. var totalCost = 0;
  40. var doneFirst = false;
  41.  
  42. while(totalWeight > 0) {
  43. if(!doneFirst)
  44. totalCost += firstCost;
  45. else
  46. totalCost += additionalCost;
  47.  
  48. totalWeight -= interval;
  49. doneFirst = true;
  50. }
  51.  
  52. return totalCost;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement