Files
EasySoft-ZenTaoPMS/test/class/productplan.class.php
2022-05-20 01:39:21 +00:00

462 lines
12 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
class productPlan
{
public function __construct($user)
{
global $tester;
su($user);
$this->productplan = $tester->loadModel('productplan');
}
/**
* Get by ID plan
*
* @param int mixed $planID
* @param bool mixed $setImgSize
* @access public
* @return array
*/
public function getByIDPlan($planID, $setImgSize = false)
{
$productplans = $this->productplan->getByID($planID, $setImgSize = false);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Get by ID list
*
* @param array(int) mixed $planIDList
* @access public
* @return array
*/
public function getByIDList($planIDList)
{
$productplans = $this->productplan->getByIDList($planIDList);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Get last
*
* @param int mixed $productID
* @param int $branch
* @param int $parent
* @access public
* @return array
*/
public function getLast($productID, $branch = 0, $parent = 0)
{
$productplans = $this->productplan->getLast($productID, $parent);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Get list
*
* @param int $product
* @param int $branch
* @param string $browseType
* @param mixed $pager
* @param string $orderBy
* @param string $param
* @access public
* @return array
*/
public function getList($product = 0, $branch = 0, $browseType = 'undone', $pager = null, $orderBy = 'begin_desc', $param = '')
{
$productplans = $this->productplan->getList($product, $branch, $browseType, $pager, $orderBy, $param);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Get pairs
*
* @param int $product
* @param string $branch
* @param string $expired
* @param bool mixed $skipParent
* @access public
* @return array
*/
public function getPairs($product, $branch = '', $expired = '', $skipParent = false)
{
$productplans = $this->productplan->getPairs($product, $branch = '', $expired = '', $skipParent = false);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Get pairs for story
*
* @param mrray|int mixed $product
* @param int mixed $branch
* @param string mixed $param
* @access public
* @return count
*/
public function getPairsForStory($product, $branch, $param)
{
$productplans = $this->productplan->getPairsForStory($product, $branch, $param);
if(dao::isError()) return dao::getError();
return count($productplans) - 1;
}
/**
* Get for products
*
* @param array(int) mixed $products
* @access public
* @return count
*/
public function getForProducts($products)
{
$productplans = $this->productplan->getForProducts($products);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Get group by product
*
* @param array(int) mixed $products
* @param string mixed $param
* @param string $field
* @param string $orderBy
* @access public
* @return count
*/
public function getGroupByProduct($products, $param, $field = 'name', $orderBy = 'id_desc')
{
$productplans = $this->productplan->getGroupByProduct($products, $param, $field, $orderBy);
if(dao::isError()) return dao::getError();
return count($productplans);
}
/**
* Get children
*
* @param int mixed $planID
* @access public
* @return count
*/
public function getChildren($planID)
{
$productplans = $this->productplan->getChildren($planID);
if(dao::isError()) return dao::getError();
return count($productplans);
}
/**
* Get plans by stories
*
* @param array(int) mixed $storyIdList
* @access public
* @return count
*/
public function getPlansByStories($storyIdList)
{
$productplans = $this->productplan->getPlansByStories($storyIdList);
if(dao::isError()) return dao::getError();
return count($productplans);
}
/**
* Get branch plan pairs
*
* @param int mixed $productID
* @param int mixed $branches
* @access public
* @return array
*/
public function getBranchPlanPairs($productID, $branches)
{
$productplans = $this->productplan->getBranchPlanPairs($productID, $branches);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Get top plan pairs
*
* @param int $productID
* @param int $branch
* @param int $exclude
* @access public
* @return array
*/
public function getTopPlanPairsTest($param)
{
$productID = $param['productID'];
$branch = $param['branch'];
$exclude = $param['exclude'];
$planPairs = $this->productplan->getTopPlanPairs($productID, $branch, $exclude);
if(dao::isError()) return dao::getError();
return $planPairs;
}
/**
* Create
*
* @param array mixed $param
* @access public
* @return array
*/
public function create($param)
{
//初始化传的参数,这里可以设置默认值
$createPlan = array('title' => '', 'begin' => '', 'end' => '', 'delta' => '', 'desc' => '', 'uid' => '', 'product' => '', 'parent' => '');
//设置foreach循环将初始化参数传给全局变量$_POST中通过此方式将传的参数提供给源码create方法
foreach($createPlan as $field => $defaultvalue) $_POST[$field] = $defaultvalue;
//二次遍历数组将此方法的形参传入$_POST中这行可以替换掉初始化参数做到以传入参数为最终结果的目的。同时不传参数的话取默认值
foreach($param as $key => $value) $_POST[$key] = $value;
//这行代码的作用是调用源码中的方法(参数通过$_POST直接取具体原理可以不知道)
$productPlans = $this->productplan->create();
//将方法返回内容返回
if(dao::isError()) return dao::getError();
return $productPlans;
}
/**
* Update
*
* @param int mixed $planID
* @param array mixed $values
* @access public
* @return array
*/
public function update($planID, $values)
{
$updatePlan = array('title' => '', 'status' => '', 'begin' => '', 'end' => '', 'desc' => '', 'uid' => '', 'product' => '');
foreach($updatePlan as $field => $defaultvalue) $_POST[$field] = $defaultvalue;
foreach($values as $key =>$value) $_POST[$key] = $value;
$productplans = $this->productplan->update($planID);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Update status
*
* @param int mixed $planID
* @param string $status
* @param string $action
* @access public
* @return array
*/
public function updateStatus($planID, $status = '', $action = '')
{
$productplans = $this->productplan->updateStatus($planID, $status, $action);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Update parent status
*
* @param int mixed $parentId
* @access public
* @return bool
*/
public function updateParentStatus($parentId)
{
$productplans = $this->productplan->updateParentStatus($parentId);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Batch update
*
* @param int mixed $productId
* @access public
* @return array(array)
*/
public function batchUpdate($productId, $bratch)
{
$batch = array('id' => array(), 'title' => array(), 'begin' => array(), 'end' => array());
foreach($batch as $field => $defaultvalue) $_POST[$field] = $defaultvalue;
foreach($bratch as $key => $value) $_POST[$key] = $value;
$productplans = $this->productplan->batchUpdate($productId);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Batch change status
*
* @param string mixed $status
* @access public
* @return array
*/
public function batchChangeStatus($status, $planIDList = array('planIDList' => array(4, 5)))
{
$planID = $planIDList;
foreach($planID as $field => $defaultvalue) $_POST[$field] = $defaultvalue;
$productplans = $this->productplan->batchChangeStatus($status);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Change parent field
*
* @param int mixed $planID
* @access public
* @return true
*/
public function changeParentField($planID)
{
$productplans = $this->productplan->changeParentField($planID);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Link story
*
* @param int mixed $planID
* @param array(stories => array())mixed $storyID
* @access public
* @return void
*/
public function linkStory($planID, $storyID)
{
foreach($storyID as $key => $value) $_POST[$key] = $value;
$productplans = $this->productplan->linkStory($planID);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Unlink story
*
* @param int mixed $storyID
* @param int mixed $planID
* @access public
* @return void
*/
public function unlinkStory($storyID, $planID)
{
$productPlans = $this->productplan->unlinkStory($storyID, $planID);
if(dao::isError()) return dao::getError();
return $productPlans;
}
/**
* Link bug
*
* @param int mixed $planID
* @param array mixed $bugID
* @access public
* @return void
*/
public function linkBug($planID, $bugID)
{
foreach($bugID as $key => $value) $_POST[$key] = $value;
$productPlans = $this->productplan->linkBug($planID);
if(dao::isError()) return dao::getError();
return $productPlans;
}
/**
* Unlink bug
*
* @param int mixed $bugID
* @access public
* @return void
*/
public function unlinkBug($bugID)
{
$productplans = $this->productplan->unlinkBug($bugID);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Link project
*
* @param $projectID mixed $projectID
* @param $newPlans mixed $newPlans
* @access public
* @return void
*/
public function linkProject($projectID, $newPlans)
{
$productplans = $this->productplan->linkProject($projectID, $newPlans);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Reorder 4 children
*
* @param array mixed $plans
* @access public
* @return array
*/
public function reorder4Children($plans)
{
$plan = $this->productplan->dao->select('*')->from(TABLE_PRODUCTPLAN)
->where('id')->in($plans)
->andWhere('deleted')->eq(0)
->fetchAll('id');
$productplans = $this->productplan->reorder4Children($plan);
if(dao::isError()) return dao::getError();
return $productplans;
}
/**
* Is clickable
*
* @param int mixed $planID
* @param string mixed $action
* @access public
* @return void
*/
public function isClickable($planID, $action)
{
$plan = $this->productplan->dao->select('*')->from(TABLE_PRODUCTPLAN)
->where('id')->eq($planID)
->andWhere('deleted')->eq(0)
->fetchAll('id');
$plans = $plan[$planID];
$productplans = $this->productplan->isClickable($plans, $action);
if(dao::isError()) return dao::getError();
return $productplans;
}
}
?>