Пример #1
0
 public static function genUpdateFlagQueryByContent(PosMemberImportContent $content)
 {
     $sql = 'UPDATE CCS_MemberFlags SET ';
     foreach ($content->flags as $key => $flag) {
         $key = Flater::resoveKey($key);
         $sql .= "Distflags_{$key}='{$flag}',";
     }
     return substr($sql, 0, -1) . " WHERE MemberSerNoStr='{$content->serno}'";
 }
Пример #2
0
 public function proc()
 {
     //======================================================//
     // 取得上傳暫存檔路徑
     $filePath = storage_path("exports/posmember/{$this->getTask()->id}.xls");
     if (!file_exists($filePath)) {
         Log::error("{$filePath} Not exists!");
     }
     // 透過直接指定選擇第一個sheet的方式,繞過 chunk 的 bug
     $reader = Excel::filter('chunk')->selectSheetsByIndex(0)->load($filePath)->skip(1);
     $totalRows = $reader->getTotalRowsOfFile();
     $this->getTask()->status_code = PosMemberImportTask::STATUS_IMPORTING;
     $this->getTask()->total_count = $totalRows - 1;
     $this->getTask()->save();
     //======================================================//
     $kind = $this->getTask()->kind()->first();
     $factoryClass = $kind->factory;
     $adapterClass = $kind->adapter;
     $this->modelFactory = new $factoryClass();
     $this->adapter = new $adapterClass([_Import::OPTIONS_TASK => $this->getTask(), _Import::OPTIONS_DISTINCTION => PosMemberImportTask::getBDSerNo($this->getTask()->distinction), _Import::OPTIONS_CATEGORY => PosMemberImportTask::getCategorySerNo($this->getTask()->category), _Import::OPTIONS_INSERTFLAG => Flater::getFlagString($this->getTask()->insert_flags), _Import::OPTIONS_UPDATEFLAG => Flater::getFlagString($this->getTask()->update_flags)]);
     $reader->chunk(_Import::CHUNK_SIZE, $this->getChunkCallback());
     $this->_removeDuplicate();
     $this->_saveTaskStatic();
 }
Пример #3
0
 public function getFlagPrototype()
 {
     $flags = [];
     for ($i = 1; $i <= 40; $i++) {
         $flags[Flater::genKey($i)] = Import::DEFAULT_FLAG_VALUE;
     }
     return $flags;
 }
Пример #4
0
 protected function createNewTask()
 {
     $task = new PosMemberImportTask();
     $task->user_id = Auth::user()->id;
     $task->name = Input::get('name');
     $task->status_code = PosMemberImportTask::STATUS_INIT;
     $task->distinction = Input::get(_Import::OPTIONS_DISTINCTION);
     $task->category = Input::get(_Import::OPTIONS_CATEGORY);
     $task->update_flags = Flater::getInflateFlag(Input::get(_Import::OPTIONS_UPDATEFLAG));
     $task->insert_flags = Flater::getInflateFlag(Input::get(_Import::OPTIONS_INSERTFLAG));
     $task->kind_id = Input::get('kind_id');
     $task->memo = Input::get(_Import::OPTIONS_OBMEMO);
     $task->save();
     return $task;
 }
Пример #5
0
 private function _getFlagString($flags)
 {
     return Flater::getFlagString($flags);
 }