$this->transObj = DB_DataObject::Factory('invhist_transfer');
$this->transObj->query('BEGIN');
- print_r('run');exit;
+
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
$img = DB_DataObject::Factory('images');
require_once 'File/Convert.php';
$fc = new File_Convert($img->getStoreName(), $img->mimetype );
- $csv = $fc->convert('text/csv');
- $data = $this->importCsv($csv);
- $this->jdata($data);
+ $csv = $fc->convert('text/csv');
+ $ret = $this->importCsv($csv);
+
+
+
+ $this->jdata($ret['data'], false, isset($ret['extra']) ? $ret['extra'] : array() );
+
+ }
+
+ function importCsv($csv)
+ {
+ ini_set("auto_detect_line_endings", true);
+
+ $fh = fopen($csv, 'r');
+ if (!$fh) {
+ $this->jerr("invalid file");
+ }
+
+
+ $cols = false;
+ $header = false;
+ $rows = array();
+ $extra = array();
+
+ while(false !== ($n = fgetcsv($fh,10000, ',', '"'))) {
+
+
+ if(!strlen(trim(implode('', $n)))){ // blank line;
+ if ($header) {
+ continue;
+ }
+ $header = true;
+ continue;
+ }
+
+ if(!$header){
+ $extra[preg_replace(array('/\s/', '/\:/'), '', $n[0])] = $n[1];
+ continue;
+ }
+
+ if(!$cols){
+ $cols = array();
+ foreach($n as $k) {
+ $cols[] = strtoupper(trim($k));
+ }
+
+ if (empty($cols)) {
+ continue;
+ }
+
+
+ continue;
+ }
+
+ foreach($cols as $i=>$k) {
+ $row[$k] = $n[$i];
+ }
+ $rows[] = $row;
+
+ }
+ fclose($fh);
+
+
+ return array('extra' => $extra, 'data' => $rows);;
}
}
\ No newline at end of file