FooDownunder

FooPrices

Jul 5th, 2015
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. CREATE FUNCTION eve.fooPrice(categoryName VARCHAR(100), systemPrice DECIMAL(16,2), regionPrice DECIMAL(16,2)) RETURNS DECIMAL(16,2)
  2. BEGIN
  3. DECLARE basePrice DECIMAL(16,2);
  4. DECLARE workPrice DECIMAL(16,2);
  5. DECLARE finalPrice DECIMAL(16,2);
  6. DECLARE RoundFactor INT(11);
  7. SELECT IF(IFNULL(systemPrice,0)=0,IFNULL(regionPrice,0.0),systemPrice) INTO basePrice;
  8. SET workPrice=basePrice*2;
  9. CASE
  10. WHEN categoryName='Charge' THEN SET workPrice=basePrice*2;
  11. WHEN basePrice < 20000 THEN SET workPrice=basePrice*5;
  12. WHEN basePrice < 25000 THEN SET workPrice=100000;
  13. WHEN basePrice < 200000 THEN SET workPrice=basePrice* 4;
  14. WHEN basePrice < 266667 THEN SET workPrice=800000;
  15. WHEN basePrice < 2000000 THEN SET workPrice=basePrice* 3;
  16. WHEN basePrice < 3000000 THEN SET workPrice=6000000;
  17. WHEN basePrice < 20000000 THEN SET workPrice=basePrice* 2;
  18. WHEN basePrice < 26666667 THEN SET workPrice=40000000;
  19. WHEN basePrice < 200000000 THEN SET workPrice=basePrice* 1.5;
  20. WHEN basePrice < 230769231 THEN SET workPrice=300000000;
  21. ELSE SET workPrice=basePrice* 1.3;
  22. END CASE;
  23. SET roundFactor=(LOG10(workPrice)*-1)+1;
  24. SET finalPrice=ROUND(workPrice,roundFactor);
  25. RETURN finalPrice;
  26. END
Advertisement
Add Comment
Please, Sign In to add comment