cli) { return true; } return parent::getAuth(); } function post() { PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError')); $this->sessionState(0); // turn off the session.. $img = DB_DataObject::Factory('images'); $img->setFrom(array( 'onid' => 0, 'ontable' => 'ipshead' )); $img->onUpload(false); require_once 'File/Convert.php'; $fc = new File_Convert($img->getStoreName(), $img->mimetype ); $csv = $fc->convert('text/csv'); $this->importCsv($csv); } function importCsv($csv) { ini_set('memory_limit', '1024M'); ini_set("auto_detect_line_endings", true); if(empty($_REQUEST['vend_id'])){ $this->jerr('Missing vendor'); } $vend = DB_DataObject::factory('vendinfo'); if(!$vend->get($_REQUEST['vend_id'])){ $this->jerr('Invalid vendor'); } $fh = fopen($csv, 'r'); if (!$fh) { $this->jerr("invalid file"); } $req = array( 'CODE', 'DISTRICT2_CHI', 'DISTRICT2_ENG', 'CHI ADDRESS', 'ENG ADDRESS', ); $cols = false; $rows = array(); while(false !== ($n = fgetcsv($fh,10000, ',', '"'))) { if (!$cols) { $cols = array(); foreach($n as $k) { $cols[] = strtoupper(trim($k)); } if (empty($cols)) { continue; } foreach($req as $r) { if (!in_array($r,$cols)) { $cols = false; break; } } continue; } foreach($cols as $i=>$k) { $row[$k] = $n[$i]; } $rows[] = $row; } if (empty($cols)) { $this->jerr("could not find a row with " . implode(' / ', $req)); } fclose($fh); $errors = array(); $count = 0; foreach($rows as $row){ $vendaddrinfo = DB_DataObject::factory('vendaddrinfo'); if($vendaddrinfo->get('vendaddr_code', $row['CODE'])){ continue; } $addr = DB_DataObject::factory('addr'); $addr->setFrom(array( 'addr_active' => true, 'addr_city' => $row['DISTRICT2_ENG'], 'addr_line1' => $row['ENG ADDRESS'], 'addr_line2' => $row['CHI ADDRESS'], )); $addr->genNumber(); $addr->insert(); if(!$addr->addr_id){ $errors[] = $row['CODE']; continue; } $vendaddrinfo = DB_DataObject::factory('vendaddrinfo'); $vendaddrinfo->setFrom(array( 'vendaddr_vend_id' => $vend->pid(), 'vendaddr_code' => $row['CODE'], 'vendaddr_name' => $row['CODE'], 'vendaddr_addr_id' => $addr->pid(), 'vendaddr_taxzone_id' => $vend->vend_taxzone_id )); $vendaddrinfo->insert(); if(!$vendaddrinfo->vendaddr_id){ $errors[] = $row['CODE']; } $count++; } if(!empty($errors)){ $this->jerr("Below code got error : \n" . implode("\n", $errors)); } $this->jok('data imported successfully! total : ' . $count); } }