Data.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * CatalogRule data helper
  8. */
  9. namespace Magento\CatalogRule\Helper;
  10. class Data extends \Magento\Framework\App\Helper\AbstractHelper
  11. {
  12. /**
  13. * Algorithm for calculating price by rule
  14. *
  15. * @param string $actionOperator
  16. * @param int $ruleAmount
  17. * @param float $price
  18. * @return float|int
  19. */
  20. public function calcPriceRule($actionOperator, $ruleAmount, $price)
  21. {
  22. $priceRule = 0;
  23. switch ($actionOperator) {
  24. case 'to_fixed':
  25. $priceRule = min($ruleAmount, $price);
  26. break;
  27. case 'to_percent':
  28. $priceRule = $price * $ruleAmount / 100;
  29. break;
  30. case 'by_fixed':
  31. $priceRule = max(0, $price - $ruleAmount);
  32. break;
  33. case 'by_percent':
  34. $priceRule = $price * (1 - $ruleAmount / 100);
  35. break;
  36. }
  37. return $priceRule;
  38. }
  39. }