. */ class Visa implements IExport { public function getDisplayName() { return "Visa"; } public function getDescription() { return "This export contains all applications that need a visa and are accepted."; } public function hasAccess() { return in_array("application_viewvisa", $_SESSION['sess_functions']); } public function getHeaders() { $columns = array(); $columns['applicationid'] = "Application ID"; $columns['firstname'] = "First name"; $columns['lastname'] = "Family name"; $columns['email'] = "E-mail"; $columns['datebirth'] = "Date of birth"; $columns['placeofbirth'] = "Place of birth"; $columns['passportno'] = "Passport number"; $columns['passportissuingauthority'] = "Passport issuing authority"; $columns['passportissuingdate'] = "Passport issuing date"; $columns['passportexpirationdate'] = "Passport expiration date"; $columns['nationality'] = "Nationality"; $columns['body'] = "Body name"; $columns['street'] = "Street"; $columns['zip'] = "Postal code (ZIP)"; $columns['city'] = "City"; $columns['country'] = "Country"; return $columns; } public function getData() { $data = array(); if( $GLOBALS['DB']->select($this->getDataQuery()) > 0 ) { while( $row = $GLOBALS['DB']->fetchAssoc() ) { $data[] = $row; } }else { debug("No data found"); debug($this->getDataQuery()); } return $data; } private function getDataQuery() { $queryBuilder = new QueryBuilder($GLOBALS['DB'], "applications"); $queryBuilder->addField("applications.id", "applicationid"); $queryBuilder->addField(array("firstname", "lastname", "applications.email", "datebirth", "placeofbirth", "passportno", "passportissuingauthority")); $queryBuilder->addField(array("passportissuingdate", "passportexpirationdate", "street", "zip", "city")); $queryBuilder->addField("nationality.name", "nationality"); $queryBuilder->addField("ab_bodies.bodyname", "body"); $queryBuilder->addField("country.name", "country"); $queryBuilder->addLeftJoin("countrycodes", "code", "applications.nationality", "nationality"); $queryBuilder->addLeftJoin("countrycodes", "code", "applications.countrycode", "country"); $queryBuilder->addLeftJoin("ab_bodies", "bodycode", "applications.bodycode"); $queryBuilder->addWhereIn("accepted", array("yes", "pending", "confirmed")); $queryBuilder->addWhereEquals("visa", "yes"); $queryBuilder->addOrderAsc("nationality"); $queryBuilder->addOrderAsc("firstname"); $queryBuilder->addOrderAsc("lastname"); return $queryBuilder->toQuery(); } } ?>