* Move method to model.

This commit is contained in:
caoyanyi
2023-09-13 17:10:16 +08:00
parent d85fb4bd04
commit 709a1bb4dd
4 changed files with 38 additions and 37 deletions
+14 -14
View File
@@ -595,6 +595,7 @@ class program extends control
}
/**
* 导出项目集。
* Export program.
*
* @param string $status
@@ -602,36 +603,35 @@ class program extends control
* @access public
* @return void
*/
public function export($status, $orderBy)
public function export(string $status, string $orderBy)
{
if($_POST)
{
$programLang = $this->lang->program;
$programConfig = $this->config->program;
/* Create field lists. */
$fields = $this->post->exportFields ? $this->post->exportFields : explode(',', $programConfig->list->exportFields);
$fields = $this->post->exportFields ? $this->post->exportFields : explode(',', $this->config->program->list->exportFields);
foreach($fields as $key => $fieldName)
{
$fieldName = trim($fieldName);
$fields[$fieldName] = zget($programLang, $fieldName);
$fields[$fieldName] = zget($this->lang->program, $fieldName);
unset($fields[$key]);
}
$programs = $this->program->getList($status, $orderBy, null);
/* Get and process program list. */
$users = $this->loadModel('user')->getPairs('noletter');
foreach($programs as $i => $program)
$programs = $this->program->getList($status, $orderBy, null);
$products = $this->program->getProductByProgram(array_keys($programs));
foreach($programs as $programID => $program)
{
$program->PM = zget($users, $program->PM);
$program->status = $this->processStatus('project', $program);
$program->model = zget($this->lang->project->modelList, $program->model);
$program->product = implode(",", $this->dao->select('name')->from(TABLE_PRODUCT)->where('program')->eq($program->id)->fetchPairs('name'));
$program->budget = $program->budget . zget($this->lang->project->unitList, $program->budgetUnit);
$program->PM = zget($users, $program->PM);
$program->status = $this->processStatus('project', $program);
$program->model = zget($this->lang->project->modelList, $program->model);
$program->product = empty($products[$programID]) ? '' : implode(",", helper::arrayColumn($products[$programID], 'name'));
$program->budget = $program->budget . zget($this->lang->project->unitList, $program->budgetUnit);
if($this->post->exportType == 'selected')
{
$checkedItem = $this->cookie->checkedItem;
if(strpos(",$checkedItem,", ",{$program->id},") === false) unset($programs[$i]);
if(strpos(",$checkedItem,", ",{$program->id},") === false) unset($programs[$programID]);
}
}
+24 -4
View File
@@ -314,7 +314,7 @@ class programModel extends model
*/
public function getKanbanStatisticData(array $programs): array
{
$productGroup = $this->programTao->getProductByProgram(array_keys($programs));
$productGroup = $this->getProductByProgram(array_keys($programs));
$productIdList = array();
foreach($productGroup as $programID => $products)
{
@@ -1295,14 +1295,15 @@ class programModel extends model
}
/**
* 判断操作按钮是否可以点击。
* Judge an action is clickable or not.
*
* @param object $program
* @param string $action
* @param object $program
* @param string $action
* @access public
* @return bool
*/
public static function isClickable($program, $action)
public static function isClickable(object $program, string $action): bool
{
$action = strtolower($action);
@@ -1826,4 +1827,23 @@ class programModel extends model
}
return $result;
}
/**
* 获取项目集下的产品列表信息。
* Get product list information under the program.
*
* @param array $programIdList
* @access public
* @return array
*/
public function getProductByProgram(array $programIdList = array()): array
{
return $this->dao->select('*')->from(TABLE_PRODUCT)
->where('deleted')->eq(0)
->andWhere('status')->ne('closed')
->beginIF(!empty($programIdList))->andWhere('program')->in($programIdList)->fi()
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->products)->fi()
->orderBy('order_asc')
->fetchGroup('program');
}
}
-19
View File
@@ -30,25 +30,6 @@ class programTao extends programModel
->fetchAll('id');
}
/**
* 获取项目集下的产品列表信息。
* Get product list information under the program.
*
* @param array $programIdList
* @access protected
* @return array
*/
protected function getProductByProgram(array $programIdList = array()): array
{
return $this->dao->select('*')->from(TABLE_PRODUCT)
->where('deleted')->eq(0)
->andWhere('status')->ne('closed')
->beginIF(!empty($programIdList))->andWhere('program')->in($programIdList)->fi()
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->products)->fi()
->orderBy('order_asc')
->fetchGroup('program');
}
/**
*获取所有根项目集基本数据。
* Get base data of all root programs.