/** * Validate that the current logged in user has a certain * view level access. */ function user_has_view_level($view_level) { // Map access level to internal ID $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->select(array('id'))->from($db->quoteName('#__viewlevels'))->where(array($db->quoteName('title') . ' = ' . $db->quote($view_level))); $db->setQuery($query); try { $db->execute(); } catch (Exception $e) { send_error_report('View level lookup exception', $e->getMessage()); return false; } $results = $db->loadAssocList(); if (count($results) != 1) { send_error_report('View level not found', $view_level); return false; } $level_id = $results[0]['id']; $app = JFactory::getApplication('site'); $user = JFactory::getUser(); return in_array($level_id, $user->getAuthorisedViewLevels()); }
/** * Create a new giftcard for the products specified. */ function new_giftcard($data, $payment) { $columns = array(); $values = array(); $db = JFactory::getDBO(); $columns[] = 'expire'; $values[] = 'DATE_ADD(CURDATE(), INTERVAL 1 YEAR)'; $dataColumnMap = array('name' => 'person', 'email' => 'email', 'contact' => 'contact', 'phone' => 'phone'); foreach ($dataColumnMap as $key => $value) { $columns[] = $value; $values[] = $db->quote($data[$key]); } // Insert mail if we have it if (isset($data['mail'])) { $columns[] = 'mail'; $values[] = $db->quote($data['mail']); } $columns[] = 'note'; $values[] = $db->quote($payment['note']); $columns[] = 'product_jump'; $values[] = 1; if ($data['media'] != null && in_array('photo', $data['media'])) { $columns[] = 'product_photo'; $values[] = 1; } if ($data['media'] != null && in_array('video', $data['media'])) { $columns[] = 'product_video'; $values[] = 1; } $columns[] = 'product_credit'; $values[] = 0; $query = $db->getQuery(true); $query->insert($db->quoteName('#__giftcards'))->columns($db->quoteName($columns))->values(implode(',', $values)); $db->setQuery($query); try { $db->execute(); } catch (Exception $e) { send_error_report('Database insert giftcard exception', $e->getMessage()); return false; } return $db->insertid(); }
} else { if ($type == 'pilot') { $query = 'SELECT m.InternalNo, FirstName, LastName, IFNULL(Club, "LFK") as Club, MAX(YEAR(lr.regdate)) as Year FROM skywin.member AS m, skywin.loadrole AS lr WHERE pilot="Y" AND m.internalno = lr.internalno AND lr.roletype = "PILOT" GROUP BY m.internalno'; } else { if ($type == 'tandem') { $query = 'SELECT m.InternalNo, FirstName, LastName, m.Club, MAX(mi.Year) as Year FROM skywin.memberinstruct AS mi, skywin.member AS m WHERE m.InternalNo = mi.InternalNo AND InstructType = "T" GROUP BY m.InternalNo'; } else { if ($type == 'foto') { $query = 'SELECT InternalNo, FirstName, LastName, Club, Year FROM skywin.member WHERE video="Y"'; } else { if ($type == 'member') { $query = 'SELECT NULLIF(MemberNo, 0) as MemberNo, FirstName, LastName, Address1, Address2, phone1.PhoneNo as PhoneWork, phone2.PhoneNo as PhoneHome, phone3.PhoneNo as PhoneMobile, Emailaddress FROM skywin.member ' . 'LEFT JOIN skywin.memberphone phone1 ON phone1.InternalNo = member.InternalNo AND phone1.PhoneType = "A" LEFT JOIN skywin.memberphone phone2 ON phone2.InternalNo = member.InternalNo AND phone2.PhoneType = "B" ' . 'LEFT JOIN skywin.memberphone phone3 ON phone3.InternalNo = member.InternalNo AND phone3.PhoneType = "M" WHERE (pilot="Y" or (club = "LFK" and year > YEAR(NOW()) - 5 and membertype != "PAX")) and LastName != "Övrig"'; } else { exit('[]'); } } } } } } } $db = JFactory::getDBO(); $db->setQuery($query); try { $db->execute(); } catch (Exception $e) { send_error_report('Staff DB exception', $e->getMessage()); internal_error('Database exception'); } $results = $db->loadAssocList(); echo json_encode($results, JSON_UNESCAPED_UNICODE);
if ($payment_info['is_complete'] !== true) { // Do not go futher if this is not a COMPLETED IPN. exit; } $giftcard = new_giftcard($data, $payment_info); if ($giftcard === false) { send_error_report('new_giftcard failed', 'Failed to create new giftcard'); exit; } if ($payment_info['is_giftcard']) { mail_giftcard($data, $giftcard); } else { // Use the newly created gift card $data['cardid'] = $giftcard; if (!new_booking($data, IS_TEST)) { send_error_report('new_booking failed', 'Failed to store new booking'); exit; } } // Payment done! // User wants to pay later or has a gift card, just book him } else { if ($payment == 'later' || $payment == 'giftcard') { validate_data(false, $_POST); if (!new_booking($_POST, IS_TEST)) { header("Location: /bokningsfel.html"); exit; } success('/tack-foer-din-bokning.html', 'jump', $payment); } else { // Unknown payment type :(