| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515 | 
							- <?php defined('BASEPATH') OR exit('No direct script access allowed');
 
- class Wigs extends Start_Controller {
 
-     public function __construct(){
 
- 		parent::__construct();
 
-         $this->load->library('session');
 
-         $this->load->_model('Model_fullorder','fullorder');
 
- 		$this->load->_model('Model_fullordertt','fullordertt');
 
- 		$this->load->_model('Model_fullordersmt','fullordersmt');
 
- 		$this->load->_model('Model_shop','shop');
 
- 		$this->load->_model('Model_typeclass','typeclass');
 
- 		$this->load->_model('Model_express','express');
 
- 		$this->load->_model('Model_warehouse','warehouse');
 
- 		$this->load->_model('Model_customer','customer');
 
- 		$this->load->_model('Model_user','user');
 
- 		$this->load->_model('Model_headorder','headorder');
 
- 		$this->load->_model('Model_headorder_item','headorder_item');
 
- 		$this->load->_model('Model_whlabel','whlabel');
 
- 		$this->load->_model('Model_employee','employee');
 
- 		$this->load->library('order_process');
 
- 		$this->load->library('order_operation');
 
-     }
 
-     public function _remap($arg,$arg_array)
 
-     {
 
- 		if($arg == 'add')//添加
 
-         {
 
-              $this->_add();
 
-         }
 
- 		else if($arg == 'edit')//修改
 
-         {
 
-              $this->_edit($arg_array);
 
-         }
 
- 		else if($arg == 'rows')//获取数据
 
-         {
 
-              $this->wigslist();
 
- 		}
 
- 		else if($arg == 'test')//获取数据
 
-         {
 
-              $this->test();
 
- 		}
 
- 		else if($arg == 'assign')//获取数据
 
-         {
 
-              $this->assign();
 
- 		}
 
- 		else if($arg == 'processAdd')//获取数据
 
-         {
 
-              $this->processAdd();
 
- 		}
 
- 		else if($arg == 'printall')//获取数据
 
-         {
 
-              $this->printAll();
 
- 		}
 
- 		else if($arg == 'print')//获取数据
 
-         {
 
-              $this->_print();
 
- 		}
 
- 		else if($arg == 'ok')//获取数据
 
-         {
 
-              $this->_ok();
 
- 		}
 
- 		else if($arg == 'print_ok')//获取数据
 
-         {
 
-              $this->print_ok();
 
-         }else if($arg=="scan"){
 
- 			$this->scan();
 
- 		}
 
- 		else
 
- 		{
 
- 			 $this->_index();
 
- 		}
 
- 	}
 
- 	public function _ok(){
 
-      $this->_Template('wigslist_ok',$this->data);	
 
- 	}
 
- 	public function _print()
 
- 	{
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(isset($_SESSION['api']))
 
- 		{
 
- 			$user = $this->user->get_api($_SESSION['api']);
 
- 			$usp = $user;
 
- 		    $fgshop = "";$sid = "";$wid="";$wtype="";
 
- 		    $usersp = explode('|',trim($user['shop'],'|'));
 
- 			$userwh = explode('|',trim($user['warehouse'],'|'));
 
- 			foreach ($usersp as $value) 
 
- 		    {
 
- 				$fgshop .= " shop = ".$value." or";
 
- 				$sid .= " id = ".$value." or";
 
- 			}
 
- 			foreach ($userwh as $value) 
 
- 		    {
 
- 				$wid .= " id = ".$value." or";
 
- 				$wtype .= " type = ".$value." or";
 
- 			}
 
- 		}
 
- 		if(isset($post['page']))  
 
- 		{
 
- 		    $page = $this->input->post('page',true);
 
- 		    $perpage = $this->input->post('perpage',true);
 
- 			$timetk = $this->input->post('timetk',true);//订单开始时间
 
- 			$timetj = $this->input->post('timetj',true);//订单结束时间
 
- 			$shop = $this->input->post('shop',true);//店铺
 
- 			$wigs = $this->input->post('wigs',true);//订单状态 9.未打印 1.已打印 2.已分配 3. 已完成
 
- 			$orderinfo = $this->input->post('orderinfo',true);//订单号
 
- 			$print = $this->input->post('print',true);
 
- 			$number = $this->input->post('number',true);//订单编号
 
- 			$info = $this->input->post('info',true);
 
-             $type = $this->input->post('type',true);//仓库
 
- 			$timetk = strtotime($timetk);
 
- 			$timetj = strtotime($timetj);
 
- 			$where = (isset($_SESSION['api']))?"mergeid != '1' and (state = '207' or state = '209') and (".rtrim($fgshop,'or').") and (".rtrim($wtype,'or').")":"id = '0'";
 
- 			if(empty($wigs)){
 
- 				$wigs=9;
 
- 			}
 
- 			// $wigs=9;
 
- 			if($wigs == '1')//已打印的订单
 
-             {
 
-                 $where  .= " and printtime > '$timetk' and printtime < '$timetj'";
 
-             }
 
- 			else//未打印
 
- 			{
 
- 				$where  .= " and express != 0 and printtype > 0 and printtype < 3 and print = 2 and review > 4 and library = 1";
 
- 			
 
- 			}
 
- 			if($shop)
 
-             {
 
-                 $where  .= " and shop = '$shop'";
 
-             }
 
- 			if($wigs)
 
-             {
 
-                 $where  .= " and wigs>0  and wigs != 8   and wigs <= '$wigs'";
 
-             }
 
- 			if($orderinfo)
 
-             {
 
-                 $where  .= " and orderinfo = '$orderinfo'";
 
-             }
 
- 			if($number)
 
-             {
 
-                 $where  .= " and number = '$number'";
 
-             }
 
-             // if($type)
 
-             // {
 
-             //     $where  .= " and type = '$type'";
 
- 			// }
 
- 			//$where .=" and fpdata like '%Wigs%' ";
 
- 			$where  .= " and type = 4";
 
-             //数据排序
 
- 			// $order_str = ($print != 3)?"id desc":"printtime desc";
 
- 			$order_str = "id desc";
 
-             if(empty($page))
 
- 		    {
 
-                 $start = 0;
 
- 		    	$perpage = 1;
 
-             }
 
- 		    else
 
- 		    {
 
-                 $start = ($page - 1)*$perpage;
 
-             }
 
- 			$info_list = array();
 
- 			$info_listsmt = array();
 
- 			$dlz = 0; $smt = 0;
 
- 			if($info != 'fullordersmt')
 
- 			{
 
-             //取得信息列表
 
-             $info_list = $this->fullorder->find_all($where,'id,shop,orderinfo,number,shipremarks,wigs,wigsprinttime',$order_str,$start,$perpage);
 
- 			 //格式化数据
 
-             foreach ($info_list as $key=>$value) 
 
- 		    {
 
- 				$info_list[$key]['id'] = $value['id'].'-fullorder';
 
- 				$shop = $this->shop->read($value['shop']);
 
- 				$info_list[$key]['shop'] = $shop['shopname'];
 
- 				$info_list[$key]['wigsprinttime'] = ($value['wigsprinttime'] != '0')?date('Y-m-d H:i',$value['wigsprinttime']):'无';
 
- 				$info_list[$key]['orderinfo']='<div class="orderinfo">'.$info_list[$key]['orderinfo'].'</div>'; 
 
- 				if($value['wigs'] == 9)
 
- 				{
 
- 					$info_list[$key]['wigs'] = "未打印";
 
- 				}
 
- 				else if($value['wigs'] = 1)
 
- 				{
 
- 					$info_list[$key]['wigs'] = "已打印";
 
- 				}
 
- 				else if($value['wigs'] = 2)
 
- 				{
 
- 					$info_list[$key]['wigs'] = "已分配";
 
- 				}
 
- 				else if($value['wigs'] = 3)
 
- 				{
 
- 					$info_list[$key]['wigs'] = "已完成";
 
- 				}
 
-             }
 
- 			    $dlz = $this->fullorder->find_count($where);
 
- 			}
 
- 			if($info != 'fullorder')
 
- 			{
 
- 			$info_listsmt = $this->fullordersmt->find_all($where,'id,shop,orderinfo,number,shipremarks,wigs,wigsprinttime',$order_str,$start,$perpage);
 
- 			 //格式化数据
 
-             foreach ($info_listsmt as $key=>$value) 
 
- 		    {
 
- 				$info_listsmt[$key]['id'] = $value['id'].'-fullordersmt';
 
- 				$shop = $this->shop->read($value['shop']);
 
- 				$info_listsmt[$key]['shop'] = $shop['shopname'];
 
- 				$info_listsmt[$key]['wigsprinttime'] = ($value['wigsprinttime'] != '0')?date('Y-m-d H:i',$value['wigsprinttime']):'无';
 
- 				$info_listsmt[$key]['orderinfo']='<div class="orderinfo">'.$info_listsmt[$key]['orderinfo'].'</div>'; 
 
- 				if($value['wigs'] == '9')
 
- 				{
 
- 					$info_listsmt[$key]['wigs'] = "未打印";
 
- 				}
 
- 				else if($value['wigs'] = 1)
 
- 				{
 
- 					$info_listsmt[$key]['wigs'] = "已打印";
 
- 				}
 
- 				else if($value['wigs'] = 2)
 
- 				{
 
- 					$info_listsmt[$key]['wigs'] = "已分配";
 
- 				}
 
- 				else if($value['wigs'] = 3)
 
- 				{
 
- 					$info_listsmt[$key]['wigs'] = "已完成";
 
- 				}
 
-             }
 
- 			    $smt += $this->fullordersmt->find_count($where);
 
- 			}
 
- 			//$total += $this->fullorder_smt->find_count($where);
 
- 			$total = $dlz+$smt;
 
- 			$rows = array_merge($info_list,$info_listsmt);
 
- 			//$rows = array_slice($rows,$start,$perpage);
 
- 		    $pagenum = ceil($total/$perpage);
 
- 		    $over = $total-($start+$perpage);
 
- 		    $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($rows));//array_merge($info_list,$info_list_smt,$info_listsmt)
 
- 		    echo json_encode($rows);exit;
 
- 		}
 
- 		if(isset($_SESSION['api']))
 
- 		{
 
- 			$wlshop = $this->shop->find_all('1=1 and '.rtrim($sid,'or'));
 
- 			$warehouse = $this->warehouse->find_all('1=1 and '.rtrim($wid,'or'));
 
- 		    $this->data['wlshop'] = $wlshop;
 
- 		    $this->data['warehouse'] = $warehouse;
 
- 		}
 
- 		$this->_Template('wigsprint',$this->data);
 
- 	}
 
