cli) { return true; } return parent::getAuth(); } function post() { $this->transObj = DB_DataObject::Factory('vendinfo'); $this->transObj->query('BEGIN'); PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError')); $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("auto_detect_line_endings", true); $fh = fopen($csv, 'r'); if (!$fh) { $this->jerr("invalid file"); } $req = array( 'ACTIVE STATUS', 'SUPPLIER', 'BALANCE', 'BALANCE TOTAL', 'COMPANY', 'MR, MRS', 'FIRST NAME', 'M.I.', 'LAST NAME', 'ADDRESS 1', 'ADDRESS 2', 'ADDRESS 3', 'ADDRESS 4', 'ADDRESS 5', 'CONTACT', 'PHONE', 'FAX', 'ALT. PHONE', 'ALT. CONTACT', 'EMAIL', 'PRINT ON CHEQUE AS', 'ACCOUNT NO.', 'SUPPLIER TYPE', 'TERMS', 'CREDIT LIMIT', 'TAX ID', 'NOTE' ); $cols = false; $rows = array(); while(false !== ($n = fgetcsv($fh,10000, ',', '"'))) { if (!$cols) { $cols = array(); foreach($n as $k) { $cols[] = strtoupper(trim($k)); } // print_r($cols);exit; 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); $tz = DB_DataObject::Factory('taxzone'); $tz->whereAdd("taxzone_code != 'NO TAX'"); if (!$tz->find(true)) { $this->jerr("could not find tax zone for taxable"); } foreach ($rows as $row){ if(empty($row['SUPPLIER'])){ continue; } $vend = DB_DataObject::factory('vendinfo'); if($vend->get('vend_name',$row['SUPPLIER'])){ continue; } $vend->setFrom(array( 'vend_name' => $row['SUPPLIER'], 'vend_active' => $row['ACTIVE STATUS'] == 'Active' ? TRUE : FALSE, 'vend_comments' => $row['NOTE'], 'vend_number' => preg_replace('/[^a-z0-9]/i', '', strtoupper($row['SUPPLIER'])), 'vend_terms_id' => $this->terms($row['TERMS']), 'vend_taxzone_id' => $tz->pid(), 'vend_vendtype_id' => $vend->sqlValue("getvendtypeid('NORMAL'::text)"), // default set to NORMAL 'vend_accnt_id' => -1 // 'vend_addr_id' => '' )); $vend->insert(); if(!$vend->pid()){ $this->jerr("error occur on insert vendor " . $row['SUPPLIER']); } } $this->jok("DONE"); exit; } function terms($terms_code) { $terms = DB_DataObject::factory('terms'); if(!$terms->get('terms_code', $terms_code)){ $terms->get('terms_code', 'C.O.D.'); } return $terms->pid(); } }