/**
  * @Override Model::getCSV
  * Get a CSV formatted for for this internship.
  */
 public function getCSV()
 {
     $csv = array();
     // Student data
     $csv['Banner ID'] = $this->banner;
     $csv['First Name'] = $this->first_name;
     $csv['Middle Name'] = $this->middle_name;
     $csv['Last Name'] = $this->last_name;
     // Academic Info
     $csv['Level'] = $this->getLevel();
     if ($this->getLevel() == 'ugrad') {
         $csv['Undergrad Major'] = $this->getUgradMajor()->getName();
         $csv['Grduate Program'] = '';
     } else {
         if ($this->getLevel() == 'grad') {
             $csv['Undergrad Major'] = '';
             $csv['Graduate Program'] = $this->getGradProgram()->getName();
         } else {
             $csv['Undergrad Major'] = '';
             $csv['Grduate Program'] = '';
         }
     }
     $csv['GPA'] = $this->getGpa();
     $csv['Campus'] = $this->getCampus();
     // Status Info
     $csv['Status'] = $this->getWorkflowState()->getFriendlyName();
     $csv['OIED Certified'] = $this->isOiedCertified() == 1 ? 'Yes' : 'No';
     // Student Academic Info
     $csv['Phone #'] = $this->phone;
     $csv['Email'] = $this->email;
     // Student Address
     $csv['Student Address'] = $this->student_address;
     $csv['Student City'] = $this->student_city;
     $csv['Student State'] = $this->student_state;
     $csv['Student Zip'] = $this->student_zip;
     // Emergency Contact
     $csv['Emergency Contact Name'] = $this->getEmergencyContactName();
     $csv['Emergency Contact Relation'] = $this->getEmergencyContactRelation();
     $csv['Emergency Contact Phone'] = $this->getEmergencyContactPhoneNumber();
     // Internship Data
     $csv['Term'] = Term::rawToRead($this->term, false);
     $csv['Start Date'] = $this->getStartDate(true);
     $csv['End Date'] = $this->getEndDate(true);
     $csv['Credits'] = $this->credits;
     $csv['Average Hours Per Week'] = $this->avg_hours_week;
     $csv['Paid'] = $this->paid == 1 ? 'Yes' : 'No';
     $csv['Stipend'] = $this->stipend == 1 ? 'Yes' : 'No';
     $csv['Unpaid'] = $this->unpaid == 1 ? 'Yes' : 'No';
     // Internship Type
     $csv['Experience Type'] = $this->getExperienceType();
     // Internship location data
     $csv['Domestic'] = $this->isDomestic() ? 'Yes' : 'No';
     $csv['International'] = $this->isInternational() ? 'Yes' : 'No';
     $csv['Location Address'] = $this->loc_address;
     $csv['Location City'] = $this->loc_city;
     $csv['Location State'] = $this->loc_state;
     $csv['Location Zip'] = $this->loc_zip;
     $csv['Province'] = $this->loc_province;
     $csv['Country'] = $this->loc_country;
     // Course Info
     $csv['Multi-part'] = $this->isMultipart() ? 'Yes' : 'No';
     $csv['Secondary Part'] = $this->isSecondaryPart() ? 'Yes' : 'No';
     $csv['Course Subject'] = $this->getSubject()->getName();
     $csv['Course Number'] = $this->course_no;
     $csv['Course Section'] = $this->course_sect;
     $csv['Course Title'] = $this->course_title;
     // Get external objects
     $a = $this->getAgency();
     $f = $this->getFaculty();
     $d = $this->getDepartment();
     $c = $this->getDocuments();
     // Merge data from other objects.
     $csv = array_merge($csv, $a->getCSV());
     if (count($c) > 0) {
         $csv['Document Uploaded'] = 'Yes';
     } else {
         $csv['Document Uploaded'] = 'No';
     }
     if ($f instanceof Faculty) {
         $csv = array_merge($csv, $f->getCSV());
     } else {
         $csv = array_merge($csv, Faculty::getEmptyCsvRow());
     }
     $csv = array_merge($csv, $d->getCSV());
     return $csv;
 }