- 	public function processAdd(){
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		$ids = $this->input->post('ids',true);
 
- 		// if();
 
- 		$success=[];
 
- 		$fail=[];
 
- 		foreach($ids as $id){
 
- 			$process=$this->order_operation->handle('add',$id);
 
- 			if($process){
 
- 				$success[]=$id;
 
- 			}else{
 
- 				$fail[]=$id;
 
- 			}
 
- 		}
 
- 		//两种方案 1 只打印success 2 打印所有 
 
- 		if(!empty($success)){
 
- 			$this->printAll($success);
 
- 		}
 
- 		echo json_encode(['status'=>0]);exit;
 
- 		
 
- 		// echo json_encode(['data'=>[
 
- 		// 	'success'=>$success,
 
- 		// 	'fail'=>$fail,
 
- 		// ]]);exit;
 
- 		
 
- 	}
 
- 	//头套带打印列表
 
- 	public function _index(){
 
- 			
 
- 		if(isset($_SESSION['api']))
 
- 		{
 
- 			$user = $this->user->get_api($_SESSION['api']);
 
- 			$usp = $user;
 
- 		    $fgshop = "";$sid = "";
 
- 		    $usersp = explode('|',trim($user['shop'],'|'));
 
- 			foreach ($usersp as $value) 
 
- 		    {
 
- 				$fgshop .= " shop = ".$value." or";
 
- 				$sid .= " id = ".$value." or";
 
- 			}
 
- 			if($user['vip'] == 1)
 
- 			{
 
- 				$vip = 1;
 
- 			}
 
- 			else
 
- 			{
 
- 				$vip = 0;
 
- 			}
 
- 		}
 
- 		else
 
- 		{
 
- 			$vip = 0;
 
- 		}
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(isset($post['page']))
 
- 		{
 
- 			$where='1=1';
 
- 			$page = $this->input->post('page',true);
 
- 			$perpage = $this->input->post('perpage',true);
 
- 			$status = $this->input->post('status',true);
 
- 			$orderinfo = $this->input->post('orderinfo',true);
 
- 			$number = $this->input->post('number',true);
 
- 			$timetk = $this->input->post('timetk',true);//订单开始时间
 
- 			$timetj = $this->input->post('timetj',true);//订单结束时间
 
- 			$timetk = strtotime($timetk);
 
- 			$timetj = strtotime($timetj);
 
- 			
 
- 			
 
- 			if(empty($page))
 
- 		    {
 
-                 $start = 0;
 
- 		    	$perpage = 1;
 
-             }
 
- 		    else
 
- 		    {
 
-                 $start = ($page - 1)*$perpage;
 
- 			}
 
- 			if($status){
 
- 				$where.=' and b.status="'.$status.'" ' ;
 
- 			}
 
- 			if($orderinfo){
 
- 				$where.=' and a.orderinfo like "%'.trim($orderinfo).'%" ' ;
 
- 			}
 
- 			if($number){
 
- 				$where.=' and a.orderinfo like "%'.trim($number).'%" ' ;
 
- 			}
 
- 			if(!empty($timetk))
 
-             {
 
-                 $where  .= " and a.created_at > '$timetk' and a.created_at < '$timetj'";
 
-             }
 
- 		
 
- 			// $select=" a.id,a.number,a.shipma,a.warehouse,a.whlable,a.number,a.orderinfo,a.shipremarks,a.created_at,b.status_id,b.status,b.state,b.flow_id";
 
- 			$select="a.id,a.number,a.shipremarks,a.warehouse,a.orderinfo,b.status,a.orderremarks";
 
- 			$query=$this->db->select($select)
 
- 			->from('headorder_item as a')
 
- 			->join('process as b',' a.`id`=b.`order_id`','inner')
 
- 			// ->join('flow_status as c','b.`status_id`=c.id')
 
- 			->where($where);
 
- 			$total=$query->count_all_results();
 
- 			$select='a.id,a.number,a.shipremarks,a.warehouse,a.orderinfo,b.status,a.orderremarks,e.name as username';
 
- 			$query=$this->db->select($select)
 
- 			->from('headorder_item as a')
 
- 			->join('process as b',' a.`id`=b.`order_id`','inner')
 
- 			->join('employee as e', 'b.`uid`=e.id','left')
 
- 			->order_by('a.id','DESC')
 
- 			// ->join('flow_status as c','b.`status_id`=c.id')
 
- 			->where($where);
 
- 			$info_list=$query->limit($perpage,$start)->get()->result_array();
 
- 			foreach ($info_list as $k=>$v) {
 
- 				$warehouse = $this->warehouse->read($v['warehouse']);
 
- 				$warehousetitle = $warehouse['title'];
 
- 				if($v['warehouse'] != 1){$warehousetitle = "<font style='color:#f64b4b'>".$warehouse['title']."</font>";}
 
- 				$info_list[$k]['orderinfo']='<div class="orderinfo">'.$info_list[$k]['orderinfo'].'</div>'; 
 
- 				$info_list[$k]['warehouse'] = $warehousetitle;
 
- 				$info_list[$k]['status']=$this->headorder_item->getStatus($v['status']);
 
- 				if(empty($info_list[$k]['username'])){
 
- 					$info_list[$k]['username']='';
 
- 				}
 
- 				$info_list[$k]['action']='';
 
- 				// $info_list[$k]['action'].="<p class='ckn'><b class='fojzof' data-type='8' data-id='".$v['id']."'>打印</b></p>";
 
- 				$info_list[$k]['action'].="<p ><b class='assign' data-id='".$v['id']."'>分配订单</b></p>";
 
- 			}
 
- 			// $total = $this->headorder_item->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('wigslist',$this->data);
 
- 	}
 
- 	public function printAll($orderids=''){
 
- 		//获取所有状态<=1的订单 包含flow
 
- 		if(!isset($orderids)||empty($orderids)){
 
- 			$orderids = $this->input->post('orderids',true);
 
- 		}
 
- 		$orderinfo = $this->input->post('orderinfo',true);
 
- 		if(!$orderids and !$orderinfo){
 
- 			echo json_encode(['status'=>0,'msg'=>'缺少参数']);exit;
 
- 		}
 
- 		
 
- 		$where='c.flow_id=1  and b.state="'.Model_Process::STATUS_PROCESSING.'"';
 
- 		$select="a.id,a.number,a.shipremarks,a.warehouse,a.orderinfo,b.status,a.orderremarks";
 
- 		$query=$this->db->select($select)
 
- 				->from('headorder_item as a')
 
- 				->join('process as b',' a.`id`=b.`order_id`','inner')
 
- 				->join('flow_status as c','b.`status_id`=c.id')	
 
- 				->where($where);
 
- 		if($orderids){
 
- 			$query->where_in('p_order',$orderids);
 
- 		}
 
- 		if($orderinfo){
 
- 			$query->where_in('orderinfo',$orderinfo);
 
- 		}
 
- 		$info_list=$query->get()->result_array();
 
- 		$data=[
 
- 			'status'=>1,
 
- 			'data'=>$info_list,
 
- 		];
 
- 		echo json_encode($data);exit;
 
- 	}
 
- 	//
 
- 	public function print_ok(){
 
- 		$flow_id=1;
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		$orderIds=$post['ids'];
 
- 		// $orderIds=187;
 
- 		if(!$orderIds){
 
- 			echo json_encode(['status'=>'false'],true);exit;
 
- 		}
 
- 		$query=	$this->db->select('*')
 
- 			->from('process')
 
- 			->where_in('order_id',$orderIds)
 
- 			// ->where('status','waitPrint')
 
- 			->where('flow_id',$flow_id)
 
- 			->where('state',Model_Process::STATUS_PROCESSING)
 
- 			->get();
 
- 		$process_list=$query->result_array();
 
- 		foreach($process_list as $k=>$v){
 
- 			if($v['status']=="waitPrint"){
 
- 				$order=$this->headorder_item->read($v['order_id']);
 
- 				$order_process=new Model_Process();
 
- 				$order_process->read($v['id']);
 
- 				$order_process->toNextStatus($order);
 
- 			}
 
- 			
 
- 		}
 
- 		echo json_encode(['status'=>'ok'],true);exit;
 
- 	}
 
- 	public function scan(){
 
- 		$number = $this->input->post('number', TRUE);
 
- 		$flow_id=1;
 
- 		if(!$number){
 
- 			echo json_encode(['success'=>false,'msg'=>'缺少参数'],true);exit;
 
- 		}
 
- 		$headorder_item=$this->headorder_item->find('number="'.$number.'"');
 
- 		$info=$this->order_process->process($headorder_item['id']);
 
- 		if(empty($info)){
 
- 			echo json_encode(['success'=>false,'msg'=>'扫描数据有误'],true);exit;
 
- 		}
 
- 		if($info['status']=='waitScan'){
 
- 			if($info['state']!=Model_Process::STATUS_PROCESSING){
 
- 				echo json_encode(['success'=>false,'msg'=>'该订单已被取消,请确认订单状态'],true);exit;
 
- 			}
 
- 			$order=$this->headorder_item->read($info['order_id']);
 
- 			$order_process=new Model_Process();
 
- 			$order_process->read($info['id']);
 
- 			$order_process->toNextStatus($order);
 
- 			echo json_encode(['success'=>true,'msg'=>'扫描成功'],true);exit;
 
- 		}else{
 
- 			echo json_encode(['success'=>false,'msg'=>'已扫描'],true);exit;
 
- 		}
 
- 		
 
- 	}
 
- 	public function assign(){
 
- 		//TODO 判断权限
 
- 		$post = $this->input->post(NULL, TRUE);
 
- 		if(!isset($post['employee_id'])||empty($post['employee_id'])){
 
- 			$employee_list=$this->employee->find_all('sign_at >='.strtotime(date('Y-m-d 00:00:00')));
 
- 			if(empty($employee_list)){
 
- 				echo json_encode(array('msg'=>'未打卡,请打卡','success'=>false));exit;
 
- 			}
 
- 				echo json_encode(array('data'=>$employee_list,'success'=>true));exit;
 
- 		}else{
 
- 			$order_id=$post['order_id'];
 
- 			$employee_id=$post['employee_id'];
 
- 			if(!$order_id||!$employee_id){
 
- 				echo json_encode(['success'=>false,'msg'=>'缺少参数']);exit;
 
- 			}
 
- 			$info=$this->employee->read($employee_id);
 
- 			if(empty($info['sign_at'])||$info['sign_at']<strtotime(date('Y-m-d 00:00:00)'))){
 
- 					echo json_encode(['success'=>false,'msg'=>'未打卡']);exit;
 
- 			}
 
- 			//todo 判断订单状态
 
- 			$order=$this->headorder_item->read($order_id);
 
- 			$process=$this->order_process->process($order_id);
 
- 			if($process['state']!=Model_Process::STATUS_PROCESSING){
 
- 				echo json_encode(['success'=>false,'msg'=>'订单已经被取消,请确认订单状态']);exit;
 
- 			}
 
- 			$res=$this->db->set('uid',$employee_id)->where('order_id',$order_id)->update('process');
 
- 			if($process['status']!='waitAssign'){
 
- 				echo json_encode(['success'=>false,'msg'=>'状态异常']);exit;
 
- 			}
 
- 			$order_process=new Model_Process();
 
- 			$order_process->read($process['id']);
 
- 			if($res){
 
- 				$order_process->toNextStatus($order);
 
- 				echo json_encode(['success'=>true,'msg'=>'成功']);exit;
 
- 			}
 
- 		}
 
- 	}
 
- }
 
 
  |