Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE FUNCTION eve.fooPrice(categoryName VARCHAR(100), systemPrice DECIMAL(16,2), regionPrice DECIMAL(16,2)) RETURNS DECIMAL(16,2)
- BEGIN
- DECLARE basePrice DECIMAL(16,2);
- DECLARE workPrice DECIMAL(16,2);
- DECLARE finalPrice DECIMAL(16,2);
- DECLARE RoundFactor INT(11);
- SELECT IF(IFNULL(systemPrice,0)=0,IFNULL(regionPrice,0.0),systemPrice) INTO basePrice;
- SET workPrice=basePrice*2;
- CASE
- WHEN categoryName='Charge' THEN SET workPrice=basePrice*2;
- WHEN basePrice < 20000 THEN SET workPrice=basePrice*5;
- WHEN basePrice < 25000 THEN SET workPrice=100000;
- WHEN basePrice < 200000 THEN SET workPrice=basePrice* 4;
- WHEN basePrice < 266667 THEN SET workPrice=800000;
- WHEN basePrice < 2000000 THEN SET workPrice=basePrice* 3;
- WHEN basePrice < 3000000 THEN SET workPrice=6000000;
- WHEN basePrice < 20000000 THEN SET workPrice=basePrice* 2;
- WHEN basePrice < 26666667 THEN SET workPrice=40000000;
- WHEN basePrice < 200000000 THEN SET workPrice=basePrice* 1.5;
- WHEN basePrice < 230769231 THEN SET workPrice=300000000;
- ELSE SET workPrice=basePrice* 1.3;
- END CASE;
- SET roundFactor=(LOG10(workPrice)*-1)+1;
- SET finalPrice=ROUND(workPrice,roundFactor);
- RETURN finalPrice;
- END
Advertisement
Add Comment
Please, Sign In to add comment