Commit | Line | Data |
---|---|---|
6a488035 | 1 | <?php |
0cf587a7 EM |
2 | |
3 | /** | |
4 | * Class CRM_Event_Cart_StateMachine_Checkout | |
5 | */ | |
6a488035 | 6 | class CRM_Event_Cart_StateMachine_Checkout extends CRM_Core_StateMachine { |
0cf587a7 EM |
7 | /** |
8 | * @param object $controller | |
9 | * @param const|int $action | |
10 | */ | |
00be9182 | 11 | public function __construct($controller, $action = CRM_Core_Action::NONE) { |
6a488035 TO |
12 | parent::__construct($controller, $action); |
13 | ||
14 | $cart = CRM_Event_Cart_BAO_Cart::find_or_create_for_current_session(); | |
15 | $cart->load_associations(); | |
16 | if ($cart->is_empty()) { | |
17 | CRM_Core_Error::statusBounce(ts("You don't have any events in you cart. Please add some events."), CRM_Utils_System::url('civicrm/event')); | |
18 | } | |
19 | ||
353ffa53 TO |
20 | $pages = array(); |
21 | $is_monetary = FALSE; | |
6a488035 TO |
22 | $is_conference = FALSE; |
23 | foreach ($cart->events_in_carts as $event_in_cart) { | |
24 | if ($event_in_cart->event->is_monetary) { | |
25 | $is_monetary = TRUE; | |
26 | } | |
27 | } | |
28 | $pages["CRM_Event_Cart_Form_Checkout_ParticipantsAndPrices"] = NULL; | |
29 | foreach ($cart->events_in_carts as $event_in_cart) { | |
30 | if ($event_in_cart->is_parent_event()) { | |
31 | foreach ($event_in_cart->participants as $participant) { | |
32 | $pages["CRM_Event_Cart_Form_Checkout_ConferenceEvents_{$event_in_cart->event_id}_{$participant->id}"] = array( | |
33 | 'className' => 'CRM_Event_Cart_Form_Checkout_ConferenceEvents', | |
34 | 'title' => "Select {$event_in_cart->event->title} Events For {$participant->email}", | |
35 | ); | |
36 | } | |
37 | } | |
38 | } | |
39 | $pages["CRM_Event_Cart_Form_Checkout_Payment"] = NULL; | |
40 | $pages["CRM_Event_Cart_Form_Checkout_ThankYou"] = NULL; | |
41 | $this->addSequentialPages($pages, $action); | |
42 | } | |
96025800 | 43 | |
6a488035 | 44 | } |