| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 | 
							- <?php defined('BASEPATH') OR exit('No direct script access allowed');
 
- class stock extends Start_Controller {
 
- 	public function __construct(){
 
- 		parent::__construct();
 
- 		$this->load->library('session');
 
- 		$this->load->_model('Model_stock','stock');
 
- 		$this->load->_model('Model_typeclass','typeclass');
 
- 		$this->load->_model('Model_warehouse','warehouse');
 
- 		$this->load->_model('Model_product','product');
 
- 		$this->load->_model('Model_whlabel','whlabel');
 
- 	}
 
- 	//定义方法的调用规则 获取URI第二段值
 
-     public function _remap($arg,$arg_array)
 
-     {
 
- 		if($arg == 'add')//添加
 
-         {
 
-              $this->_add();
 
-         }
 
- 		else if($arg == 'edit')//修改
 
-         {
 
-              $this->_edit($arg_array);
 
-         }
 
- 		else if($arg == 'del')//修改
 
-         {
 
-              $this->_del();
 
-         }
 
- 		else if($arg == 'list')
 
-         {
 
-              $this->_list();
 
-         }
 
- 		else
 
- 		{
 
- 			 $this->_index();
 
- 		}
 
-     }
 
- 	//管理
 
- 	public function _index()
 
- 	{
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(isset($post['page']))  
 
- 		{
 
- 		    $page = $this->input->post('page',true);
 
- 		    $perpage = $this->input->post('perpage',true);
 
- 			$sku = $this->input->post('sku',true);
 
- 			$category = $this->input->post('category',true);
 
- 			$grade = $this->input->post('grade',true);
 
- 			$size = $this->input->post('size',true);
 
- 			$lowe = $this->input->post('lowe',true);
 
- 			$color = $this->input->post('color',true);
 
- 			$where = "1=1 ";
 
- 			if($sku)
 
-             {
 
-                 $where  .= " and sku = '$sku'";
 
-             }
 
- 			if($category)
 
-             {
 
-                 $where  .= " and category = '$category'";
 
-             }
 
- 			if($grade)
 
-             {
 
-                 $where  .= " and grade = '$grade'";
 
-             }
 
- 			if($size)
 
-             {
 
-                 $where  .= " and size = '$size'";
 
-             }
 
- 			if($lowe)
 
-             {
 
-                 $where  .= " and lowe = '$lowe'";
 
-             }
 
- 			if($color)
 
-             {
 
-                 $where  .= " and color = '$color'";
 
-             }
 
-             //数据排序
 
-             $order_str = "id asc";
 
-             if(empty($page))
 
- 		    {
 
-                 $start = 0;
 
- 		    	$perpage = 1;
 
-             }
 
- 		    else
 
- 		    {
 
-                 $start = ($page - 1)*$perpage;
 
-             }
 
-             //取得信息列表
 
-             $info_list = $this->stock->find_all($where,'id,warehouse,sku,title,znum,ynum',$order_str,$start,$perpage);
 
- 			foreach ($info_list as $key=>$value) 
 
- 		    {
 
- 				$warehouse = $this->warehouse->read($value['warehouse']);
 
- 				$info_list[$key]['warehouse'] = $warehouse['title'];
 
- 			}
 
- 		    $total = $this->stock->find_count($where);
 
- 		    $pagenum = ceil($total/$perpage);
 
- 		    $over = $total-($start+$perpage);
 
- 		    $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list));
 
- 		    echo json_encode($rows);exit;
 
- 		}
 
- 		$this->_Template('stock',$this->data);
 
- 	}
 
- 	//添加
 
- 	public function _add()
 
