Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 15 |
CRAP | |
0.00% |
0 / 116 |
| RejectedBillItemController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 15 |
1640.00 | |
0.00% |
0 / 116 |
| index | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| create | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| store | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| apiStore | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 18 |
|||
| apiUpdate | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 13 |
|||
| collectionsToPackConfirm | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 26 |
|||
| apiPackConfirm | |
0.00% |
0 / 1 |
72.00 | |
0.00% |
0 / 26 |
|||
| apiPackDestroy | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 9 |
|||
| validator | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 4 |
|||
| apiGet | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 6 |
|||
| apiDelete | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 7 |
|||
| show | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| edit | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| update | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| destroy | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| <?php | |
| namespace App\Http\Controllers; | |
| use App\Commodity; | |
| use App\Owner; | |
| use App\Rejected; | |
| use App\RejectedBill; | |
| use App\RejectedBillItem; | |
| use Illuminate\Http\Request; | |
| use Illuminate\Support\Collection; | |
| use Illuminate\Support\Facades\Auth; | |
| use Illuminate\Support\Facades\Gate; | |
| use Illuminate\Support\Facades\Validator; | |
| use Zttp\Zttp; | |
| class RejectedBillItemController extends Controller | |
| { | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function index() | |
| { | |
| // | |
| } | |
| /** | |
| * Show the form for creating a new resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function create() | |
| { | |
| // | |
| } | |
| /** | |
| * Store a newly created resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function store(Request $request) | |
| { | |
| // | |
| } | |
| public function apiStore(Request $request) | |
| { | |
| if(!Gate::allows('退货管理-录入')){ | |
| return ['success'=>'false','failure_info'=>'没有权限']; | |
| } | |
| $errorFields= $this->validator($request->all())->errors()->getMessages(); | |
| if(!empty($errorFields)){ | |
| return ['success'=>'false','error_fields'=>$errorFields,'failure_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','failure_info'=>'没有权限']; | |
| } | |
| $errorFields= $this->validator($request->all())->errors()->getMessages(); | |
| if(!empty($errorFields)){ | |
| return ['success'=>'false','error_fields'=>$errorFields,'failure_info'=>'fileds error']; | |
| } | |
| $rejectedBillItem=RejectedBillItem::where('id',$request->input('id'))->first(); | |
| if(!$rejectedBillItem){ | |
| return ['success'=>'false','failure_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 collectionsToPackConfirm(Collection $rejectedBillItems) | |
| { | |
| $ids=[]; | |
| $rejectedBillItems->each(function ($item)use(&$ids){ | |
| $ids[]=$item->id; | |
| }); | |
| if(!$ids)return ['success'=>'false','fail_info'=>'没有内容']; | |
| $collections=new Collection($ids); | |
| $i=0; | |
| $collections->each(function ($id)use(&$i,$ids){ | |
| $rejectedBillItems=RejectedBillItem::whereIn('id', [$ids[$i]]); | |
| $rejectedBillItems->each(function(RejectedBillItem $rejectedBillItem)use(&$havingFail){ | |
| $rejectedBill=RejectedBill::find($rejectedBillItem['id_rejected_bill']); | |
| $owner = Owner::find($rejectedBill['id_owner']); | |
| if(strstr($owner->name??'','笕尚')){ | |
| $rejected=new Rejected(); | |
| $rejected->fill($rejectedBill->toArray()); | |
| $rejected->fill($rejectedBillItem->toArray()); | |
| $rejectedJianshang=new api\jianshang\RejectedController(); | |
| $sended=$rejectedJianshang->sendRejected($rejected); | |
| if(!$sended){ | |
| echo '<h1>数据发送给笕尚失败,请通知IT相关负责人</h1>'; | |
| $this->log(__METHOD__,'error','数据发送给笕尚失败'); | |
| $havingFail++; | |
| return false; | |
| } | |
| } | |
| }); | |
| $i++; | |
| if($i%30==0) | |
| sleep(1); | |
| }); | |
| return 'yes'.$i; | |
| } | |
| public function apiPackConfirm(Request $request) | |
| { | |
| if(!Gate::allows('退货管理-录入')){ | |
| return ['success'=>'false','failure_info'=>'没有权限']; | |
| } | |
| $ids=$request->input('ids'); | |
| if(!$ids)return ['success'=>'false','fail_info'=>'没有内容']; | |
| $rejectedBillItems=RejectedBillItem::whereIn('id', $ids); | |
| //TODO: 发送给笕尚,应该单独抽出然后做出可配置流程 | |
| $havingFail=0; | |
| if(!config('api.API_FAKING')) | |
| $rejectedBillItems->each(function(RejectedBillItem $rejectedBillItem)use(&$havingFail){ | |
| $rejectedBill=RejectedBill::find($rejectedBillItem['id_rejected_bill']); | |
| if($rejectedBill['is_loaded']){ | |
| return false; | |
| } | |
| $owner = Owner::find($rejectedBill['id_owner']); | |
| if(strstr($owner->name??'','笕尚')){ | |
| $rejected=new Rejected(); | |
| $rejected->fill($rejectedBill->toArray()); | |
| $rejected->fill($rejectedBillItem->toArray()); | |
| $rejectedJianshang=new api\jianshang\RejectedController(); | |
| $sended=$rejectedJianshang->sendRejected($rejected); | |
| if(!$sended){ | |
| echo '<h1>数据发送给笕尚失败,请通知IT相关负责人</h1>'; | |
| $this->log(__METHOD__,'error','数据发送给笕尚失败'); | |
| $havingFail++; | |
| return false; | |
| } | |
| } | |
| }); | |
| if($havingFail>0)return ['success'=>'false','failure_info'=>"$havingFail/{$rejectedBillItems->count()} 条记录没有发送成功"]; | |
| $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']); | |
| return ['success'=>'true']; | |
| } | |
| public function apiPackDestroy(Request $request) | |
| { | |
| if(!(Gate::allows('退货管理-录入')||Gate::allows('退货管理-编辑'))){ | |
| return ['success'=>'false','failure_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','failure_info'=>'没有权限'];} | |
| if(!$request->input('id_rejected_bill')){ | |
| return ['success'=>'false','failure_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','failure_info'=>'没有权限'];} | |
| if(!$request->input('id')){ | |
| return ['success'=>'false','failure_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) | |
| { | |
| // | |
| } | |
| } |