コード例 #1
0
ファイル: ezbasket.php プロジェクト: rmiguel/ezpublish
 function itemsInfo()
 {
     $basketInfo = array();
     // Build a price summary for the items based on VAT.
     foreach ($this->items() as $item) {
         $vatValue = $item['vat_value'];
         $itemCount = abs($item['item_count']);
         $priceExVAT = $item['price_ex_vat'];
         $priceIncVAT = $item['price_inc_vat'];
         $totalPriceExVAT = $item['total_price_ex_vat'];
         $totalPriceIncVAT = $item['total_price_inc_vat'];
         if (!isset($basketInfo['price_info'][$vatValue]['price_ex_vat'])) {
             $basketInfo['price_info'][$vatValue]['price_ex_vat'] = $priceExVAT * $itemCount;
             $basketInfo['price_info'][$vatValue]['price_inc_vat'] = $priceIncVAT * $itemCount;
             $basketInfo['price_info'][$vatValue]['price_vat'] = ($priceIncVAT - $priceExVAT) * $itemCount;
             $basketInfo['price_info'][$vatValue]['total_price_ex_vat'] = $totalPriceExVAT;
             $basketInfo['price_info'][$vatValue]['total_price_inc_vat'] = $totalPriceIncVAT;
             $basketInfo['price_info'][$vatValue]['total_price_vat'] = $totalPriceIncVAT - $totalPriceExVAT;
         } else {
             $basketInfo['price_info'][$vatValue]['price_ex_vat'] += $priceExVAT * $itemCount;
             $basketInfo['price_info'][$vatValue]['price_inc_vat'] += $priceIncVAT * $itemCount;
             $basketInfo['price_info'][$vatValue]['price_vat'] += ($priceIncVAT - $priceExVAT) * $itemCount;
             $basketInfo['price_info'][$vatValue]['total_price_ex_vat'] += $totalPriceExVAT;
             $basketInfo['price_info'][$vatValue]['total_price_inc_vat'] += $totalPriceIncVAT;
             $basketInfo['price_info'][$vatValue]['total_price_vat'] += $totalPriceIncVAT - $totalPriceExVAT;
         }
         if (!isset($basketInfo['total_price_info']['total_price_ex_vat'])) {
             $basketInfo['total_price_info']['price_ex_vat'] = $priceExVAT * $itemCount;
             $basketInfo['total_price_info']['price_inc_vat'] = $priceIncVAT * $itemCount;
             $basketInfo['total_price_info']['price_vat'] = ($priceIncVAT - $priceExVAT) * $itemCount;
             $basketInfo['total_price_info']['total_price_ex_vat'] = $totalPriceExVAT;
             $basketInfo['total_price_info']['total_price_inc_vat'] = $totalPriceIncVAT;
             $basketInfo['total_price_info']['total_price_vat'] = $totalPriceIncVAT - $totalPriceExVAT;
         } else {
             $basketInfo['total_price_info']['price_ex_vat'] += $priceExVAT * $itemCount;
             $basketInfo['total_price_info']['price_inc_vat'] += $priceIncVAT * $itemCount;
             $basketInfo['total_price_info']['price_vat'] += ($priceIncVAT - $priceExVAT) * $itemCount;
             $basketInfo['total_price_info']['total_price_ex_vat'] += $totalPriceExVAT;
             $basketInfo['total_price_info']['total_price_inc_vat'] += $totalPriceIncVAT;
             $basketInfo['total_price_info']['total_price_vat'] += $totalPriceIncVAT - $totalPriceExVAT;
         }
     }
     // Add shipping cost to the total items price and add / update additional price information.
     $productCollectionID = $this->attribute('productcollection_id');
     // Add additional calculated information to the basketInfo array, that can be used in the template.
     $shippingUpdateStatus = eZShippingManager::updatePriceInfo($productCollectionID, $basketInfo);
     ksort($basketInfo['price_info']);
     return $basketInfo;
 }