'false','fail_info'=>'没有权限']; } $errorFields= $this->validator($request->all())->errors()->getMessages(); if(!empty($errorFields)){ return ['success'=>'false','error_fields'=>$errorFields,'fail_info'=>'fileds error']; } $rejectedBillItem=RejectedBillItem::where('barcode_goods',$request->input('barcode_goods')) ->where('id_quality_label',$request->input('id_quality_label')) ->where('id_rejected_bill',$request->input('id_rejected_bill'))->first(); if($rejectedBillItem){ $rejectedBillItem['amount']+=$request->input('amount'); if($request->input('name_goods')){ $rejectedBillItem['name_goods']=$request->input('name_goods'); } $rejectedBillItem->update(); }else{ $rejectedBillItem=new RejectedBillItem($request->all()); $rejectedBillItem->save(); } $rejectedBillItem->injectCommodityName(); $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']); return ['success'=>'true','id'=>$rejectedBillItem['id']]; } public function apiUpdate(Request $request) { if(!Gate::allows('退货管理-编辑')){ return ['success'=>'false','fail_info'=>'没有权限']; } $errorFields= $this->validator($request->all())->errors()->getMessages(); if(!empty($errorFields)){ return ['success'=>'false','error_fields'=>$errorFields,'fail_info'=>'fileds error']; } $rejectedBillItem=RejectedBillItem::where('id',$request->input('id'))->first(); if(!$rejectedBillItem){ return ['success'=>'false','fail_info'=>'数据库没有相应记录,请刷新后重加']; }else{ $rejectedBillItem->fill($request->all()); $rejectedBillItem->update(); $rejectedBillItem->injectCommodityName(); $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']); return ['success'=>'true','id'=>$rejectedBillItem['id']]; } } public function apiPackConfirm(Request $request) { if(!Gate::allows('退货管理-录入')){ return ['success'=>'false','fail_info'=>'没有权限']; } $ids=$request->input('ids'); if(!$ids)return ['success'=>'false','fail_info'=>'没有内容']; $rejectedBillItems=RejectedBillItem::whereIn('id', $ids)->get(); //TODO: 发送给笕尚,应该单独抽出然后做出可配置流程 $rejected=new Rejected(); $goodses=[]; $noNeedSend=false; $rejectedBillItems->each(function(RejectedBillItem $rejectedBillItem)use(&$havingFail,&$goodses,&$rejected,&$noNeedSend){ $rejectedBill=RejectedBill::find($rejectedBillItem['id_rejected_bill']); if($rejectedBill['is_loaded']){ $noNeedSend=true; return false; } $owner = Owner::find($rejectedBill['id_owner']); if(strstr($owner->name??'','笕尚')){ $goodses[]=$rejectedBillItem->toArray(); $rejected->fill($rejectedBill->toArray()); } }); if($noNeedSend){ return ['success'=>'true']; } $rejectedJianshang=new api\jianshang\RejectedController(); $rejected['goodses']=$goodses; $sendResult=$rejectedJianshang->sendRejected($rejected); if(!$sendResult['success']){ $this->log(__METHOD__,'error','数据发送给笕尚失败,没有商品明细返回'); return ['success'=>'false','fail_info'=>'

数据发送给笕尚失败,没有商品明细返回,请通知IT相关负责人!

']; } return ['success'=>'true','bill_is_loaded'=>$sendResult['bill_is_loaded']]; } public function apiPackDestroy(Request $request) { if(!(Gate::allows('退货管理-录入')||Gate::allows('退货管理-编辑'))){ return ['success'=>'false','fail_info'=>'没有权限']; } $ids=$request->input('ids'); if(!$ids)return ['success'=>'false','fail_info'=>'没有内容']; $rejectedBillItems=RejectedBillItem::whereIn('id', $ids); $rejectedBillItems->each(function(RejectedBillItem $rejectedBillItem){ $rejectedBillItem->delete(); }); $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']); return ['success'=>'true']; } protected function validator(array $data,$isUpdate=false) { return Validator::make($data, [ 'id_rejected_bill' => ['required', 'numeric', 'exists:rejected_bills,id'], 'barcode_goods' => ['required', 'string','max:60'], 'name_goods' => ['nullable', 'string','max:50'], 'amount' => ['numeric','nullable', 'max:99999'], 'id_quality_label' => ['required','numeric', 'max:11'], 'batch_number' => ['string', 'nullable',], 'validity_at' => ['nullable','date_format:Y-m-d'], 'remark' => ['nullable','string','max:191'], ],[],[ 'id_rejected_bill' =>'退单头', 'barcode_goods' => '商品条码', 'name_goods' => '商品名称', 'amount' => '数量', 'id_quality_label' => '品质', 'batch_number' => '批次', 'validity_at' => '效期', 'remark' => '备注' ]); } public function apiGet(Request $request) { if(!Gate::allows('退货管理-查询')){ return ['success'=>'false','fail_info'=>'没有权限'];} if(!$request->input('id_rejected_bill')){ return ['success'=>'false','fail_info'=>'表头id不能为空']; } $rejectedBillItems = RejectedBillItem::where('id_rejected_bill',$request->input('id_rejected_bill'))->get(); return ['success'=>'true','items'=>$rejectedBillItems->toArray()]; } public function apiDelete(Request $request) { if(!Gate::allows('退货管理-删除')){ return ['success'=>'false','fail_info'=>'没有权限'];} if(!$request->input('id')){ return ['success'=>'false','fail_info'=>'传入id不能为空']; } $rejectedBillItem = RejectedBillItem::find($request->input('id')); $rejectedBillItem->forceDelete(); return ['success'=>'true','id'=>$request->input('id')]; } /** * Display the specified resource. * * @param \App\RejectedBillItem $rejectedBillItem * @return \Illuminate\Http\Response */ public function show(RejectedBillItem $rejectedBillItem) { // } /** * Show the form for editing the specified resource. * * @param \App\RejectedBillItem $rejectedBillItem * @return \Illuminate\Http\Response */ public function edit(RejectedBillItem $rejectedBillItem) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\RejectedBillItem $rejectedBillItem * @return \Illuminate\Http\Response */ public function update(Request $request, RejectedBillItem $rejectedBillItem) { // } /** * Remove the specified resource from storage. * * @param \App\RejectedBillItem $rejectedBillItem * @return \Illuminate\Http\Response */ public function destroy(RejectedBillItem $rejectedBillItem) { // } }