- 	{
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(isset($post['category']))
 
- 		{
 
- 			$category = $this->input->post('category',true);
 
- 			$warehouse = $this->input->post('warehouse',true);
 
- 			$znum = $this->input->post('znum',true);
 
- 			$ynum = $this->input->post('ynum',true);
 
- 			$hairtype = explode(',',rtrim($this->input->post('hairtype',true),','));
 
- 			$grade = explode(',',rtrim($this->input->post('grade',true),','));
 
- 			$size = explode(',',rtrim($this->input->post('size',true),','));
 
- 			$color = explode(',',rtrim($this->input->post('color',true),','));
 
- 			$lowe = explode(',',rtrim($this->input->post('lowe',true),','));
 
- 			$title = "";
 
- 			$ps = array('warehouse'=>$warehouse,'znum'=>$znum,'ynum'=>$ynum);
 
- 			$rows = array(array($category),$hairtype,$grade,$size,$color,$lowe);
 
- 			$key = array('category','hairtype','grade','size','color','lowe');
 
- 			if($category == 126 || $category == 131|| $category == 132)
 
- 			{
 
- 				$number = $this->cp($ps,$rows,$key);
 
- 			}
 
- 			else if($category == 127)
 
- 			{
 
- 				$type = $this->input->post('type',true);
 
- 				$headroad = explode(',',rtrim($this->input->post('headroad',true),','));
 
- 				$density = explode(',',rtrim($this->input->post('density',true),','));
 
- 				$lacesize = explode(',',rtrim($this->input->post('lacesize',true),','));
 
- 				if($type == 195 || $type == 197 || $type == 199)
 
- 				{
 
- 					array_push($rows,array($type),$headroad,$density,$lacesize);
 
- 					array_push($key,'type','headroad','density','lacesize');
 
- 					$number = $this->cp($ps,$rows,$key);
 
- 				}
 
- 			    else
 
- 				{
 
- 					array_push($rows,array($type),$headroad,$density);
 
- 					array_push($key,'type','headroad','density');
 
- 					$number = $this->cp($ps,$rows,$key);
 
- 				}
 
- 				
 
- 			}
 
- 			
 
- 			else if($category == 128)
 
- 			{
 
- 				$lacetype = $this->input->post('lacetype',true);
 
- 				$haircap = explode(',',rtrim($this->input->post('haircap',true),','));
 
- 				$density = explode(',',rtrim($this->input->post('density',true),','));
 
- 			    array_push($rows,array($lacetype),$haircap,$density);
 
- 				array_push($key,'lacetype','haircap','density');
 
- 				$number = $this->cp($ps,$rows,$key);
 
- 				
 
- 			}
 
- 			else if($category == 129)
 
- 			{
 
- 				$wide = explode(',',rtrim($this->input->post('wide',true),','));
 
- 			    array_push($rows,$wide);
 
- 				array_push($key,'wide');
 
- 				$number = $this->cp($ps,$rows,$key);
 
- 				
 
- 			}
 
- 			else if($category == 130)
 
- 			{
 
- 				$weight = explode(',',rtrim($this->input->post('weight',true),','));
 
- 			    array_push($rows,$weight);
 
- 				array_push($key,'weight');
 
- 				$number = $this->cp($ps,$rows,$key);
 
- 				
 
- 			}
 
- 			else if($category == 133)
 
- 			{
 
- 				$package = explode(',',rtrim($this->input->post('package',true),','));
 
- 				$unitweight = explode(',',rtrim($this->input->post('unitweight',true),','));
 
- 			    array_push($rows,$package,$unitweight);
 
- 				array_push($key,'package','unitweight');
 
- 				$number = $this->cp($ps,$rows,$key);
 
- 				
 
- 			}
 
- 			else if($category == 134)
 
- 			{
 
- 				$pieceweight = explode(',',rtrim($this->input->post('pieceweight',true),','));
 
- 			    array_push($rows,$pieceweight);
 
- 				array_push($key,'pieceweight');
 
- 				$number = $this->cp($ps,$rows,$key);
 
- 				
 
- 			}
 
- 			if(isset($number))
 
- 			{
 
- 			    echo json_encode(array('msg'=>'成功!重复:'.$number['0'].' 条,无配置:'.$number['1'].'条','success'=>true));exit;
 
- 			}
 
- 			else
 
- 			{
 
- 				echo json_encode(array('msg'=>'提交失败,请重试','success'=>true));exit;
 
- 			}
 
- 		}
 
- 		$this->_Template('stock_add',$this->data);
 
- 	}
 
- 	//修改
 
- 	public function _edit($arg_array)
 
