Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

46 linhas
1.2KB

  1. <?php
  2. namespace common\logic\Producer\ProducerPriceRange;
  3. use common\helpers\Price;
  4. use common\logic\BaseService;
  5. use common\logic\RepositoryInterface;
  6. class ProducerPriceRangeRepository extends BaseService implements RepositoryInterface
  7. {
  8. /**
  9. * Retourne les options de base nécessaires à la fonction de recherche.
  10. *
  11. */
  12. public function defaultOptionsSearch(): array
  13. {
  14. return [
  15. 'with' => [],
  16. 'join_with' => [],
  17. 'orderby' => '',
  18. 'attribute_id_producer' => ''
  19. ];
  20. }
  21. public function query()
  22. {
  23. return ProducerPriceRange::find()->orderBy('range_begin ASC');
  24. }
  25. public function getAmountToBeBilledByTurnover(float $turnover, $format = false)
  26. {
  27. $amountToBeBilled = 0;
  28. $producerPriceRangeArray = ProducerPriceRange::find()->all();
  29. foreach ($producerPriceRangeArray as $priceRange) {
  30. if ($turnover >= $priceRange->range_begin && $turnover < $priceRange->range_end) {
  31. $amountToBeBilled = $priceRange->price;
  32. }
  33. }
  34. if ($format) {
  35. return Price::format($amountToBeBilled, 0);
  36. } else {
  37. return $amountToBeBilled;
  38. }
  39. }
  40. }