$this->jerr("invalid file");
}
- $rows = array();
+ $req = array(
+ 'LINE', 'ITEM CODE', 'DESCRIPTION', 'QUANTITY'
+ );
+
+ $cols = false;
$header = false;
+ $rows = array();
+ $ret = array();
+
while(false !== ($n = fgetcsv($fh,10000, ',', '"'))) {
if(!array_filter($n)){
- print_r('run');
+ $header = true;
+ continue;
+ }
+
+ if(!$header){
+ $ret[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;
+ }
+
+ foreach($req as $r) {
+ if (!in_array($r,$cols)) {
+ $cols = false;
+ break;
+ }
+ }
+ continue;
+ }
+
+ foreach($cols as $i=>$k) {
+ $row[$k] = $n[$i];
+ }
+ $rows[] = $row;
+
}
- exit;
+
if (empty($cols)) {
$this->jerr("could not find a row with " . implode(' / ', $req));
}
fclose($fh);
+ $lc = DB_DataObject::facotry('location');
+ if($lc->get('location_name', $ret['From'])){
+ $this->jerr('error occur on getting location with reference ' . $ret['From']);
+ }
+ $ret['invhist_transfer_from'] = $lc->pid();
+ $ret['invhist_transfer_from_location_name'] = $lc->location_name;
+
+ $lt = DB_DataObject::facotry('location');
+ if($lt->get('location_name', $ret['To'])){
+ $this->jerr('error occur on getting location with reference ' . $ret['From']);
+ }
+ $ret['invhist_transfer_to'] = $lt->pid();
+ $ret['invhist_transfer_to_location_name'] = $lt->location_name;
+
+ foreach ($rows as $r){
+ $itemsite = DB_DataObject::factory('itemsite');
+ $itemsite->autoJoin();
+ $itemsite->whereAdd("join_itemsite_item_id_item_id.item_number = '{$itemsite->escape($r['ITEM CODE'])}'");
+ if(!$itemsite->find(true)){
+ $this->jerr("error occur on getting item with reference " . $r['ITEM CODE']);
+ }
+
+ $ret['data'][] = array(
+ 'itemsite_item_id' => $itemsite->itemsite_item_id,
+ 'itemsite_id' => $itemsite->pid(),
+ 'itemsite_item_id_item_number' => $r['ITEM CODE'],
+ 'itemsite_item_id_item_descrip1' => $r['DESCRIPTION'],
+ 'itemsite_qty' => $r['QUANTITY']
+ );
+ }
+
+ $this->jok($ret);
+
+
exit;
}