Untitled
unknown
plain_text
a year ago
2.6 kB
6
Indexable
public function goodsBalance(Request $request): JsonResponse { try { $blocked = false; $filter = $this->validate($request, [ 'date' => 'required|date', 'account' => 'nullable|string|regex:/^[0-9]+$/|size:4', 'warehouse_id' => 'nullable|uuid', 'product_id' => 'nullable|uuid', ]); if($request->has('warehouse_id')){ $warehouse = Warehouse::findOrFail($request['warehouse_id']); if($warehouse->blocked === true){ $blocked = true; } } $query = isset($filter['account']) ? 'SELECT * FROM warehouse.goods_balance(:mailbox, :date, :account)' : 'SELECT * FROM warehouse.goods_balance(:mailbox, :date)'; DB::beginTransaction(); if (isset($filter['warehouse_id'])) { $where = ' where warehouse_id=:warehouse_id'; $readyToSendEntries = ExchangeHistory::where('warehouse_id',$filter['warehouse_id'])->where('accepted',false); if($readyToSendEntries->count() > 0){ $readyToSendEntries->update(['accepted' => true]); } } if (isset($filter['product_id'])) { $where = (isset($where) ? $where . ' AND' : ' where') . ' product_id=:product_id'; } $data = DB::select($query . ($where ?? null), ['mailbox' => $request->user()->profile['mailbox_id']] + $filter); DB::commit(); return AppResponseService::success('Report goods balance received successfully',$blocked?[]:$data); } catch (ValidationException $exception) { DB::rollBack(); return AppResponseService::error( 'Report goods balance received unsuccessfully', 3532, 422, TdrHelpers::validationHandle($exception) ); } catch (Throwable $exception) { DB::rollBack(); app('Illuminate\Contracts\Debug\ExceptionHandler')->report($exception); return AppResponseService::error( 'Report goods balance received unsuccessfully', 3487, 500, [ 'exception' => class_basename($exception), 'message' => $exception->getMessage(), ] ); } }
Editor is loading...
Leave a Comment