예제 #1
0
 public function updateFacilties()
 {
     $total = Facilities::getTotalNumber();
     $message = "";
     if ($total < 9800) {
         $this->load->library('PHPExcel');
         $inputFileType = 'Excel5';
         $inputFileName = $_SERVER['DOCUMENT_ROOT'] . '/ADT/assets/facility_list.xls';
         $objReader = PHPExcel_IOFactory::createReader($inputFileType);
         $objPHPExcel = $objReader->load($inputFileName);
         $highestColumm = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
         $highestRow = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
         $arr = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);
         $facilities = array();
         $facility_code = $this->session->userdata("facility");
         $lists = Facilities::getParentandSatellites($facility_code);
         for ($row = 2; $row < $highestRow; $row++) {
             $facility_id = $arr[$row]['A'];
             $facility_name = $arr[$row]['B'];
             $facility_type_name = str_replace(array("'"), "", $arr[$row]['G']);
             $facility_type_id = Facility_Types::getTypeID($facility_type_name);
             $district_name = str_replace(array("'"), "", $arr[$row]['E']);
             $district_id = District::getID($district_name);
             $county_name = str_replace(array("'"), "", $arr[$row]['D']);
             $county_id = Counties::getID($county_name);
             $email = $arr[$row]['T'];
             $phone = $arr[$row]['R'];
             $adult_age = 15;
             $weekday_max = '';
             $weekend_max = '';
             $supported_by = '';
             $service_art = 0;
             if (strtolower($arr[$row]['AD']) == "y") {
                 $service_art = 1;
             }
             $service_pmtct = 0;
             if (strtolower($arr[$row]['AR']) == "y") {
                 $service_pmtct = 1;
             }
             $service_pep = 0;
             $supplied_by = '';
             $parent = '';
             $map = 0;
             //if is this facility or satellite of this facility
             if (in_array($facility_id, $lists)) {
                 $details = Facilities::getCurrentFacility($facility_id);
                 if ($details) {
                     $parent = $details[0]['parent'];
                     $supported_by = $details[0]['supported_by'];
                     $supplied_by = $details[0]['supplied_by'];
                     $service_pep = $details[0]['service_pep'];
                     $weekday_max = $details[0]['weekday_max'];
                     $weekend_max = $details[0]['weekend_max'];
                     $map = $details[0]['map'];
                 }
             }
             //append to facilities data array
             $facilities[$row] = array('facilitycode' => $facility_id, 'name' => $facility_name, 'facilitytype' => $facility_type_id, 'district' => $district_id, 'county' => $county_id, 'email' => $email, 'phone' => $phone, 'adult_age' => $adult_age, 'weekday_max' => $weekday_max, 'weekend_max' => $weekend_max, 'supported_by' => $supported_by, 'service_art' => $service_art, 'service_pmtct' => $service_pmtct, 'service_pep' => $service_pep, 'supplied_by' => $supplied_by, 'parent' => $parent, 'map' => $map);
         }
         $sql = "TRUNCATE facilities";
         $this->db->query($sql);
         $this->db->insert_batch('facilities', $facilities);
         $counter = count($facilities);
         $message = $counter . " facilities have been added!<br/>";
     }
     return $message;
 }