| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 | 
							- <?php
 
- defined('BASEPATH') OR exit('No direct script access allowed');
 
- class Aac extends Start_Controller {
 
-     public function __construct(){
 
- 		parent::__construct();
 
- 		$this->load->library('session');
 
- 		$this->load->_model('Model_user','user');
 
- 		$this->load->_model('Model_transfer','transfer');
 
- 		$this->load->_model('Model_typeclass','typeclass');
 
- 		$this->load->_model('Model_warehouse','warehouse');
 
- 		$this->load->_model('Model_systemtransfer','systemtransfer');
 
- 		$this->load->_model('Model_excel','excel');
 
- 		$this->load->_model('Model_fullorder','fullorder');
 
- 		$this->load->_model('Model_fullordertt','fullordertt');
 
- 		$this->load->_model('Model_fullordersmt','fullordersmt');
 
- 		$this->load->_model('Model_purchase','purchase');
 
- 		$this->load->_model('Model_classid','classid');
 
- 		$this->load->_model('Model_express','express');
 
- 		$this->load->_model('Model_shop','shop');
 
- 		$this->load->_model('Model_systemtransfer_cr','systemtransfer_cr');
 
- 		$this->load->_model("Model_logic_ding","logic_ding");
 
- 	}
 
- 	//定义方法的调用规则 获取URI第二段值
 
-     public function _remap($arg,$arg_array)
 
-     {
 
- 		var_dump(123);
 
- 		die;
 
- 	
 
- // 		if($arg == 'out')
 
- //         {
 
- //              $this->_out($arg_array);
 
- //         }
 
-     }
 
-     public function _out($arg_array)
 
- 	{
 
- 		$label = $arg_array[1];
 
- 		$cz = $arg_array[0];
 
-         $transfer = 13;
 
- 		if(isset($label))
 
- 		{
 
- 			$time = time();
 
- 			// $label = $this->input->post('label',true);
 
- 			// $cz = $this->input->post('cz',true);
 
- 			if(!$label)
 
- 			{
 
- 				echo json_encode(array('msg'=>'未扫入数据!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 			}
 
- 			if(!$transfer)
 
- 			{
 
- 				echo json_encode(array('msg'=>'请选择需对应的部门!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 			}
 
- 			$lb = $this->systemtransfer->get_label($label);
 
- 			if(!$lb)
 
- 			{
 
- 				echo json_encode(array('msg'=>'错误!未找到此条码','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 			}
 
- 			if($lb['number']!='')
 
- 			{
 
- 				$nu = $this->fullorder->get_number($lb['number']);
 
- 				if(!$nu)
 
- 				{
 
- 					$nu = $this->fullordersmt->get_number($lb['number']);
 
- 				    if(!$nu)
 
- 				    {
 
- 						$nu = $this->fullordertt->get_number($lb['number']);
 
- 					}
 
- 				}
 
- 				//取消的订单还是要继续生产的 所以还允许继续扫入扫出 只是后续的出入库中不在限定时间
 
- 				// if($nu['state'] == '214' || $nu['state'] == '217')
 
- 				// {
 
- 				// 	echo json_encode(array('msg'=>'错误,此单已取消!请联系店员核实','success'=>false));exit;
 
- 				// }
 
- 			}
 
- 			
 
- 			$tdata = $this->transfer->find_all();
 
- 			$t = array();
 
- 			foreach ($tdata as $v)
 
- 		    {
 
- 				$t[$v['id']] = $v['title'];
 
- 			}
 
- 			/**
 
- 			if($cz == 1 && stripos($lb['rk'],'|'.$transfer.'|') !== false)
 
- 			{
 
- 				echo json_encode(array('msg'=>'此条码已有入库操作!','success'=>false));exit;
 
- 			}
 
- 			if($cz == 2 && stripos($lb['ck'],'|'.$transfer.'|') !== false)
 
- 			{
 
- 				echo json_encode(array('msg'=>'此条码已有出库操作!','success'=>false));exit;
 
- 			}
 
- 			**/
 
- // 			if(stripos($lb['ck'],'|1|') === false && $transfer != 1 && stripos($nu['fpdata'],'-128-') !== false)
 
- // 			{
 
- // 				echo json_encode(array('msg'=>'必须有配货出库才可后续操作!','success'=>false));exit;
 
- // 			}
 
-            
 
- 			
 
- 			//重新定义配货的原则问题
 
- 			//先检测订单是否含有 128 头套 或者配件 如果有 133 进行下一步检测
 
-  			$sku_arr = explode("-",$lb['features']);
 
- 			if(in_array(128,$sku_arr)||in_array(133,$sku_arr)){
 
- 				// 145  Full Lace Wig
 
- 				// 1170 HDFullLaceWig
 
- 				// 1249 FullLaceBobwithBang
 
- 				// 1484 FullLaceBob
 
- 				//如果是这4中全蕾丝那么配货就不处理
 
- 				if(in_array(145,$sku_arr) || in_array(1170,$sku_arr) || in_array(1249,$sku_arr) || in_array(1484,$sku_arr)){
 
- 				}else{
 
- 					if(stripos($lb['ck'],'|1|') === false && $transfer != 1 )
 
- 					{
 
- 						echo json_encode(array('msg'=>'头套和配件除了全蕾丝外必须走配货!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 					}
 
- 				}
 
- 			}
 
- 			if($cz == 2 && stripos($lb['rk'],'|'.$transfer.'|') === false)
 
- 			{
 
- 				echo json_encode(array('msg'=>'此条码还未入库!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 			}
 
- 			$lbrk = array_reverse(explode('|',trim($lb['rk'],'|')));
 
- 			$lbck = array_reverse(explode('|',trim($lb['ck'],'|')));
 
- 			if($transfer != 3 && $transfer != 11 && $transfer != 2)
 
- 			{
 
- 				if($cz == 1)
 
- 				{
 
- 			        if($lb['rk'] != $lb['ck'])//判断是否没走完流程就拿到下一步奏
 
- 			        {
 
- 				        echo json_encode(array('msg'=>$t[$lbrk[0]].'还未出库,无法入库!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 			        }
 
- 				}
 
- 				if($cz == 2 && $lbrk[0] != $transfer)//判断是否没走完流程就拿到下一步奏
 
- 			    {
 
- 				    echo json_encode(array('msg'=>$t[$transfer].'还未入库,无法出库!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 			    }
 
- 			}
 
- 			if($cz == 1)
 
- 			{
 
- 				$lb['rk'] .= $transfer.'|';
 
- 				$lb['rktime'] .= $time.'|';
 
- 				if($lbrk[0] == $transfer)
 
- 				{
 
- 					echo json_encode(array('msg'=>'已有入库记录,不可连续重复录入!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 				}
 
- 			}
 
- 			else if($cz == 2)
 
- 			{
 
- 				$lb['ck'] .= $transfer.'|';
 
- 				$lb['cktime'] .= $time.'|';
 
- 				if($lbck[0] == $transfer)
 
- 				{
 
- 					echo json_encode(array('msg'=>'已有出库记录,不可连续重复录入!','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 				}
 
- 			}
 
- 			$cztime = 'ctime'.$transfer;
 
- 			$this->logic_ding->sendToDing("检测货物流转打印情况".$transfer."|".$cz."|".$lb['number']."|".$lb['id']);
 
- 			if(($transfer == 3 && $lb['dbapi'] < 99 && $cz == 2) || ($transfer == 13 && $lb['dbapi'] < 99 && $cz == 1))//出入库用这个
 
- 			//if(($transfer == 8 || $transfer == 13) && $lb['dbapi'] < 99 && $cz == 1)//单入库
 
- 			{
 
- 				if($lb['type'] == 0)
 
- 				{
 
- 				    $s = $this->shop->read($nu['shop']);
 
- 			        $lb['kh'] = $s['yyid'];
 
- 				    $lb['ts'] = 1;
 
- 			        //$rk = $this->apiyy->_newrk($lb);
 
-                     $rk = [
 
-                         'c'=>0,
 
-                         'scid'=>"",
 
-                     ];
 
- 				    if($rk['c'] == 0)
 
- 				    {
 
- 						$this->db->trans_begin();
 
- 						$this->systemtransfer->save(array('rk'=>$lb['rk'],'rktime'=>$lb['rktime'],'ck'=>$lb['ck'],'cktime'=>$lb['cktime'],'time'=>$time,'gtime'=>date('YmdH',$time),'dbapi'=>99,'scid'=>$rk['scid'].time(),$cztime=>$time),$lb['id']);
 
- 				 	    $this->systemtransfer_cr->insert(array('fid'=>$lb['id'],'lx'=>$transfer,'type'=>$cz,'time'=>$time));
 
- 				 	    //处理定时任务每三分钟 执行一次的bug  在出库的时候直接同步相关信息
 
-             			if($cz == 2){
 
-             				$this->_doCheckIsOverTime($lb['id'],$transfer);
 
-             			}
 
- 						if ($this->db->trans_status() === TRUE)
 
-         				{
 
- 							$this->db->trans_commit();
 
- 							if($nu['state'] == '216')
 
- 				 	  	    {
 
- 				     	  	    echo json_encode(array('msg'=>'数据已录入成功!提示:此订单已出库,可选择终止生产。','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
- 				 	  	    }
 
- 				 	  	    elseif(($nu['state'] == '217') || ($nu['state'] == '214')){
 
-             					//标记订单已经取消
 
-             					$this->_doCheckCancelFlag($lb['id']);
 
-             					echo json_encode(array('msg'=>'数据已录入成功!提示:【该单已取消】,可选择终止生产。','success'=>false),JSON_UNESCAPED_UNICODE);exit;
 
-             				}
 
- 				 	  	    else
 
- 				 	  	    {
 
- 								if($lb['is_jiaji'] == 2){
 
- 									echo json_encode(array('music'=>'1','is_jiaji'=>2,'success'=>true));exit;
 
- 								}else{
 
- 									echo json_encode(array('music'=>'1','success'=>true));exit;
 
- 								}
 
- 				     	  	    
 
- 				 	  	    }
 
- 						}
 
- 						else
 
- 						{
 
- 							$this->db->trans_rollback();
 
- 							echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit;
 
- 						}
 
- 				    }
 
- 				    else
 
- 				    {
 
- 						if(stripos($rk['error'],'DocNo') !== false)
 
- 						{
 
- 							$rk['error'] = '未找到对应的生产订单 '.$lb['scid'];
 
- 						}
 
- 						$this->systemtransfer->save(array('dbapi'=>$rk['dbapi'],'scid'=>$rk['scid']),$lb['id']);
 
- 					    echo json_encode(array('msg'=>'订单号:'.$lb['number'].' 用友报错:'.$rk['error'],'success'=>false));exit;
 
- 				    }
 
- 				}
 
- 				else
 
- 				{
 
- 					$scid = explode('~',$lb['scid']);
 
- 					$rkdata = array('od'=>$scid[1],'ts'=>1,'title'=>$lb['title']);
 
-                     $rk = [
 
-                         'Data'=>[
 
-                             [
 
-                                 'IsSucess'=>1,
 
-                                 'Code'=>1,
 
-                             ]
 
-                         ]
 
-                     ] ;
 
- 					if(isset($rk['Data'][0]))
 
- 		        	{
 
- 						if($rk['Data'][0]['IsSucess'] == 1)
 
- 				        {
 
- 							$this->db->trans_begin();
 
- 							$this->systemtransfer->save(array('rk'=>$lb['rk'],'rktime'=>$lb['rktime'],'ck'=>$lb['ck'],'cktime'=>$lb['cktime'],'time'=>$time,'gtime'=>date('YmdH',$time),'dbapi'=>99,'scid'=>$lb['scid'].'~'.$rk['Data'][0]['Code'],$cztime=>$time),$lb['id']);
 
- 				 	    	$this->systemtransfer_cr->insert(array('fid'=>$lb['id'],'lx'=>$transfer,'type'=>$cz,'time'=>$time));
 
- 				 	    	//处理定时任务每三分钟 执行一次的bug  在出库的时候直接同步相关信息
 
-                 			if($cz == 2){
 
-                 				$this->_doCheckIsOverTime($lb['id'],$transfer);
 
-                 			}
 
- 							if ($this->db->trans_status() === TRUE)
 
-         					{
 
- 								$this->db->trans_commit();
 
- 								if($nu['state'] == '216')
 
- 				 	  	    	{
 
- 				     	  	    	echo json_encode(array('msg'=>'数据已录入成功!提示:此订单已出库,可选择终止生产。','success'=>false));exit;
 
- 				 	  	    	}
 
- 				 	  	    	elseif(($nu['state'] == '217') || ($nu['state'] == '214')){
 
-                 					//标记订单已经取消
 
-                 					$this->_doCheckCancelFlag($lb['id']);
 
-                 					echo json_encode(array('msg'=>'数据已录入成功!提示:【该单已取消】,可选择终止生产。','success'=>false));exit;
 
-                 				}
 
- 				 	  	    	else
 
- 				 	  	    	{
 
- 									if($lb['is_jiaji'] == 2){
 
- 										echo json_encode(array('music'=>'1','is_jiaji'=>2,'success'=>true));exit;
 
- 									}else{
 
- 										echo json_encode(array('music'=>'1','success'=>true));exit;
 
- 									}
 
- 				 	  	   		}
 
- 							}
 
- 							else
 
- 							{
 
- 								$this->db->trans_rollback();
 
- 								echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit;
 
- 							}
 
- 			 	  	    }
 
- 						else
 
- 						{
 
- 							echo json_encode(array('msg'=>$rk['Data'][0]['ErrorMsg'],'success'=>false));exit;
 
- 						}
 
- 			 	  	    
 
- 					}
 
- 					else
 
- 				    {
 
- 					    echo json_encode(array('msg'=>$rk,'success'=>false));exit;
 
- 				    }
 
- 						
 
- 				 }
 
- 			}
 
- 			//if($transfer == 11 && stripos($lb['rk'],'|8|') === false && stripos($lb['ck'],'|3|') === false &&  stripos($lb['rk'],'|13|') === false)//只入库
 
- 			if($transfer == 11 && stripos($lb['ck'],'|3|') === false &&  stripos($lb['rk'],'|13|') === false)//改出入库
 
- 			{
 
- 				echo json_encode(array('msg'=>'工厂未出库,请退回工厂!','success'=>false));exit;
 
- 			}
 
- 			$this->systemtransfer->save(array('rk'=>$lb['rk'],'rktime'=>$lb['rktime'],'ck'=>$lb['ck'],'cktime'=>$lb['cktime'],'time'=>$time,'gtime'=>date('YmdH',$time),$cztime=>$time),$lb['id']);
 
- 			$this->systemtransfer_cr->insert(array('fid'=>$lb['id'],'lx'=>$transfer,'type'=>$cz,'time'=>$time));
 
- 			//处理定时任务每三分钟 执行一次的bug  在出库的时候直接同步相关信息
 
- 			if($cz == 2){
 
- 				$this->_doCheckIsOverTime($lb['id'],$transfer);
 
- 			}
 
- 			if ($this->db->trans_status() === TRUE)
 
-         	{
 
- 				$this->db->trans_commit();
 
- 				
 
- 				
 
- 			    if($nu['state'] == '216')
 
- 				{
 
- 					echo json_encode(array('msg'=>'数据已录入成功!提示:此订单已出库,可选择终止生产。','success'=>false));exit;
 
- 				}
 
- 				elseif(($nu['state'] == '217') || ($nu['state'] == '214')){
 
- 					//标记订单已经取消
 
- 					$this->_doCheckCancelFlag($lb['id']);
 
- 					echo json_encode(array('msg'=>'数据已录入成功!提示:【该单已取消】,可选择终止生产。','success'=>false));exit;
 
- 				}
 
- 				else
 
- 				{
 
- 					if($lb['is_jiaji'] == 2){
 
- 						echo json_encode(array('music'=>'1','is_jiaji'=>2,'success'=>true));exit;
 
- 					}else{
 
- 						echo json_encode(array('music'=>'1','success'=>true));exit;
 
- 					}
 
- 				}
 
- 			}
 
- 			else
 
- 			{
 
- 				$this->db->trans_rollback();
 
- 				echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit;
 
- 			}
 
- 		}
 
- 	}
 
-     //检测取消标记是否添加 同时也检查下 该流转单是否被标记为取消单
 
- 	private function _doCheckCancelFlag($fid){
 
- 		
 
- 		$info = $this->systemtransfer->read($fid);
 
- 		if($info['status'] != 11){
 
- 			$this->systemtransfer->save(['status'=>11],$fid);
 
- 		}
 
- 		$list = $this->systemtransfer_cr->find_all("fid = ".$fid,'*','id desc');
 
- 		if(empty($list)){
 
- 			return;
 
- 		}
 
- 		$is_cancel = false;
 
- 		foreach($list as $val){
 
- 			if($val['orver_flag'] == 3){
 
- 				$is_cancel = true;
 
- 			}
 
- 		}
 
- 		if($is_cancel){
 
- 			return ;
 
- 		}
 
- 		$this->systemtransfer_cr->save(['orver_flag'=>3],$list[0]['id']);
 
- 		
 
- 	}
 
- 	
 
- 	//检测是否超时  车间流转环节 
 
- 	private function  _doCheckIsOverTime($fid,$transfer){
 
- 		$list = $this->systemtransfer_cr->find_all("fid = ".$fid." and lx = ".$transfer." and is_over = 0","*",'id desc',0,2);
 
- 		if(count($list) < 2){
 
- 			return ;
 
- 		}
 
- 		if($list[0]['type'] != 2){
 
- 			return;
 
- 		}
 
- 		if($list[1]['type'] != 1){
 
- 			return;
 
- 		}
 
- 		if($list[1]['orver_flag'] == 2){
 
- 			$this->systemtransfer_cr->save(array('is_over'=>1,'orver_flag'=>2),$list[0]['id']);
 
- 		}else{
 
- 			$this->systemtransfer_cr->save(array('is_over'=>1),$list[0]['id']);
 
- 		}
 
- 		$this->systemtransfer_cr->save(array('is_over'=>1),$list[1]['id']);
 
- 	}	
 
- 	
 
- }
 
 
  |