eZ Publish  [4.0]
ezdefaultbasketinfohandler.php
Go to the documentation of this file.
00001 <?php
00002 //
00003 // Definition of eZDefaultBasketInfoHandler class
00004 //
00005 // Created on: <09-Nov-2006 11:38:45 bjorn>
00006 //
00007 // ## BEGIN COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
00008 // SOFTWARE NAME: eZ Publish
00009 // SOFTWARE RELEASE: 4.0.x
00010 // COPYRIGHT NOTICE: Copyright (C) 1999-2008 eZ Systems AS
00011 // SOFTWARE LICENSE: GNU General Public License v2.0
00012 // NOTICE: >
00013 //   This program is free software; you can redistribute it and/or
00014 //   modify it under the terms of version 2.0  of the GNU General
00015 //   Public License as published by the Free Software Foundation.
00016 //
00017 //   This program is distributed in the hope that it will be useful,
00018 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
00019 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020 //   GNU General Public License for more details.
00021 //
00022 //   You should have received a copy of version 2.0 of the GNU General
00023 //   Public License along with this program; if not, write to the Free
00024 //   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
00025 //   MA 02110-1301, USA.
00026 //
00027 //
00028 // ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
00029 //
00030 
00031 
00032 class eZDefaultBasketInfoHandler
00033 {
00034     /*!
00035      Constructor
00036     */
00037     function eZDefaultBasketInfoHandler()
00038     {
00039     }
00040 
00041     /*!
00042      Calculate additional information about vat and prices for items in the basket.
00043     */
00044     function updatePriceInfo( $productCollectionID, &$basketInfo )
00045     {
00046         $shippingInfo = eZShippingManager::getShippingInfo( $productCollectionID );
00047         $additionalShippingValues = eZShippingManager::vatPriceInfo( $shippingInfo );
00048         $returnValue = false;
00049         foreach ( $additionalShippingValues['shipping_vat_list'] as $vatValue => $additionalShippingValueArray )
00050         {
00051             $shippingExVAT = $additionalShippingValueArray['shipping_ex_vat'];
00052             $shippingIncVAT = $additionalShippingValueArray['shipping_inc_vat'];
00053             $shippingVat = $additionalShippingValueArray['shipping_vat'];
00054 
00055             if ( !isset( $basketInfo['price_info'][$vatValue]['total_price_ex_vat'] ) )
00056             {
00057                 $basketInfo['price_info'][$vatValue]['total_price_ex_vat'] = $shippingExVAT;
00058                 $basketInfo['price_info'][$vatValue]['total_price_inc_vat'] = $shippingIncVAT;
00059                 $basketInfo['price_info'][$vatValue]['total_price_vat'] = $shippingVat;
00060 
00061                 $basketInfo['total_price_info']['total_price_ex_vat'] = $shippingExVAT;
00062                 $basketInfo['total_price_info']['total_price_inc_vat'] = $shippingIncVAT;
00063                 $basketInfo['total_price_info']['total_price_vat'] = $shippingVat;
00064             }
00065             else
00066             {
00067                 $basketInfo['price_info'][$vatValue]['total_price_ex_vat'] += $shippingExVAT;
00068                 $basketInfo['price_info'][$vatValue]['total_price_inc_vat'] += $shippingIncVAT;
00069                 $basketInfo['price_info'][$vatValue]['total_price_vat'] += $shippingVat;
00070 
00071                 $basketInfo['total_price_info']['total_price_ex_vat'] += $shippingExVAT;
00072                 $basketInfo['total_price_info']['total_price_inc_vat'] += $shippingIncVAT;
00073                 $basketInfo['total_price_info']['total_price_vat'] += $shippingVat;
00074             }
00075 
00076             if ( !isset( $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_ex_vat'] ) )
00077             {
00078                 $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_ex_vat'] = $shippingExVAT;
00079                 $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_inc_vat'] = $shippingIncVAT;
00080                 $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_vat'] = ( $shippingIncVAT - $shippingExVAT );
00081             }
00082             else
00083             {
00084                 $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_ex_vat'] += $shippingExVAT;
00085                 $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_inc_vat'] += $shippingIncVAT;
00086                 $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_vat'] += ( $shippingIncVAT - $shippingExVAT );
00087             }
00088 
00089             if ( !isset( $basketInfo['additional_info']['shipping_total']['total_price_ex_vat'] ) )
00090             {
00091                 $basketInfo['additional_info']['shipping_total']['total_price_ex_vat'] = $shippingExVAT;
00092                 $basketInfo['additional_info']['shipping_total']['total_price_inc_vat'] = $shippingIncVAT;
00093                 $basketInfo['additional_info']['shipping_total']['total_price_vat'] = ( $shippingIncVAT - $shippingExVAT );
00094             }
00095             else
00096             {
00097                 $basketInfo['additional_info']['shipping_total']['total_price_ex_vat'] += $shippingExVAT;
00098                 $basketInfo['additional_info']['shipping_total']['total_price_inc_vat'] += $shippingIncVAT;
00099                 $basketInfo['additional_info']['shipping_total']['total_price_vat'] += ( $shippingIncVAT - $shippingExVAT );
00100             }
00101         }
00102 
00103         if ( count( $additionalShippingValues['shipping_vat_list'] ) > 0 )
00104         {
00105             $returnValue = true;
00106         }
00107 
00108         return $returnValue;
00109     }
00110 }
00111 
00112 ?>