public function editPromoCodeSponsor(SS_HTTPRequest $request) { $summit_id = intval($request->param('SummitID')); $summit = Summit::get()->byID($summit_id); $sponsor_id = $request->param('SponsorID'); $sponsor = is_numeric($sponsor_id) ? Company::get_by_id('Company', $sponsor_id) : null; $promocodes = is_numeric($sponsor_id) ? $this->promocode_repository->getBySponsor($summit_id, $sponsor_id) : array(); Requirements::css('summit/css/simple-sidebar.css'); Requirements::css('summit/css/summit-admin-edit-promocode.css'); Requirements::css('themes/openstack/bower_assets/chosen/chosen.min.css'); Requirements::css('themes/openstack/bower_assets/sweetalert/dist/sweetalert.css'); Requirements::css('themes/openstack/bower_assets/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css'); // tag input Requirements::css('themes/openstack/bower_assets/bootstrap-tagsinput/dist/bootstrap-tagsinput.css'); Requirements::css('themes/openstack/bower_assets/bootstrap-tagsinput/dist/bootstrap-tagsinput-typeahead.css'); Requirements::javascript('themes/openstack/bower_assets/sweetalert/dist/sweetalert.min.js'); Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/jquery.validate.min.js'); Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/additional-methods.min.js'); Requirements::javascript('themes/openstack/bower_assets/chosen/chosen.jquery.min.js'); Requirements::javascript('summit/javascript/simple-sidebar.js'); Requirements::javascript('//tinymce.cachefly.net/4.3/tinymce.min.js'); Requirements::javascript('themes/openstack/bower_assets/typeahead.js/dist/typeahead.bundle.min.js'); Requirements::javascript('themes/openstack/bower_assets/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js'); Requirements::javascript('summit/javascript/summitapp-editpromocode-sponsor.js'); return $this->getViewer('editPromoCodeSponsor')->process($this->customise(array('Summit' => $summit, 'PromoCodes' => $promocodes, 'Sponsor' => $sponsor))); }
public function exportRegistrationCodes(SS_HTTPRequest $request) { try { $query_string = $request->getVars(); $code_type = isset($query_string['type']) ? $query_string['type'] : ''; $term = isset($query_string['term']) ? $query_string['term'] : ''; $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $ext = 'csv'; list($page, $page_size, $count, $codes) = $this->code_repository->searchByTermAndSummitPaginated($summit_id, $code_type, 1, 0, $term); $results = array(); foreach ($codes as $row) { $code_array = array('Code' => $row['code'], 'Type' => $row['type'], 'Owner' => $row['owner'], 'Email' => $row['owner_email'], 'Sponsor' => $row['sponsor'], 'Emailed' => $row['email_sent'], 'Redeemed' => $row['redeemed']); if (!$code_type) { $this_type = $row['type']; if (!isset($results[$this_type])) { $results[$this_type] = array(); } $results[$this_type][] = $code_array; } else { array_push($results, $code_array); } } $filename = "promocodes_report-" . date('Ymd') . "." . $ext; $delimiter = $ext == 'xls' ? "\t" : ","; if (!$code_type) { // if we export all codes we put each type on a different sheet $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("OpenStack"); $objPHPExcel->getProperties()->setTitle("PromoCodes"); $sheet_no = 0; foreach ($results as $type => $codes) { if ($sheet_no > 0) { $active_sheet = $objPHPExcel->createSheet(); } else { $objPHPExcel->setActiveSheetIndex(0); $active_sheet = $objPHPExcel->getActiveSheet(); } $sheet_title = $type ? $type : 'No Type'; $active_sheet->setTitle($sheet_title); $active_sheet->fromArray(array('Code', 'Type', 'Owner', 'Email', 'Sponsor', 'Emailed', 'Redeemed'), NULL, 'A1'); foreach ($codes as $key => $code) { $row = $key + 2; $active_sheet->fromArray($code, NULL, 'A' . $row); } $sheet_no++; } $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="' . $filename . '"'); $objWriter->save('php://output'); return; } else { return CSVExporter::getInstance()->export($filename, $results, $delimiter); } } catch (NotFoundEntityException $ex2) { SS_Log::log($ex2->getMessage(), SS_Log::WARN); return $this->notFound($ex2->getMessage()); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); return $this->serverError(); } }