- 	{
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(isset($post['id']))
 
- 		{
 
- 			$list = array();$num = "";$title = "";
 
- 			$id = $this->input->post('id',true);
 
- 			$data = $this->stock->read($id);
 
- 			foreach($data as $k=>$v)
 
- 			{
 
- 				$post[$k] = 0;
 
-             }
 
- 			$post['id'] = $id;
 
- 			$post['sku'] = $this->input->post('sku',true);
 
- 			$post['warehouse'] = $this->input->post('warehouse',true);
 
- 			$post['znum'] = $this->input->post('znum',true);
 
- 			$post['ynum'] = $this->input->post('ynum',true);
 
- 			$category = $this->input->post('category',true);
 
- 			$list['category'] = $category;
 
- 			$list['hairtype'] = $this->input->post('hairtype',true);
 
- 			$list['grade'] = $this->input->post('grade',true);
 
- 			$list['size'] = $this->input->post('size',true);
 
- 			$list['color'] = $this->input->post('color',true);
 
- 			$list['lowe'] = $this->input->post('lowe',true);
 
- 			if($category == 127)
 
- 			{
 
- 				$list['type'] = $this->input->post('type',true);
 
- 				$list['headroad'] = $this->input->post('headroad',true);
 
- 				$list['density'] = $this->input->post('density',true);
 
- 				if($list['type'] == 195 || $list['type'] == 197 || $list['type'] == 199)
 
- 				{
 
- 					$list['lacesize'] = $this->input->post('lacesize',true);
 
- 				}
 
- 			}
 
- 			else if($category == 128)
 
- 			{
 
- 				$list['lacetype'] = $this->input->post('lacetype',true);
 
- 				$list['haircap'] = $this->input->post('haircap',true);
 
- 				$list['density'] = $this->input->post('density',true);
 
- 			}
 
- 			else if($category == 129)
 
- 			{
 
- 				$list['wide'] = $this->input->post('wide',true);
 
- 			}
 
- 			else if($category == 130)
 
- 			{
 
- 				$list['weight'] = $this->input->post('weight',true);
 
- 			}
 
- 			else if($category == 133)
 
- 			{
 
- 				$list['package'] = $this->input->post('package',true);
 
- 				$list['unitweight'] = $this->input->post('unitweight',true);
 
- 			}
 
- 			else if($category == 134)
 
- 			{
 
- 				$list['pieceweight'] = $this->input->post('pieceweight',true);
 
- 			}
 
- 			foreach($list as $k=>$v)
 
- 			{
 
- 				if($v != 0)
 
- 				{
 
- 					$num .=$v;
 
- 					$post[$k] = $v;
 
- 					$typeclass = $this->typeclass->read($v);
 
- 			        $title = $title.$typeclass['title']." ";
 
- 				}
 
-             }
 
- 			$post['title'] = rtrim($title,' ');
 
- 			$post['number'] = $num;
 
- 			$rows = $this->stock->get_number($num);
 
- 			if(!$rows || $rows['id'] == $id)
 
-         	{
 
- 				$this->stock->save($post,$id);
 
-          		echo json_encode(array('msg'=>'修改成功','success'=>true));exit;
 
-        	 	}
 
-        		else
 
-         	{
 
-            		echo json_encode(array('msg'=>'修改失败,有重复数据','success'=>false));exit;
 
-         	}
 
- 		}
 
- 		$arg_array = $arg_array[0];
 
- 		$stock = $this->stock->read($arg_array);
 
- 		$this->data['stock'] = $stock;
 
- 		$this->_Template('stock_edit',$this->data);
 
- 	}
 
- 	//删除
 
-     public function _del()
 
- 	{
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(isset($post['s']))  
 
- 		{
 
-             $id_arr = $this->input->post('s');
 
-             $id_arr =  explode(',',$id_arr);
 
-             if(!$id_arr)
 
-             {
 
-                 echo json_encode(array('msg'=>'参数错误!','success'=>false));exit;
 
-             }
 
-             //循环删除记录
 
-             foreach ($id_arr as $v) 
 
- 		    {
 
-                 $this->stock->remove($v);
 
-             }
 
-             echo json_encode(array('del'=>$id_arr,'msg'=>'删除记录成功!','success'=>true));
 
- 		}
 
-     }
 
- 	//笛卡儿积
 
- 	function cp($ps,$sets,$list)
 
