123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- <?php
- Doo::loadModel('change');
- Doo::loadModel('changeatt');
- Doo::loadModel('changeaudit');
- Doo::loadModel('changeauditlist');
- Doo::loadModel('changelist');
- Doo::loadModel('changecompany');
- class Changes
- {
- private $__change,$__changeatt,$__changeaudit,$__changeauditlist,$__changelist,$__changecompany;
- function __construct()
- {
- $this->__change = new Change();
- $this->__changeatt = new ChangeAtt();
- $this->__changeaudit = new ChangeAudit();
- $this->__changeauditlist = new ChangeAuditList();
- $this->__changelist = new ChangeList();
- $this->__changecompany = new ChangeCompany();
- }
- //change
- public function insertChangeMsg($pmArr,$uid,$cmsg)
- {
- $this->__change->pid = $pmArr['pid'];
- $this->__change->stid = $pmArr['stid'];
- $this->__change->pmid = $pmArr['pmid'];
- $this->__change->uid = $uid;
- $this->__change->pnum = $cmsg['pnum'];
- $this->__change->pname = $cmsg['pname'];
- $this->__change->mnum = $cmsg['mnum'];
- $this->__change->odname = $cmsg['odname'];
- $this->__change->onum = $cmsg['onum'];
- $this->__change->cdname = $cmsg['cdname'];
- $this->__change->cnum = $cmsg['cnum'];
- $this->__change->description = $cmsg['description'];
- $this->__change->basis = $cmsg['basis'];
- $this->__change->remarks = $cmsg['remarks'];
- $this->__change->ctype = !empty($cmsg['ctype']) ? implode(',', $cmsg['ctype']) : '';
- $this->__change->category = $cmsg['category'];
- $this->__change->cnature = $cmsg['cnature'];
- $this->__change->companyid = $cmsg['companyid'];
- $this->__change->bear = $cmsg['bear'];
- $this->__change->decimalnum = $cmsg['changedecimalnum'];
- $this->__change->status = isset($cmsg['uncheck']) ? 'uncheck' : 'checking';
- $this->__change->intime = time();
- $this->__change->cintime = time();
- return $this->__change->insert();
- }
- public function updateChangeMsg($cid,$cmsg,$times,$status = '')
- {
- $this->__change->cid = $cid;
- $this->__change->pnum = $cmsg['pnum'];
- $this->__change->pname = $cmsg['pname'];
- $this->__change->mnum = $cmsg['mnum'];
- $this->__change->odname = $cmsg['odname'];
- $this->__change->onum = $cmsg['onum'];
- $this->__change->cdname = $cmsg['cdname'];
- $this->__change->cnum = $cmsg['cnum'];
- $this->__change->description = $cmsg['description'];
- $this->__change->basis = $cmsg['basis'];
- $this->__change->remarks = $cmsg['remarks'];
- $this->__change->ctype = !empty($cmsg['ctype']) ? implode(',', $cmsg['ctype']) : '';
- $this->__change->category = $cmsg['category'];
- $this->__change->cnature = $cmsg['cnature'];
- $this->__change->companyid = $cmsg['companyid'];
- $this->__change->bear = $cmsg['bear'];
- $this->__change->decimalnum = $cmsg['changedecimalnum'];
- $this->__change->times = $times;
- if($status != ''){
- $this->__change->status = $status;
- }
- $this->__change->cintime = time();
- return $this->__change->update();
- }
- public function getListbyMydetail($pmid='',$uid,$limit)
- {
- if(empty($pmid)){
- return $this->__change->find(array('where' => '(status="checking" or status="back" or status="uncheck") and cid in(select `jl_change_audit`.cid from `jl_change_audit` where `jl_change_audit`.uid=? and `jl_change_audit`.status="checking")', 'param' => array($uid), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE));
- }else{
- return $this->__change->find(array('where' => 'pmid=? and (status="checking" or status="back" or status="uncheck") and cid in(select `jl_change_audit`.cid from `jl_change_audit` where `jl_change_audit`.uid=? and `jl_change_audit`.status="checking")', 'param' => array($pmid,$uid), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE));
- }
- }
- public function getNumbystatus($pmid='',$status,$status2 = '',$sql = '')
- {
- if(!empty($status2)){
- if(empty($pmid)){
- return $this->__change->count(array('where' => '(status=? or status=?)'.$sql, 'param' => array($status,$status2), 'asArray' => TRUE));
- }else{
- return $this->__change->count(array('where' => 'pmid=? and (status=? or status=?)'.$sql, 'param' => array($pmid,$status,$status2), 'asArray' => TRUE));
- }
- }else{
- if(empty($pmid)){
- return $this->__change->count(array('where' => 'status=?'.$sql, 'param' => array($status), 'asArray' => TRUE));
- }else{
- return $this->__change->count(array('where' => 'pmid=? and status=?'.$sql, 'param' => array($pmid,$status), 'asArray' => TRUE));
- }
- }
- }
- public function getListbyStatus($pmid='',$status,$limit,$status2 = '',$sql = '')
- {
- if(!empty($status2)){
- if(empty($pmid)){
- return $this->__change->find(array('where' => '(status=? or status=?)'.$sql, 'param' => array($status,$status2), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE));
- }else{
- return $this->__change->find(array('where' => 'pmid=? and (status=? or status=?)'.$sql, 'param' => array($pmid,$status,$status2), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE));
- }
- }else{
- if(empty($pmid)){
- return $this->__change->find(array('where' => 'status=?'.$sql, 'param' => array($status), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE));
- }else{
- return $this->__change->find(array('where' => 'pmid=? and status=?'.$sql, 'param' => array($pmid,$status), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE));
- }
- }
- }
- public function updateChangeTotalamount($cid,$total)
- {
- $this->__change->cid = $cid;
- $this->__change->totalamount = $total;
- $this->__change->update();
- }
- public function getChangebyid($cid)
- {
- return $this->__change->getOne(array('where' => 'cid=?', 'param' => array($cid), 'asArray' => TRUE));
- }
- public function getNeedChangeAllList($uid)
- {
- return $this->__change->find(array('select' => 'cid,pid,stid,pmid', 'where' => 'cid in (select `cid` from `jl_change_audit` where uid=? and status="checking")', 'param' => array($uid), 'asArray' => TRUE));
- }
- public function getPassChangeListID($pmid)
- {
- return $this->__change->find(array('select' =>'cid','where' => 'pmid=? and status="checked"', 'param' => array($pmid), 'asArray' => TRUE));
- }
- public function getLastChangePnum($pmid)
- {
- return $this->__change->getOne(array('select' => 'pnum', 'where' => 'pmid=?', 'param' => array($pmid), 'desc' => 'cid','asArray' => TRUE));
- }
- //搜索该标段有无相同申请编号的变更令
- public function getChangebyPnumPmid($pnum,$pmid,$cid = '')
- {
- if($cid != ''){
- return $this->__change->getOne(array('where' => 'pnum=? and pmid=? and cid!=?', 'param' => array($pnum,$pmid,$cid), 'asArray' => TRUE));
- }else{
- return $this->__change->getOne(array('where' => 'pnum=? and pmid=?', 'param' => array($pnum,$pmid), 'asArray' => TRUE));
- }
- }
- public function delChangebyCid($cid)
- {
- return $this->__change->delete(array('where' => 'cid=?', 'param' => array($cid), 'asArray' => TRUE));
- }
- public function updateChangeDecimalNum($cid,$dnum)
- {
- $this->__change->cid = $cid;
- $this->__change->decimalnum = $dnum;
- return $this->__change->update();
- }
- //changeatt
- public function insertChangeAtt($files)
- {
- $this->__changeatt->pid = $files['pid'];
- $this->__changeatt->stid = $files['stid'];
- $this->__changeatt->pmid = $files['pmid'];
- $this->__changeatt->cid = $files['cid'];
- $this->__changeatt->uid = $files['uid'];
- $this->__changeatt->filename = $files['filename'];
- $this->__changeatt->fileext = $files['fileext'];
- $this->__changeatt->filesize = $files['filesize'];
- $this->__changeatt->filepath = $files['filepath'];
- $this->__changeatt->intime = $files['intime'];
- return $this->__changeatt->insert();
- }
- public function getChangeAttbyFid($id)
- {
- return $this->__changeatt->getOne(array('where' => 'id=?', 'param' => array($id), 'asArray' => TRUE));
- }
- public function getChangeAttListbycid($cid)
- {
- return $this->__changeatt->find(array('where' => 'cid=?', 'asc' => 'intime', 'param' => array($cid), 'asArray' => TRUE));
- }
- public function delChangeAttbyFid($fid)
- {
- return $this->__changeatt->delete(array('where' => 'id=?', 'param' => array($fid), 'asArray' => TRUE));
- }
- //changeaudit
- public function getNeedChangeNumbyUid($uid)
- {
- return $this->__changeaudit->count(array('where' => 'uid=? and status="checking"', 'param' => array($uid), 'asArray' => TRUE));
- }
- public function getPmidGroup($uid)
- {
- return $this->__changeaudit->find(array('where' => 'uid=? and cid in (SELECT `jl_change`.`cid` FROM `jl_change` WHERE `jl_change`.status!="uncheck")', 'param' => array($uid), 'groupby' => 'pmid', 'asArray' => TRUE));
- }
- public function getNumbyMydetail($pmid='',$uid)
- {
- if(empty($pmid)){
- return $this->__changeaudit->count(array('where' => 'uid=? and status="checking"', 'param' => array($uid), 'asArray' => TRUE));
- }else{
- return $this->__changeaudit->count(array('where' => 'pmid=? and uid=? and status="checking"', 'param' => array($pmid,$uid), 'asArray' => TRUE));
- }
- }
- public function getOneAuditbystatus($cid,$status)
- {
- return $this->__changeaudit->getOne(array('where' => 'cid=? and status=? and usite!=0', 'param' => array($cid,$status), 'asArray' => TRUE));
- }
- public function getChangeAuditsbycid($cid)
- {
- return $this->__changeaudit->find(array('where' => 'cid=?', 'asc' => 'id', 'param' => array($cid), 'asArray' => TRUE));
- }
- public function getChangeAuditsbySort($cid,$notime = '')
- {
- if($notime != ''){
- return $this->__changeaudit->find(array('where' => 'cid=? and times!=?', 'asc' => 'usort', 'param' => array($cid,$notime), 'asArray' => TRUE));
- }else{
- return $this->__changeaudit->find(array('where' => 'cid=?', 'asc' => 'usort', 'param' => array($cid), 'asArray' => TRUE));
- }
- }
- public function getChangeAuditsbycidtime($cid,$times)
- {
- return $this->__changeaudit->find(array('where' => 'cid=? and times=? and usite!=0', 'groupby' => 'usite', 'asc' => 'usort', 'param' => array($cid,$times), 'asArray' => TRUE));
- }
- public function getChangeAuditbylastlist($cid,$times)
- {
- $sql = 'SELECT * FROM (SELECT MAX(usort) as ust FROM `jl_change_audit` WHERE cid='.$cid.' and times='.$times.' and usite!=0 GROUP BY usite ) as b JOIN `jl_change_audit` as a ON a.usort = b.ust WHERE cid='.$cid.' and times='.$times.' and usite!=0 ORDER BY usite';
- $query = Doo::db ()->query ( $sql );
- $result = $query->fetchAll ();
- return $result;
- }
- public function getOneChangeAudit($uid,$cid,$times)
- {
- return $this->__changeaudit->getOne(array('where' => 'cid=? and uid=? and times=? and usite!=0', 'desc' => 'usort', 'param' => array($cid,$uid,$times), 'asArray' => TRUE));
- }
- public function updateChangeAudit($uid,$cid,$times,$status,$desc,$time,$list = '')
- {
- $oneaudit = $this->getOneChangeAudit($uid,$cid,$times);
- $this->__changeaudit->id = $oneaudit['id'];
- $this->__changeaudit->status = $status;
- $this->__changeaudit->sdesc = $desc;
- $this->__changeaudit->sintime = $time;
- $this->__changeaudit->list_json = $list;
- $this->__changeaudit->update();
- }
- //默认取最后一个审批人,site取0则取最后一个创建人
- public function getChangeAuditLastUser($cid,$site = 1)
- {
- $sql = $site == 0 ? ' and usite=0' : '';
- return $this->__changeaudit->getOne(array('where' => 'cid=?'.$sql, 'desc' => 'usort', 'param' => array($cid), 'asArray' => TRUE));
- }
- public function delChangeAuditbyCid($cid)
- {
- return $this->__changeaudit->delete(array('where' => 'cid=?', 'param' => array($cid), 'asArray' => TRUE));
- }
- //changeauditlist
- public function getChangeAuditListbycid($cid)
- {
- return $this->__changeauditlist->find(array('where' => 'cid=?', 'asc' => 'convert(lnum using gbk)', 'param' => array($cid), 'asArray' => TRUE));
- }
- public function getOneChangeAuditList($lid)
- {
- return $this->__changeauditlist->getOne(array('where' => 'id=?', 'param' => array($lid), 'asArray' => TRUE));
- }
- public function delChangeAuditListbyCid($cid)
- {
- return $this->__changeauditlist->delete(array('where' => 'cid=?', 'param' => array($cid)));
- }
- //changelist
- public function insertChangelist($pmArray,$listArray)
- {
- $this->__changelist->pid = $pmArray['pid'];
- $this->__changelist->stid = $pmArray['stid'];
- $this->__changelist->pmid = $pmArray['pmid'];
- $this->__changelist->lnum = trim($listArray['lnum']);
- $this->__changelist->lname = trim($listArray['lname']);
- $this->__changelist->unit = trim($listArray['unit']);
- $this->__changelist->unitprice = $listArray['unitprice'];
- $this->__changelist->amount = $listArray['amount'];
- $this->__changelist->insert();
- }
- public function getChangeListbyPmid($pmid = '',$sql = '')
- {
- if(empty($pmid)){
- return $this->__changelist->find(array('where' => $sql, 'asc' => 'convert(lnum using gbk)', 'asArray' => TRUE));
- }else{
- return $this->__changelist->find(array('where' => 'pmid=?', 'param' => array($pmid), 'asc' => 'convert(lnum using gbk)', 'asArray' => TRUE));
- }
- }
- public function getChangeListbyid($id)
- {
- return $this->__changelist->getOne(array('where' => 'id=?', 'param' => array($id), 'asArray' => TRUE));
- }
- public function getChangeListbylname($lname)
- {
- return $this->__changelist->getOne(array('where' => 'lname=?', 'param' => array(trim($lname)), 'asArray' => TRUE));
- }
- public function delChangeListbyPmid($pmid)
- {
- return $this->__changelist->delete(array('where' => 'pmid=?', 'param' => array($pmid)));
- }
- //changecompany
- public function getCompanyList($pmid = '')
- {
- if($pmid != ''){
- return $this->__changecompany->find(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE));
- }else{
- return $this->__changecompany->find(array('asArray' => TRUE));
- }
- }
- public function getCompanybyid($id)
- {
- return $this->__changecompany->getOne(array('where' => 'id=?', 'param' => array($id), 'asArray' => TRUE));
- }
- public function delAllChangebyPmid($pmid)
- {
- // TODO: 根据pmid删除所有相关联的变更令内容
- // TODO: 项目管理和前台删除标段中使用
- $changeattlist = $this->__changeatt->find(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE));
- if(!empty($changeattlist)){
- include (DOO::conf()->SITE_PATH . 'protected/plugin/io.han.php');
- foreach($changeattlist as $k => $v){
- $this->IoHandler = new IoHandler();
- $path = DOO::conf()->SITE_PATH.$v['filepath'];
- $this->IoHandler->DeleteFile($path);
- $this->delChangeAttbyFid($v['id']);
- }
- }
- $this->__changelist->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE));
- $this->__changeaudit->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE));
- $this->__changeauditlist->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE));
- $this->__changecompany->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE));
- $this->__change->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE));
- }
- }
|