Untitled
unknown
plain_text
a year ago
2.6 kB
10
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