3 require_once 'Pman/Roo.php';
5 class Pman_Core_ExcelToJson extends Pman_Roo
9 if (HTML_FlexyFramework::get()->cli) {
12 return parent::getAuth();
17 $this->transObj = DB_DataObject::Factory('invhist_transfer');
19 $this->transObj->query('BEGIN');
21 PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
23 $img = DB_DataObject::Factory('images');
26 'ontable' => 'ipshead'
28 $img->onUpload(false);
30 require_once 'File/Convert.php';
31 $fc = new File_Convert($img->getStoreName(), $img->mimetype );
32 $csv = $fc->convert('text/csv');
33 $this->importCsv($csv);
36 function importCsv($csv)
38 ini_set("auto_detect_line_endings", true);
40 $fh = fopen($csv, 'r');
42 $this->jerr("invalid file");
46 'LINE', 'ITEM CODE', 'DESCRIPTION', 'QUANTITY'
54 while(false !== ($n = fgetcsv($fh,10000, ',', '"'))) {
55 if(!array_filter($n)){
61 $ret[preg_replace(array('/\s/', '/\:/'), '', $n[0])] = $n[1];
68 $cols[] = strtoupper(trim($k));
76 if (!in_array($r,$cols)) {
84 foreach($cols as $i=>$k) {
92 $this->jerr("could not find a row with " . implode(' / ', $req));
97 $lc = DB_DataObject::facotry('location');
98 if($lc->get('location_name', $ret['From'])){
99 $this->jerr('error occur on getting location with reference ' . $ret['From']);
101 $ret['invhist_transfer_from'] = $lc->pid();
102 $ret['invhist_transfer_from_location_name'] = $lc->location_name;
104 $lt = DB_DataObject::facotry('location');
105 if($lt->get('location_name', $ret['To'])){
106 $this->jerr('error occur on getting location with reference ' . $ret['From']);
108 $ret['invhist_transfer_to'] = $lc->pid();
109 $ret['invhist_transfer_to_location_name'] = $lc->location_name;
111 foreach ($rows as $r){
112 $itemsite = DB_DataObject::factory('itemsite');
113 $itemsite->autoJoin();
114 $itemsite->whereAdd("join_itemsite_item_id_item_id.item_number = '{$itemsite->escape($r['ITEM CODE'])}'");
115 if(!$itemsite->find(true)){
116 $this->jerr("error occur on getting item with reference " . $r['ITEM CODE']);
119 $ret['data'][] = array(
120 'itemsite_item_id' => $itemsite->itemsite_item_id,
121 'itemsite_id' => $itemsite->pid(),
122 'itemsite_item_id_item_number' => $r['ITEM CODE'],
123 'itemsite_item_id_item_descrip1' => $r['DESCRIPTION'],
124 'itemsite_qty' => $r['QUANTITY']