'.$ztna[$zt].'';
}
//设置库存
public function setstock($id='', $lsx='1')
{
$where = '';
if($id!=''){
$id = c('check')->onlynumber($id);
$where=' and `aid` in('.$id.')';
}
$sql = 'SELECT sum(count)stock,aid FROM `[Q]goodss` where `status`=1 '.$where.' GROUP BY aid';
if($id=='')$this->update('stock=0','id>0');
$rows= $this->db->getall($sql);
foreach($rows as $k=>$rs){
$this->update('`stock`='.$rs['stock'].'', $rs['aid']);
}
}
//根据仓库日期获取库存
public function getstock($id='', $dt='')
{
$where= '';
if($id!=''){
$id = c('check')->onlynumber($id);
$where='`aid` in('.$id.') and ';
}
if($dt!='')$where.="`applydt`<='$dt' and "; //日期
$sql = 'SELECT sum(count)stock,`aid`,`depotid` FROM `[Q]goodss` where '.$where.' `status`=1 GROUP BY `aid`,`depotid`';
$rows= $this->db->getall($sql);
$arra = array();
foreach($rows as $k=>$rs){
$aid = $rs['aid'];
$arra[$aid][$rs['depotid']] = $rs['stock'];
if(!isset($arra[$aid][0])) $arra[$aid][0]= 0;
$arra[$aid][0]+=floatval($rs['stock']);
}
return $arra;
}
//待出入库数量
public function getdaishu()
{
$where = m('admin')->getcompanywhere(1);
return $this->db->rows('`[Q]goodm`','`status`=1 and `state`<>1 '.$where.'');
}
//判断是否存在相同库存
public function existsgoods($rs, $id=0)
{
$where = "`id`<>".$id." and `typeid`=".$rs['typeid']." and `name`='".$rs['name']."' and ifnull(`guige`,'')='".$rs['guige']."' and ifnull(`xinghao`,'')='".$rs['xinghao']."'";
$to = $this->rows($where);
return $to>0;
}
public function getgoodstype($lx=0)
{
$dbs = m('option');
$num = 'goodstype';
if(ISMORECOM && $cnum=m('admin')->getcompanynum())$num.='_'.$cnum.'';
$rowss = $dbs->getdata($num);
$rows = array();
$str1 = ' ';
if($lx==1)$str1=' ';
foreach($rowss as $k=>$rs){
$rows[] = array(
'name' => $rs['name'],
'value' => $rs['id'],
);
$rowsa = $dbs->getdata($rs['id']);
if($rowsa)foreach($rowsa as $k1=>$rs1){
$rows[] = array(
'name' => ''.$str1.'├'.$rs1['name'],
'value' => $rs1['id'],
);
}
}
return $rows;
}
/**
* $lx=0默认,1领用销售,2采购,3调拨
*/
public function getgoodsdata($lx=0)
{
$typeid = $this->rock->get('selvalue');
$limit = (int)$this->rock->get('limit', '10');
$page = (int)$this->rock->get('page', '1');
$key = $this->rock->get('key');
$where = '1=1';
if(!isempt($typeid)){
$alltpeid = m('option')->getalldownid($typeid);
$where = 'a.`typeid` in('.$alltpeid.')';
}
$stockarr = array();
if($lx==3){
$ckid = $this->rock->get('ckid');
$aids = '0';
if(!isempt($ckid)){
$rowss= $this->db->getall("select `aid`,sum(`count`)as counts from `[Q]goodss` where `depotid`='$ckid' group by `aid`");
foreach($rowss as $k=>$rs){
$aids.=','.$rs['aid'].'';
$stockarr[$rs['aid']] = $rs['counts'];
}
}
$where.= ' and a.`id` in('.$aids.')';
}
$where .= m('admin')->getcompanywhere(1,'a.');
if($key){
$key= $this->rock->jm->base64decode($key);
$where.= " and (a.`name` like '%$key%' or a.`num` like '%$key%' or a.`xinghao` like '%$key%' or a.`guige` like '%$key%')";
}
$rowss = $this->db->getall('select SQL_CALC_FOUND_ROWS a.`id`,a.`name`,a.`xinghao`,a.`num`,a.`guige`,a.`stock`,a.`price`,a.`unit`,b.`name` as `typename` from `[Q]goods` a left join `[Q]option` b on a.`typeid`=b.`id` where '.$where.' limit '.(($page-1)*$limit).','.$limit.'');
$totalCount = $this->db->found_rows();
$rows = array();
foreach($rowss as $k=>$rs){
$name = $rs['name'];
if(!isempt($rs['xinghao']))$name.='('.$rs['xinghao'].')';
$stock = $rs['stock'];
if($lx==3){
$stock = arrvalue($stockarr,$rs['id'],'0');
}
$baar = array(
'name' => $name,
'value' => $rs['id'],
'num' => $rs['num'],
'price' => $rs['price'],
'unit' => $rs['unit'],
'stock' => $stock,
'subname' => $rs['num'].' '.$rs['typename'],
);
if(($lx==1 || $lx==3) && $stock<='0'){
$baar['disabled']= true;//领用没有库存了
$baar['subname'].= ' 无库存';
}
$rows[] = $baar;
}
if($lx==0)return $rows;
$selectdata = $this->getgoodstype(1);
return array(
'rows' => $rows,
'selectdata'=>$selectdata,
'totalCount'=>$totalCount,
'page' => $page,
'limit' => $limit,
);
}
/**
* 主表goodm部分出入库状态更新
*/
public function upstatem($ids='')
{
$dbm = m('goodm');
$where= '';
if($ids!='')$where="`id` in($ids) and ";
$rows = $dbm->getall(''.$where.'`status`=1 and `state` in(0,2)');
foreach($rows as $k=>$rs){
$id = $rs['id'];
$state = $rs['state'];
$rsone = $this->db->getone('[Q]goodn','`mid`='.$id.'','sum(`count`)count,sum(`couns`)couns');
$count = floatval($rsone['count']);
$couns = floatval($rsone['couns']);
if($couns>=$count){
$zt = 1;
}else if($couns==0){
$zt = 0;
}else{
$zt = 2;
}
if($state!=$zt)$dbm->update('`state`='.$zt.'', $id);
}
}
/**
* 供应商列表
*/
public function getgys()
{
$where = m('admin')->getcompanywhere(1);
$arows = m('customer')->getall('`status`=1 and `isgys`=1 '.$where.'','id as value,name');
return $arows;
}
/**
* 获取仓库下拉框
*/
public function godepotarr()
{
$where = m('admin')->getcompanywhere(1);
$depotarr = m('godepot')->getall('1=1'.$where.'','id,depotname as name,depotnum','`sort`');
$rows = array();
foreach($depotarr as $k=>$rs){
$rows[] = array(
'name' => ''.$rs['depotnum'].'.'.$rs['name'].'',
'value' => $rs['id'],
);
}
return $rows;
}
/**
* 根据主表Id获取申请物品信息, $glx 0原始数组,1字符串
*/
public function getgoodninfo($mid, $glx=0, $mgx=5)
{
$rows = $this->db->getall("select a.`count`,a.couns,a.`price`,b.`unit`,b.`num`,b.`name`,b.`guige`,b.`xinghao`,a.`lygh` from `[Q]goodn` a left join `[Q]goods` b on a.`aid`=b.`id` where a.`mid`='$mid' order by a.`sort`");
$str = '';
if($glx==1){
foreach($rows as $k1=>$rs1){
if($k1>$mgx)break;
$str.=''.$rs1['name'].'';
if(!isempt($rs1['xinghao']))$str.='('.$rs1['xinghao'].')';
$str .=':'.$rs1['count'].''.$rs1['unit'].'';
if($rs1['lygh']=='1')$str.='(需归还)';
if($rs1['lygh']=='2')$str.='(已归还)';
$str.=';';
}
return $str;
}
return $rows;
}
/**
* 获取分类名称
*/
private $typenamearr= array();
public function gettypename($tid)
{
if(isset($this->typenamearr[$tid])){
return $this->typenamearr[$tid];
}else{
$one = $this->db->getone('[Q]option',$tid);
$varr= '';
if($one){
$varr = $one['name'];
if(!isempt($one['pid']) && $one['pid']){
$one = $this->db->getone('[Q]option',$one['pid']);
if($one && !contain($one['num'],'goodstype')){
$varr = $one['name'].'/'.$varr.'';
}
}
}
$this->typenamearr[$tid] = $varr;
return $varr;
}
}
}