- Fixed #16160: Call to undefined function ezi18n()
[tinyz:tinyz.git] / kernel / shop / confirmorder.php
1 <?php
2 //
3 // Created on: <04-Dec-2002 16:15:49 bf>
4 //
5 // ## BEGIN COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
6 // SOFTWARE NAME: eZ Publish
7 // SOFTWARE RELEASE: 4.1.x
8 // COPYRIGHT NOTICE: Copyright (C) 1999-2010 eZ Systems AS
9 // SOFTWARE LICENSE: GNU General Public License v2.0
10 // NOTICE: >
11 //   This program is free software; you can redistribute it and/or
12 //   modify it under the terms of version 2.0  of the GNU General
13 //   Public License as published by the Free Software Foundation.
14 //
15 //   This program is distributed in the hope that it will be useful,
16 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
17 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 //   GNU General Public License for more details.
19 //
20 //   You should have received a copy of version 2.0 of the GNU General
21 //   Public License along with this program; if not, write to the Free
22 //   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
23 //   MA 02110-1301, USA.
24 //
25 //
26 // ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
27 //
28
29 $http = eZHTTPTool::instance();
30 $module = $Params['Module'];
31
32 require_once( 'kernel/common/template.php' );
33 $tpl = templateInit();
34 $tpl->setVariable( "module_name", 'shop' );
35
36 $orderID = $http->sessionVariable( 'MyTemporaryOrderID' );
37
38 $order = eZOrder::fetch( $orderID );
39 if ( !is_object( $order ) )
40     return $Module->handleError( EZ_ERROR_KERNEL_NOT_AVAILABLE, 'kernel' );
41
42 if ( $order instanceof eZOrder )
43 {
44     if ( $http->hasPostVariable( "ConfirmOrderButton" ) )
45     {
46         $order->detachProductCollection();
47         $ini = eZINI::instance();
48         if ( $ini->variable( 'ShopSettings', 'ClearBasketOnCheckout' ) == 'enabled' )
49         {
50             $basket = eZBasket::currentBasket();
51             $basket->remove();
52         }
53         $module->redirectTo( '/shop/checkout/' );
54         return;
55     }
56
57     if ( $http->hasPostVariable( "CancelButton" ) )
58     {
59         $order->purge( /*$removeCollection = */ false );
60         $module->redirectTo( '/shop/basket/' );
61         return;
62     }
63
64     $tpl->setVariable( "order", $order );
65 }
66
67 $basket = eZBasket::currentBasket();
68 $basket->updatePrices();
69
70 $operationResult = eZOperationHandler::execute( 'shop', 'confirmorder', array( 'order_id' => $order->attribute( 'id' ) ) );
71
72 switch( $operationResult['status'] )
73 {
74     case eZModuleOperationInfo::STATUS_CONTINUE:
75     {
76         if ( $operationResult != null &&
77              !isset( $operationResult['result'] ) &&
78              ( !isset( $operationResult['redirect_url'] ) || $operationResult['redirect_url'] == null ) )
79         {
80             $order = eZOrder::fetch( $order->attribute( 'id' ) );
81             $tpl->setVariable( "order", $order );
82
83             $Result = array();
84             $Result['content'] = $tpl->fetch( "design:shop/confirmorder.tpl" );
85             $Result['path'] = array( array( 'url' => false,
86                                             'text' => ezpI18n::translate( 'kernel/shop', 'Confirm order' ) ) );
87         }
88     }break;
89     case eZModuleOperationInfo::STATUS_HALTED:
90     {
91         if (  isset( $operationResult['redirect_url'] ) )
92         {
93             $module->redirectTo( $operationResult['redirect_url'] );
94             return;
95         }
96         else if ( isset( $operationResult['result'] ) )
97         {
98             $result = $operationResult['result'];
99             $resultContent = false;
100             if ( is_array( $result ) )
101             {
102                 if ( isset( $result['content'] ) )
103                 {
104                     $resultContent = $result['content'];
105                 }
106                 if ( isset( $result['path'] ) )
107                 {
108                     $Result['path'] = $result['path'];
109                 }
110             }
111             else
112             {
113                 $resultContent = $result;
114             }
115             $Result['content'] = $resultContent;
116         }
117     }break;
118     case eZModuleOperationInfo::STATUS_CANCELLED:
119     {
120         $Result = array();
121         if ( isset( $operationResult['result']['content'] ) )
122             $Result['content'] = $operationResult['result']['content'];
123         else
124             $Result['content'] = ezpI18n::translate( 'kernel/shop', "The confirm order operation was canceled. Try to checkout again." );
125
126         $Result['path'] = array( array( 'url' => false,
127                                         'text' => ezpI18n::translate( 'kernel/shop', 'Confirm order' ) ) );
128     }
129
130 }
131
132 /*
133 $Result = array();
134 $Result['content'] = $tpl->fetch( "design:shop/confirmorder.tpl" );
135 $Result['path'] = array( array( 'url' => false,
136                                 'text' => ezpI18n::translate( 'kernel/shop', 'Confirm order' ) ) );
137 */
138 ?>