input('ordertime_start'); $ordertime_end=$request->input('ordertime_end'); $customerid=$request->input('customerid'); $soreference1=$request->input('soreference1'); $soreference5=$request->input('soreference5'); if ($ordertime_start){ $ordertime_start=$ordertime_start." 00:00:00"; $orders=$orders->where('ordertime','>=',$ordertime_start); } if ($ordertime_end){ $ordertime_end=$ordertime_end." 23:59:59"; $orders=$orders->where('ordertime','<=',$ordertime_end); } if ($customerid)$orders=$orders->where('customerid',$customerid); if ($soreference1)$orders=$orders->where('soreference1','like',$soreference1."%"); if ($soreference5){ $arr=array_filter(preg_split('/[,, ]+/is', $soreference5)); $orders=$orders->whereIn('soreference5',$arr); } return $orders; } public function forwarding(Request $request){ if(!Gate::allows('出库管理-发运')){ return redirect(url('/')); } $orders=OracleDOCOrderHeader::with(['oracleDOCOrderDetails'=>function($query){ return $query->select('DOC_Order_Details.orderno','DOC_Order_Details.CustomerID', 'DOC_Order_Details.SKU','DOC_Order_Details.QtyOrdered','DOC_Order_Details.OrderLineNo', 'BAS_SKU.Alternate_SKU1','BAS_SKU.Descr_C') ->leftJoin('BAS_SKU',function ($join){ $join->on('DOC_Order_Details.CustomerID','=','BAS_SKU.CustomerID') ->on('DOC_Order_Details.SKU','=','BAS_SKU.SKU'); })->orderBy('OrderLineNo'); }])->select('OrderNo','SOStatus','WAREHOUSEID','CustomerID' ,'ConsigneeID','ConsigneeName','C_Tel1','CarrierName','IssuePartyName','WaveNo','SOReference1' ,'soreference5','EDISENDFLAG2','EDISendTime2','Notes','ERPCANCELFLAG','Picking_Print_Flag','EDISENDFLAG' ,'ReleaseStatus','C_Address1','OrderTime'); if ($request->input('checkData')){ $checkData=explode(',',$request->input('checkData')); $orders=$orders->whereIn('orderno',$checkData)->get(); return $this->export($orders); } if ($request->input('export')){ $orders=$this->conditionQuery($request,$orders); return $this->export($orders->get()); } if ($request->input())$orders=$this->conditionQuery($request,$orders); $orders=$orders->paginate($request->input('paginate')??50); $customers=OracleBasCustomer::select('customerid','descr_c')->where('customer_type','OW')->where('active_flag','Y')->get(); $request=$request->input(); return view('exit/index/forwarding',compact('orders','customers','request')); } public function batchComments(Request $request){ if(!Gate::allows('出库管理-批量注释')){ return redirect(url('/')); } $checkData=$request->input('checkData'); $content=$request->input('content'); $ordersNotNull=OracleDOCOrderHeader::select('OrderNo','Notes')->whereIn('orderno',$checkData) ->whereNotNull('notes')->get(); OracleDOCOrderHeader::select('OrderNo','Notes')->whereIn('orderno',$checkData) ->whereNull('notes')->update(['notes'=>$content]); $ordersNotNullArr=array_column($ordersNotNull->toArray(),'orderno'); $ordersNullArr=array_diff($checkData,$ordersNotNullArr); $data=[]; foreach ($ordersNotNull as $order){ OracleDOCOrderHeader::where('orderno',$order->orderno)->update(["notes"=>($order->notes).",".$content]); $order->notes=($order->notes).",".$content; array_push($data,$order); } foreach ($ordersNullArr as $order){ array_push($data,["orderno"=>$order,'notes'=>$content]); } return $data; } function export($orders){ if(!Gate::allows('出库管理')){ return redirect(url('/')); } ini_set('max_execution_time',3500); ini_set('memory_limit','3526M'); $row=[[ 'orderno'=>'编号', 'sostatus'=>'订单状态', 'warehouseid'=>'仓库', 'oracleBASCustomer_descr_c'=>'客户', 'consigneeid'=>'收货人', 'consigneename'=>'收货人名称', 'c_tel1'=>'收货人电话', 'carriername'=>'承运人', 'issuepartyname'=>'下单方名称', 'waveno'=>'波次编号', 'soreference1'=>'客户订单号', 'soreference5'=>'快递单号', 'edisendflag2'=>'快递获取标记', 'edisendtime2'=>'快递获取时间', 'sku'=>'产品代码', 'alternate_sku1'=>'产品条码', 'descr_c'=>'产品名称', 'qtyordered'=>'订单数量', 'notes'=>'备注', 'erpcancelflag'=>'接口取消标记', 'picking_print_flag'=>'拣货单打印标记', 'edisendflag'=>'接口回传标记', 'releasestatus'=>'订单冻结标记', 'c_address1'=>'收货人地址', ]]; $list=[]; $sign=[]; $mergeCell=[]; foreach ($orders as $order){ $data=[ 'orderno'=>$order->orderno, 'sostatus'=>$order->oracleBASCode_codename_c, 'warehouseid'=>$order->warehouseid, 'oracleBASCustomer_descr_c'=>$order->oracleBASCustomer_descr_c, 'consigneeid'=>$order->consigneeid, 'consigneename'=>$order->consigneename, 'c_tel1'=>$order->c_tel1, 'carriername'=>$order->carriername, 'issuepartyname'=>$order->issuepartyname, 'waveno'=>$order->waveno, 'soreference1'=>$order->soreference1, 'soreference5'=>$order->soreference5, 'edisendflag2'=>$order->edisendflag2, 'edisendtime2'=>$order->edisendtime2, 'notes'=>$order->notes, 'erpcancelflag'=>$order->erpcancelflag, 'picking_print_flag'=>$order->picking_print_flag, 'edisendflag'=>$order->edisendflag, 'releasestatus'=>$order->releasestatus, 'c_address1'=>$order->c_address1, ]; if (count($order->oracleDOCOrderDetails)<1){ $data['sku']=''; $data['alternate_sku1']=''; $data['descr_c']=''; $data['qtyordered']=''; array_push($list,$data); continue; } foreach ($order->oracleDOCOrderDetails as $oracleDOCOrderDetail){ $data['sku']=$oracleDOCOrderDetail->sku; $data['alternate_sku1']=$oracleDOCOrderDetail->alternate_sku1; $data['descr_c']=$oracleDOCOrderDetail->descr_c; $data['qtyordered']=$oracleDOCOrderDetail->qtyordered; if (isset($sign[$order->orderno])){ $data['orderno']='';$data['sostatus']='';$data['warehouseid']='';$data['oracleBASCustomer_descr_c']='';$data['consigneeid']='';$data['consigneename']=''; $data['c_tel1']='';$data['carriername']='';$data['issuepartyname']='';$data['waveno']='';$data['soreference1']='';$data['soreference5']=''; $data['edisendflag2']='';$data['edisendtime2']='';$data['notes']='';$data['erpcancelflag']='';$data['picking_print_flag']='';$data['edisendflag']=''; $data['releasestatus']='';$data['c_address1']=''; array_push($list,$data); continue; } array_push($list,$data); $sign[$order->orderno]=count($list)+1; } if (count($order->oracleDOCOrderDetails)>1){ $mergeCell[$sign[$order->orderno]]=$sign[$order->orderno]+(count($order->oracleDOCOrderDetails)-1); } } $columnName=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","S","T","U","V","W","X"]; return Excel::download(new Export($row,$list,$mergeCell,$columnName),date('YmdHis', time()).'-出库发运单.xlsx'); } }