| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- /**
- * Get product pairs for lite.
- *
- * @param string $mode
- * @param int $programID
- * @param string|array $append
- * @param string|int $shadow all | 0 | 1
- * @return array
- */
- public function getPairs($mode = '', $programID = 0, $append = '', $shadow = 0)
- {
- if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getProductPairs();
- if($this->app->rawModule == 'feedback' && ($this->app->rawMethod == 'productsetting' || $this->app->rawMethod == 'products')) return parent::getPairs($mode, $programID, $append, $shadow);
- $projects = $this->loadModel('project')->getPairsByProgram();
- $projectIdList = array_keys($projects);
- $projectProducts = $this->dao->select('t1.branch, t1.plan, t2.*')
- ->from(TABLE_PROJECTPRODUCT)->alias('t1')
- ->leftJoin(TABLE_PRODUCT)->alias('t2')
- ->on('t1.product = t2.id')
- ->where('t2.deleted')->eq(0)
- ->andWhere('t1.project')->in($projectIdList)
- ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('t2.id')->in($this->app->user->view->products)->fi()
- ->andWhere('t2.vision')->eq($this->config->vision)
- ->fetchPairs('id', 'id');
- $products = $this->dao->select("*, IF(INSTR(' closed', status) < 2, 0, 1) AS isClosed")
- ->from(TABLE_PRODUCT)
- ->where('1 = 1')
- ->beginIF(strpos($mode, 'all') === false)->andWhere('deleted')->eq(0)->fi()
- ->beginIF($programID)->andWhere('program')->eq($programID)->fi()
- ->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('status')->ne('closed')->fi()
- ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('id')->in($this->app->user->view->products)->fi()
- ->beginIF($shadow !== 'all')->andWhere('shadow')->eq((int)$shadow)->fi()
- ->andWhere('vision')->eq($this->config->vision)
- ->andWhere('id')->in($projectProducts)
- ->fetchPairs('id', 'name');
- return $products;
- }
|