| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 | <?php defined('BASEPATH') OR exit('No direct script access allowed');class Machining extends Start_Controller {	public function __construct(){		parent::__construct();		$this->load->library('session');		$this->load->_model('Model_machining','machining');		$this->load->_model('Model_typeclass','typeclass');		$this->load->_model('Model_customer','customer');	}	//定义方法的调用规则 获取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 == 'excel')        {             $this->_excel();        }		else if($arg == 'down')        {             $this->_down();        }		else if($arg == 'pindex')        {			$this->_pindex();        }		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);			$title = $this->input->post('title',true);			$type = $this->input->post('type',true);			$where = "1=1 ";			if($type)            {                $where  .= " and type = '$type'";            }			if($title)            {                $where  .= " and title like '%$title%'";            }            //数据排序            $order_str = "id asc";            if(empty($page))		    {                $start = 0;		    	$perpage = 1;            }		    else		    {                $start = ($page - 1)*$perpage;            }			if($type)			{                //取得信息列表                $info_list = $this->machining->find_all($where,'id,type,num,title,color',$order_str,$start,$perpage);			    foreach ($info_list as $k=>$v) 		        {				    if($v['type'] == 1)				    {					    $info_list[$k]['type'] = '半成品';				    }				    else if($v['type'] == 2)				    {					    $info_list[$k]['type'] = '成品';				    }			    }				$total = $this->machining->find_count($where);			}			else			{				$list = $this->machining->find_all($where,'id,type,num,title,color');				$info = array();$data = array();				foreach ($list as $k=>$v) 		    	{					$key = preg_replace('/( | | |\s)/','',$v['title']).preg_replace('/( | | |\s)/','',$v['color']);					if(isset($data[$key]))					{						$data[$key]['num'] += $v['num'];						$data[$key]['type'] = '(半成品+成品)';					}					else					{						if($v['type'] == 1)				        {					        $v['type'] = '半成品';				        }				        else if($v['type'] == 2)				        {					        $v['type'] = '成品';				        }					    $data[$key] = $v;					}		    	}				array_multisort(array_column($data,'type'),SORT_ASC,$data);				foreach ($data as $k=>$v) 		    	{					//if($v['type'] == '半成品+成品')					//{					    $info[] = $v;					//}				}				$info_list = array_slice($info,$start,$perpage);				$total = count($info);			}		    $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('machining',$this->data);	}		//手机管理	public function _pindex()	{		$post = $this->input->post(NULL, TRUE);		if(isset($post['page']))  		{		    $page = $this->input->post('page',true);		    $perpage = $this->input->post('perpage',true);			$title = $this->input->post('title',true);			$type = $this->input->post('type',true);			$where = "1=1 ";			if($type)            {                $where  .= " and type = '$type'";            }			if($title)            {                $where  .= " and title like '%$title%'";            }            //数据排序            $order_str = "id asc";            if(empty($page))		    {                $start = 0;		    	$perpage = 1;            }		    else		    {                $start = ($page - 1)*$perpage;            }            if($type)			{                //取得信息列表                $info_list = $this->machining->find_all($where,'id,type,num,title,color',$order_str,$start,$perpage);			    foreach ($info_list as $k=>$v) 		        {				    if($v['type'] == 1)				    {					    $info_list[$k]['type'] = '半';				    }				    else if($v['type'] == 2)				    {					    $info_list[$k]['type'] = '成';				    }			    }				$total = $this->machining->find_count($where);			}			else			{				$list = $this->machining->find_all($where,'id,type,num,title,color');				$info = array();$data = array();				foreach ($list as $k=>$v) 		    	{					$key = preg_replace('/( | | |\s)/','',$v['title']).preg_replace('/( | | |\s)/','',$v['color']);					if(isset($data[$key]))					{						$data[$key]['num'] += $v['num'];						$data[$key]['type'] = '半+成';					}					else					{						if($v['type'] == 1)				        {					        $v['type'] = '半';				        }				        else if($v['type'] == 2)				        {					        $v['type'] = '成';				        }					    $data[$key] = $v;					}		    	}				array_multisort(array_column($data,'type'),SORT_ASC,$data);				foreach ($data as $k=>$v) 		    	{					//if($v['type'] == '半成品+成品')					//{					    $info[] = $v;					//}				}				$info_list = array_slice($info,$start,$perpage);				$total = count($info);			}		    $total = $this->machining->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('phone/p_machining',$this->data);	}	//添加	public function _add()	{		$post = $this->input->post(NULL, TRUE);		if(isset($post['title']))		{			$post['time'] = time();			if($this->machining->insert($post))        	{         		echo json_encode(array('msg'=>'添加成功','success'=>true));exit;       	 	}       		else        	{           		echo json_encode(array('msg'=>'添加失败,请重试','success'=>false));exit;        	}		}		$this->_Template('machining_add',$this->data);	}	//修改	public function _edit($arg_array)	{		$post = $this->input->post(NULL, TRUE);		if(isset($post['id']))		{			if($this->machining->save($post,$id))        	{         		echo json_encode(array('msg'=>'修改成功','success'=>true));exit;       	 	}       		else        	{           		echo json_encode(array('msg'=>'修改失败,请重试','success'=>false));exit;        	}		}		$machining = $this->machining->read($arg_array[0]);		$this->data['machining'] = $machining;		$this->_Template('machining_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->machining->remove($v);            }            echo json_encode(array('del'=>$id_arr,'msg'=>'删除记录成功!','success'=>true));		}    }		public function _excel()	{		$dir = '/data/excel/'.date('Ymd',time()).'/';		$config['upload_path'] = '.'.$dir ;		$config['file_name'] = date('Ymd_His_',time()).rand(1000,9999);        $config['allowed_types'] = 'xls|xlsx';        $config['max_size'] = 10240;		$this->load->library('upload', $config);		$this->upload->initialize($config);        if ($this->upload->do_upload('userfile'))        {			$full_path = $dir.$this->upload->data('file_name');			$fileName = '.' . $full_path;            if (!file_exists($fileName)) 			{				echo json_encode(array('msg'=>"上传失败,请重试",'success'=>false));exit;            }			else			{				require_once "./data/excel/PHPExcel/IOFactory.php";				@$phpExcel = PHPExcel_IOFactory::load($fileName);// 载入当前文件				@$phpExcel->setActiveSheetIndex(0);// 设置为默认表				$sheetCount = $phpExcel->getSheetCount();// 获取表格数量				$row = $phpExcel->getActiveSheet()->getHighestRow();// 获取行数				$column = $phpExcel->getActiveSheet()->getHighestColumn();// 获取列数				++$column;//如果列数大于26行				$list = array();				for ($i = 2; $i <= $row; $i++) // 行数循环				{					$data = array();                    for ($c = 'A'; $c != $column; $c++)  // 列数循环	                {						$data[] = $phpExcel->getActiveSheet()->getCell($c . $i)->getValue();                    }					$list[] = $data;                }			}			$i = 0;		    $this->db->trans_begin();		    foreach ($list as $key=>$value)		    {				$value['2'] = $value['2']?str_replace(array('/( | | |\s)/'),array(' '),$value['2']):'';				$value['3'] = $value['3']?str_replace(array('/( | | |\s)/'),array(' '),$value['3']):'';				$post['type'] = $value['0'];				$post['num'] = $value['1'];				$post['title'] = $value['2'];				$post['color'] = $value['3'];			    $post['time'] = time();		    	$this->machining->insert($post);			}			if ($this->db->trans_status() === FALSE)            {				$this->db->trans_commit();				echo json_encode(array('msg'=>'添加失败,请重试','success'=>false));exit;            }            else            {                $this->db->trans_commit();				echo json_encode(array('msg'=>'添加成功','success'=>true));exit;            }        }		else		{			echo json_encode(array('msg'=>'上传失败!','t'=>$this->upload->display_errors(),'success'=>false));exit;		}    }	public function _down()	{		if(isset($_GET['excel']))  		{            $title = "导入模板";             $titledata = array(array('类型:1.半成品2.成品','数量','名称','蕾丝颜色'),array('1','20','4*4 body','black'));            $filename = $title.".xls";            $this->customer->get_excel($titledata,$filename);	    }	}}
 |