addAllowedTicketType($ticket_type); } } if(isset($params['badge_features'])){ foreach ($params['badge_features'] as $feature){ $promo_code->addBadgeFeatureType($feature); } } if(isset($data['external_id'])){ $promo_code->setExternalId(trim($params['external_id'])); } if(isset($data['code'])) $promo_code->setCode(trim($data['code'])); if(isset($data['quantity_available'])) $promo_code->setQuantityAvailable(intval($data['quantity_available'])); if(isset($data['valid_since_date'])) { $val = intval($data['valid_since_date']); if($val > 0) { $val = new \DateTime("@$val"); $val->setTimezone($summit->getTimeZone()); $promo_code->setValidSinceDate($summit->convertDateFromTimeZone2UTC($val)); } else{ $promo_code->setValidSinceDate(null); } } if(isset($data['valid_until_date'])) { $val = intval($data['valid_until_date']); if($val > 0) { $val = new \DateTime("@$val"); $val->setTimezone($summit->getTimeZone()); $promo_code->setValidUntilDate($summit->convertDateFromTimeZone2UTC($val)); } else{ $promo_code->setValidUntilDate(null); } } switch ($data['class_name']){ case SummitRegistrationDiscountCode::ClassName:{ if(isset($data['amount'])) $promo_code->setAmount(floatval($data['amount'])); if(isset($data['rate'])) $promo_code->setRate(floatval($data['rate'])); } break; case MemberSummitRegistrationPromoCode::ClassName:{ if(isset($params['owner'])) $promo_code->setOwner($params['owner']); if(isset($data['type'])) $promo_code->setType($data['type']); if(isset($data['first_name'])) $promo_code->setFirstName(trim($data['first_name'])); if(isset($data['last_name'])) $promo_code->setLastName(trim($data['last_name'])); if(isset($data['email'])) $promo_code->setEmail(trim($data['email'])); } break; case SpeakerSummitRegistrationPromoCode::ClassName:{ if(isset($data['type'])) $promo_code->setType($data['type']); if(isset($params['speaker'])) $promo_code->setSpeaker($params['speaker']); } break; case SponsorSummitRegistrationPromoCode::ClassName:{ if(isset($params['owner'])) $promo_code->setOwner($params['owner']); if(isset($data['type'])) $promo_code->setType($data['type']); if(isset($data['first_name'])) $promo_code->setFirstName(trim($data['first_name'])); if(isset($data['last_name'])) $promo_code->setLastName(trim($data['last_name'])); if(isset($data['email'])) $promo_code->setEmail(trim($data['email'])); $promo_code->setSponsor($params['sponsor']); } break; case MemberSummitRegistrationDiscountCode::ClassName:{ if(isset($params['owner'])) $promo_code->setOwner($params['owner']); if(isset($data['type'])) $promo_code->setType($data['type']); if(isset($data['first_name'])) $promo_code->setFirstName(trim($data['first_name'])); if(isset($data['last_name'])) $promo_code->setLastName(trim($data['last_name'])); if(isset($data['email'])) $promo_code->setEmail(trim($data['email'])); if(isset($data['amount'])) $promo_code->setAmount(floatval($data['amount'])); if(isset($data['rate'])) $promo_code->setRate(floatval($data['rate'])); } break; case SpeakerSummitRegistrationDiscountCode::ClassName:{ if(isset($data['type'])) $promo_code->setType($data['type']); if(isset($params['speaker'])) $promo_code->setSpeaker($params['speaker']); if(isset($data['amount'])) $promo_code->setAmount(floatval($data['amount'])); if(isset($data['rate'])) $promo_code->setRate(floatval($data['rate'])); } break; case SponsorSummitRegistrationDiscountCode::ClassName:{ if(isset($params['owner'])) $promo_code->setOwner($params['owner']); if(isset($data['type'])) $promo_code->setType($data['type']); if(isset($data['first_name'])) $promo_code->setFirstName(trim($data['first_name'])); if(isset($data['last_name'])) $promo_code->setLastName(trim($data['last_name'])); if(isset($data['email'])) $promo_code->setEmail(trim($data['email'])); if(isset($data['amount'])) $promo_code->setAmount(floatval($data['amount'])); if(isset($data['rate'])) $promo_code->setRate(floatval($data['rate'])); if(isset($params['sponsor'])) $promo_code->setSponsor($params['sponsor']); if(isset($data['amount'])) $promo_code->setAmount(floatval($data['amount'])); if(isset($data['rate'])) $promo_code->setRate(floatval($data['rate'])); } break; } $summit->addPromoCode($promo_code); return $promo_code; } }