5 require_once 'Pman/Roo.php';
7 class Pman_Admin_Import_Enum extends Pman_Roo
12 if (HTML_FlexyFramework::get()->cli) {
15 return parent::getAuth();
22 PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
24 $this->sessionState(0); // turn off the session..
26 $img = DB_DataObject::Factory('images');
29 'ontable' => 'ipshead'
31 $img->onUpload(false);
33 require_once 'File/Convert.php';
34 $fc = new File_Convert($img->getStoreName(), $img->mimetype );
35 $csv = $fc->convert('text/csv');
37 $this->importCsv($csv);
41 function importCsv($csv)
44 ini_set('memory_limit', '1024M');
46 ini_set("auto_detect_line_endings", true);
48 if(empty($_REQUEST['etype'])){
49 $this->jerr('Missing etype');
52 $enum = DB_DataObject::factory('core_enum');
53 if(!$enum->get('name', $_REQUEST['etype'])){
54 $this->jerr('Invalid etype');
60 $fh = fopen($csv, 'r');
62 $this->jerr("invalid file");
65 $req = array('NAME','DISPLAY NAME');
70 while(false !== ($n = fgetcsv($fh,10000, ',', '"'))) {
71 if(!array_filter($n)){ // empty row
78 $cols[] = strtoupper(trim($k));
84 if (!in_array($r,$cols)) {
91 foreach($cols as $i=>$k) {
100 $this->jerr("could not find a row with " . implode(' / ', $req));
107 foreach ($rows as $row){
108 $e = DB_DataObject::factory('core_enum');
109 $e->etype = $_REQUEST['etype'];
110 if($e->get('name', $row['NAME'])){
111 // allow changing active?? -- order/seqid not used at present on update.
112 if (isset($row['ACTIVE']) && $e->active != $row['ACTIVE']) {
114 $e->active = $row['ACTIVE'];
121 $e = DB_DataObject::factory('core_enum');
123 'name' => $row['NAME'],
124 'display_name' => $row['DISPLAY NAME'],
125 'etype' => $_REQUEST['etype'],
126 'active' => isset($row['ACTIVE']) ? $row['ACTIVE'] : 1,
128 if (!empty($row['ORDER #'])) {
129 $e->seqid = $row['ORDER #'];
132 $e->onInsert(array());
137 $this->jok('data imported successfully! total : ' . $count .'/'. count($rows));