Ejemplo n.º 1
0
 public function setDefaultValues()
 {
     $this->loadCart();
     $defaults = array();
     foreach ($this->cart->get_main_event_participants() as $participant) {
         $form = $participant->get_form();
         if (empty($participant->email) && !CRM_Event_Cart_Form_Cart::is_administrator() && $participant->get_participant_index() == 1 && $this->cid != 0) {
             $defaults = array();
             $params = array('id' => $this->cid);
             $contact = CRM_Contact_BAO_Contact::retrieve($params, $defaults);
             $participant->contact_id = $this->cid;
             $participant->save();
             $participant->email = self::primary_email_from_contact($contact);
         } elseif ($this->cid == 0 && $participant->contact_id == self::getContactID()) {
             $participant->email = NULL;
             $participant->contact_id = self::find_or_create_contact($this->getContactID());
         }
         $defaults += $form->setDefaultValues();
     }
     return $defaults;
 }
 /**
  * Set default values.
  *
  * @return array
  */
 public function setDefaultValues()
 {
     $this->loadCart();
     $defaults = array();
     foreach ($this->cart->get_main_event_participants() as $participant) {
         $form = $participant->get_form();
         if (empty($participant->email) && !CRM_Event_Cart_Form_Cart::is_administrator() && $participant->get_participant_index() == 1 && $this->cid != 0) {
             $defaults = array();
             $params = array('id' => $this->cid);
             $contact = CRM_Contact_BAO_Contact::retrieve($params, $defaults);
             $participant->contact_id = $this->cid;
             $participant->save();
             $participant->email = self::primary_email_from_contact($contact);
         } elseif ($this->cid == 0 && $participant->contact_id == self::getContactID()) {
             $participant->email = NULL;
             $participant->contact_id = self::find_or_create_contact($this->getContactID());
         }
         $defaults += $form->setDefaultValues();
         //Set price defaults if any
         foreach ($this->cart->get_main_events_in_carts() as $event_in_cart) {
             $event_id = $event_in_cart->event_id;
             $price_set_id = CRM_Event_BAO_Event::usesPriceSet($event_in_cart->event_id);
             if ($price_set_id) {
                 $price_sets = CRM_Price_BAO_PriceSet::getSetDetail($price_set_id, TRUE, TRUE);
                 $price_set = $price_sets[$price_set_id];
                 foreach ($price_set['fields'] as $field) {
                     $options = CRM_Utils_Array::value('options', $field);
                     if (!is_array($options)) {
                         continue;
                     }
                     $field_name = "event_{$event_id}_price_{$field['id']}";
                     foreach ($options as $value) {
                         if ($value['is_default']) {
                             if ($field['html_type'] == 'Checkbox') {
                                 $defaults[$field_name] = 1;
                             } else {
                                 $defaults[$field_name] = $value['id'];
                             }
                         }
                     }
                 }
             }
         }
     }
     return $defaults;
 }