Ejemplo n.º 1
0
 public function total_price()
 {
     $total = $this->total_purchase_price();
     $items = $this->available_items();
     $items = Model_Shipping_Item::filter_discounted_items($items, $total);
     $groups = Array_Util::group_by($items, function ($item) {
         return $item->group_key();
     });
     $group_prices = array_map(function ($grouped_items) use($total) {
         $prices = Model_Shipping_Item::relative_prices($grouped_items);
         return Jam_Price::sum($prices, $total->currency(), $total->monetary(), $total->display_currency());
     }, $groups);
     return Jam_Price::sum($group_prices, $total->currency(), $total->monetary(), $total->display_currency());
 }
Ejemplo n.º 2
0
 /**
  * @dataProvider data_relative_prices
  * @covers Model_Shipping_Item::relative_prices
  */
 public function test_relative_prices($params, $expected)
 {
     $items = $this->getMockModelArray('shipping_item', $params);
     $prices = Model_Shipping_Item::relative_prices($items);
     $this->assertEquals($expected, $prices);
 }