* Finish task #7473.
This commit is contained in:
+14
-11
@@ -482,6 +482,8 @@ class project extends control
|
||||
*/
|
||||
public function importBug($projectID = 0, $browseType = 'all', $param = 0, $recTotal = 0, $recPerPage = 30, $pageID = 1)
|
||||
{
|
||||
$this->app->loadConfig('task');
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$mails = $this->project->importBug($projectID);
|
||||
@@ -605,17 +607,18 @@ class project extends control
|
||||
$this->loadModel('search')->setSearchParams($this->config->bug->search);
|
||||
|
||||
/* Assign. */
|
||||
$this->view->title = $title;
|
||||
$this->view->position = $position;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->bugs = $bugs;
|
||||
$this->view->recTotal = $pager->recTotal;
|
||||
$this->view->recPerPage = $pager->recPerPage;
|
||||
$this->view->browseType = $browseType;
|
||||
$this->view->param = $param;
|
||||
$this->view->users = $users;
|
||||
$this->view->project = $this->project->getByID($projectID);
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->title = $title;
|
||||
$this->view->position = $position;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->bugs = $bugs;
|
||||
$this->view->recTotal = $pager->recTotal;
|
||||
$this->view->recPerPage = $pager->recPerPage;
|
||||
$this->view->browseType = $browseType;
|
||||
$this->view->param = $param;
|
||||
$this->view->users = $users;
|
||||
$this->view->project = $this->project->getByID($projectID);
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->requiredFields = explode(',', $this->config->task->create->requiredFields);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -1468,12 +1468,20 @@ class projectModel extends model
|
||||
$showAllModule = isset($this->config->project->task->allModule) ? $this->config->project->task->allModule : '';
|
||||
$modules = $this->loadModel('tree')->getTaskOptionMenu($projectID, 0, 0, $showAllModule ? 'allModule' : '');
|
||||
|
||||
$project = $this->getByID($projectID);
|
||||
$requiredFields = ',' . $this->config->task->create->requiredFields . ',';
|
||||
if($project->type == 'ops') $requiredFields = str_replace(',story,', ',', $requiredFields);
|
||||
$requiredFields = trim($requiredFields, ',');
|
||||
|
||||
$bugToTasks = fixer::input('post')->get();
|
||||
$bugs = $this->bug->getByList(array_keys($bugToTasks->import));
|
||||
foreach($bugToTasks->import as $key => $value)
|
||||
{
|
||||
$bug = $bugs[$key];
|
||||
$bug = zget($bugs, $key, '');
|
||||
if(empty($bug)) continue;
|
||||
|
||||
$task = new stdClass();
|
||||
$task->bug = $bug;
|
||||
$task->project = $projectID;
|
||||
$task->story = $bug->story;
|
||||
$task->storyVersion = $bug->storyVersion;
|
||||
@@ -1483,22 +1491,50 @@ class projectModel extends model
|
||||
$task->type = 'devel';
|
||||
$task->pri = $bugToTasks->pri[$key];
|
||||
$task->deadline = $bugToTasks->deadline[$key];
|
||||
$task->estimate = $bugToTasks->estimate[$key];
|
||||
$task->consumed = 0;
|
||||
$task->assignedTo = '';
|
||||
$task->status = 'wait';
|
||||
$task->openedDate = $now;
|
||||
$task->openedBy = $this->app->user->account;
|
||||
if(!empty($bugToTasks->estimate[$key]))
|
||||
{
|
||||
$task->estimate = $bugToTasks->estimate[$key];
|
||||
$task->left = $task->estimate;
|
||||
}
|
||||
|
||||
if($task->estimate !== '') $task->left = $task->estimate;
|
||||
if(strpos($requiredFields, 'deadline') !== false and $task->deadline == '0000-00-00') $task->deadline = '';
|
||||
if(!empty($bugToTasks->assignedTo[$key]))
|
||||
{
|
||||
$task->assignedTo = $bugToTasks->assignedTo[$key];
|
||||
$task->assignedDate = $now;
|
||||
}
|
||||
|
||||
/* Check task required fields. */
|
||||
foreach(explode(',', $requiredFields) as $field)
|
||||
{
|
||||
if(empty($field)) continue;
|
||||
if(!isset($task->$field)) continue;
|
||||
if(!empty($task->$field)) continue;
|
||||
|
||||
if($field == 'estimate' and strlen(trim($task->estimate)) != 0) continue;
|
||||
|
||||
dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->task->$field);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!preg_match("/^[0-9]+(.[0-9]{1,3})?$/", $task->estimate))
|
||||
{
|
||||
dao::$errors['message'][] = $this->lang->task->error->estimateNumber;
|
||||
return false;
|
||||
}
|
||||
|
||||
$tasks[$key] = $task;
|
||||
}
|
||||
|
||||
foreach($tasks as $key => $task)
|
||||
{
|
||||
$bug = $task->bug;
|
||||
unset($task->bug);
|
||||
|
||||
if(!$bug->confirmed) $this->dao->update(TABLE_BUG)->set('confirmed')->eq(1)->where('id')->eq($bug->id)->exec();
|
||||
$this->dao->insert(TABLE_TASK)->data($task)->checkIF($bugToTasks->estimate[$key] != '', 'estimate', 'float')->exec();
|
||||
$this->dao->insert(TABLE_TASK)->data($task)->checkIF($task->estimate != '', 'estimate', 'float')->exec();
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
|
||||
@@ -27,7 +27,7 @@ var browseType = '<?php echo $browseType;?>';
|
||||
<div id='queryBox' data-module='importBug' class='show'></div>
|
||||
</div>
|
||||
<form class='main-table' method='post' target='hiddenwin' id='importBugForm' data-ride='table'>
|
||||
<table class='table has-sort-head table-fixed'>
|
||||
<table class='table table-form has-sort-head table-fixed'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='c-id'>
|
||||
@@ -40,10 +40,10 @@ var browseType = '<?php echo $browseType;?>';
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th><?php echo $lang->bug->title;?></th>
|
||||
<th class='w-80px'><?php echo $lang->bug->statusAB;?></th>
|
||||
<th class='w-100px'><?php echo $lang->task->pri;?></th>
|
||||
<th class='w-150px'><?php echo $lang->task->assignedTo;?></th>
|
||||
<th class='w-80px'><?php echo $lang->task->estimate;?></th>
|
||||
<th class='w-120px'><?php echo $lang->task->deadline;?></th>
|
||||
<th class='w-100px <?php echo in_array('pri', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->pri;?></th>
|
||||
<th class='w-150px <?php echo in_array('assignedTo', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->assignedTo;?></th>
|
||||
<th class='w-80px <?php echo in_array('estimate', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->estimate;?></th>
|
||||
<th class='w-120px <?php echo in_array('deadline', $requiredFields) ? 'required' : ''?>'><?php echo $lang->task->deadline;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
|
||||
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
|
||||
$lang->task->error->consumedNumber = '"Verbraucht" muss eine Zahl sein.';
|
||||
$lang->task->error->estimateNumber = '"Stunden" müss eine Zahl sein.';
|
||||
$lang->task->error->leftNumber = '"Left" must be numbers.';
|
||||
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
|
||||
$lang->task->error->consumedSmall = '"Genutzt" muss larger than before.';
|
||||
$lang->task->error->consumedThisTime = 'Bitte geben Sie die Stunden an';
|
||||
|
||||
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
|
||||
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
|
||||
$lang->task->error->consumedNumber = '"Current Cost" must be numbers.';
|
||||
$lang->task->error->estimateNumber = '"Estimates" must be numbers.';
|
||||
$lang->task->error->leftNumber = '"Left" must be numbers.';
|
||||
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
|
||||
$lang->task->error->consumedSmall = '"Total Cost" must be > the last number.';
|
||||
$lang->task->error->consumedThisTime = 'Please enter "Hours Cost"';
|
||||
|
||||
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
|
||||
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
|
||||
$lang->task->error->consumedNumber = '"Coût" doit être numérique.';
|
||||
$lang->task->error->estimateNumber = '"Estimé" doit être numérique.';
|
||||
$lang->task->error->leftNumber = '"Entrez" doit être numérique.';
|
||||
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
|
||||
$lang->task->error->consumedSmall = '"Coût Total" doit être > au dernier chiffre.';
|
||||
$lang->task->error->consumedThisTime = 'Entrez le "Coût en Heures"';
|
||||
|
||||
@@ -201,6 +201,7 @@ $lang->task->error = new stdclass();
|
||||
$lang->task->error->totalNumber = '"Total Cost" must be numbers.';
|
||||
$lang->task->error->consumedNumber = '"Giờ làm" phải là số.';
|
||||
$lang->task->error->estimateNumber = '"Dự tính" phải là số.';
|
||||
$lang->task->error->leftNumber = '"Left" must be numbers.';
|
||||
$lang->task->error->recordMinus = 'Giờ làm không nên là số âm';
|
||||
$lang->task->error->consumedSmall = '"Tổng giờ làm" phải là > số cuối cùng.';
|
||||
$lang->task->error->consumedThisTime = 'Vui lòng nhập "Số giờ làm"';
|
||||
|
||||
@@ -200,7 +200,8 @@ $lang->task->cannotDeleteParent = '不能删除父任务。';
|
||||
$lang->task->error = new stdclass();
|
||||
$lang->task->error->totalNumber = '"总计消耗"必须为数字';
|
||||
$lang->task->error->consumedNumber = '"本次消耗"必须为数字';
|
||||
$lang->task->error->estimateNumber = '"预计剩余"必须为数字';
|
||||
$lang->task->error->estimateNumber = '"最初预计"必须为数字';
|
||||
$lang->task->error->leftNumber = '"预计剩余"必须为数字';
|
||||
$lang->task->error->recordMinus = '工时不能为负数';
|
||||
$lang->task->error->consumedSmall = '"总计消耗"必须大于之前消耗';
|
||||
$lang->task->error->consumedThisTime = '请填写"工时"';
|
||||
|
||||
@@ -1296,7 +1296,7 @@ class taskModel extends model
|
||||
foreach($record->consumed as $id => $item) $record->consumed[$id] = trim($item);
|
||||
foreach($record->left as $id => $item) $record->left[$id] = trim($item);
|
||||
foreach($record->consumed as $id => $item) if(!is_numeric($item) and !empty($item)) dao::$errors[] = 'ID #' . $id . ' ' . $this->lang->task->error->totalNumber;
|
||||
foreach($record->left as $id => $item) if(!is_numeric($item) and !empty($item)) dao::$errors[] = 'ID #' . $id . ' ' . $this->lang->task->error->estimateNumber;
|
||||
foreach($record->left as $id => $item) if(!is_numeric($item) and !empty($item)) dao::$errors[] = 'ID #' . $id . ' ' . $this->lang->task->error->leftNumber;
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$estimates = array();
|
||||
@@ -1647,7 +1647,7 @@ class taskModel extends model
|
||||
|
||||
if(!is_numeric($task->left))
|
||||
{
|
||||
dao::$errors[] = $this->lang->task->error->estimateNumber;
|
||||
dao::$errors[] = $this->lang->task->error->leftNumber;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user