1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_CatalogRule
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * CatalogRule data helper
29: */
30: class Mage_CatalogRule_Helper_Data extends Mage_Core_Helper_Abstract
31: {
32: /**
33: * Algorithm for calculating price rule
34: *
35: * @param string $actionOperator
36: * @param int $ruleAmount
37: * @param float $price
38: * @return float|int
39: */
40: public function calcPriceRule($actionOperator, $ruleAmount, $price)
41: {
42: $priceRule = 0;
43: switch ($actionOperator) {
44: case 'to_fixed':
45: $priceRule = min($ruleAmount, $price);
46: break;
47: case 'to_percent':
48: $priceRule = $price * $ruleAmount / 100;
49: break;
50: case 'by_fixed':
51: $priceRule = max(0, $price - $ruleAmount);
52: break;
53: case 'by_percent':
54: $priceRule = $price * (1 - $ruleAmount / 100);
55: break;
56: }
57: return $priceRule;
58: }
59: }
60: