Merge remote-tracking branch 'upstream/4.4' into 4.4-master-2014-01-27-22-52-52
[civicrm-core.git] / CRM / Event / Cart / StateMachine / Checkout.php
1 <?php
2 class CRM_Event_Cart_StateMachine_Checkout extends CRM_Core_StateMachine {
3 function __construct($controller, $action = CRM_Core_Action::NONE) {
4 parent::__construct($controller, $action);
5
6 $cart = CRM_Event_Cart_BAO_Cart::find_or_create_for_current_session();
7 $cart->load_associations();
8 if ($cart->is_empty()) {
9 CRM_Core_Error::statusBounce(ts("You don't have any events in you cart. Please add some events."), CRM_Utils_System::url('civicrm/event'));
10 }
11
12 $pages = array();
13 $is_monetary = FALSE;
14 $is_conference = FALSE;
15 foreach ($cart->events_in_carts as $event_in_cart) {
16 if ($event_in_cart->event->is_monetary) {
17 $is_monetary = TRUE;
18 }
19 }
20 $pages["CRM_Event_Cart_Form_Checkout_ParticipantsAndPrices"] = NULL;
21 foreach ($cart->events_in_carts as $event_in_cart) {
22 if ($event_in_cart->is_parent_event()) {
23 foreach ($event_in_cart->participants as $participant) {
24 $pages["CRM_Event_Cart_Form_Checkout_ConferenceEvents_{$event_in_cart->event_id}_{$participant->id}"] = array(
25 'className' => 'CRM_Event_Cart_Form_Checkout_ConferenceEvents',
26 'title' => "Select {$event_in_cart->event->title} Events For {$participant->email}",
27 );
28 }
29 }
30 }
31 $pages["CRM_Event_Cart_Form_Checkout_Payment"] = NULL;
32 $pages["CRM_Event_Cart_Form_Checkout_ThankYou"] = NULL;
33 $this->addSequentialPages($pages, $action);
34 }
35 }
36