- 	{
 
-         $result = array();$j=0;$l="";
 
-         for($i=0,$count=count($sets); $i<$count-1; $i++)
 
- 	    {
 
-             if($i==0)
 
- 			{
 
-                 $result = $sets[$i];
 
-             }
 
-         $tmp = array();
 
-         foreach($result as $res)
 
- 		{
 
-             foreach($sets[$i+1] as $set)
 
- 			{
 
-                 $tmp[] = $res.','.$set;
 
-             }
 
-         }
 
-         $result = $tmp;
 
-         }
 
-         $this->db->trans_begin();
 
-         foreach ($result as $v) 
 
- 	    {
 
- 		    $post = array();$title = "";$num="";
 
- 		    $data = explode(',',$v);
 
- 		    for($i=0;$i<count($list); $i++)
 
- 		    {
 
- 			    $post[$list[$i]] = $data[$i];
 
- 			    $typeclass = $this->typeclass->read($data[$i]);
 
- 			    $title = $title.$typeclass['title']." ";
 
- 				if($data[$i] != 0)
 
- 				{
 
- 				    $num .=$data[$i];//所有数据ID拼接
 
- 				}
 
- 		    }
 
- 			 foreach ($ps as $kp=>$vp) 
 
- 	        {
 
- 				$post[$kp] = $vp;
 
- 			}
 
- 			$post['number'] = $num;
 
- 			$info_list = $this->stock->get_number($num);//查询stock是否存在此拼接的数据ID
 
- 			if($info_list)
 
- 			{
 
- 				$j++;
 
- 			}
 
- 			else
 
- 			{
 
- 				$csku = $this->product->get_number($num);
 
- 				if($csku)
 
- 				{
 
- 					$post['sku'] = $csku['sku'];
 
- 		            $post['title'] = rtrim($title,' ');
 
- 		            $this->stock->insert($post);
 
- 				}
 
- 				else
 
- 				{
 
- 					$l++;
 
- 				}
 
- 			}
 
- 					
 
- 	    }
 
- 	    if ($this->db->trans_status() === FALSE)
 
-         {
 
-             $this->db->trans_commit();
 
- 			return NULL;
 
-         }
 
-         else
 
-         {
 
-             $this->db->trans_commit();
 
- 			return array('0'=>$j,'1'=>$l);
 
-         }
 
-     }
 
- 	
 
-     //管理
 
- 	public function _list()
 
- 	{
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(isset($post['page']))  
 
- 		{
 
- 		    $page = $this->input->post('page',true);
 
- 		    $perpage = $this->input->post('perpage',true);
 
- 			$sku = $this->input->post('sku',true);
 
- 			$category = $this->input->post('category',true);
 
- 			$grade = $this->input->post('grade',true);
 
- 			$size = $this->input->post('size',true);
 
- 			$lowe = $this->input->post('lowe',true);
 
- 			$color = $this->input->post('color',true);
 
- 			$where = "1=1 ";
 
- 			if($sku)
 
-             {
 
-                 $where  .= " and sku = '$sku'";
 
-             }
 
- 			if($category)
 
-             {
 
-                 $where  .= " and category = '$category'";
 
-             }
 
- 			if($grade)
 
-             {
 
-                 $where  .= " and grade = '$grade'";
 
-             }
 
- 			if($size)
 
-             {
 
-                 $where  .= " and size = '$size'";
 
-             }
 
- 			if($lowe)
 
-             {
 
-                 $where  .= " and lowe = '$lowe'";
 
-             }
 
- 			if($color)
 
-             {
 
-                 $where  .= " and color = '$color'";
 
-             }
 
-             //数据排序
 
-             $order_str = "id asc";
 
-             if(empty($page))
 
- 		    {
 
-                 $start = 0;
 
- 		    	$perpage = 1;
 
-             }
 
- 		    else
 
- 		    {
 
-                 $start = ($page - 1)*$perpage;
 
-             }
 
-             //取得信息列表
 
-             $info_list = $this->stock->find_all($where,'id,warehouse,sku,title,pieceweight,znum,ynum,number',$order_str,$start,$perpage);
 
- 			foreach ($info_list as $key=>$value) 
 
- 		    {
 
- 				$warehouse = $this->warehouse->read($value['warehouse']);
 
- 				$info_list[$key]['warehouse'] = $warehouse['title'];
 
- 				$n = $this->whlabel->find_count('sku = "'.$value['sku'].'"');
 
- 				$info_list[$key]['pieceweight'] = $n;
 
- 				if($value['znum'] > $n)
 
- 				{
 
- 					if($value['ynum'] > $n)
 
- 					{
 
- 					    $info_list[$key]['number'] = "<font style='color:#f33'>".($value['znum']-$n)."</font>";
 
- 					}
 
- 					else
 
- 					{
 
- 						$info_list[$key]['number'] = $value['znum']-$n;
 
- 					}
 
- 				}
 
- 			}
 
- 		    $total = $this->stock->find_count($where);
 
- 		    $pagenum = ceil($total/$perpage);
 
- 		    $over = $total-($start+$perpage);
 
- 		    $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list));
 
- 		    echo json_encode($rows);exit;
 
- 		}
 
- 		$this->_Template('stock_list',$this->data);
 
- 	}
 
- }
 
 
  |