Untitled
unknown
plain_text
a year ago
2.7 kB
9
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_ids' => 'nullable|array', // Изменено на массив
'product_ids.*' => 'uuid', // Каждый элемент массива должен быть UUID
]);
if ($request->has('warehouse_id')) {
$warehouse = Warehouse::findOrFail($request['warehouse_id']);
if ($warehouse->blocked === true) {
$blocked = true;
}
}
$query = 'SELECT * FROM warehouse.goods_balance(:mailbox, :date';
$params = ['mailbox' => $request->user()->profile['mailbox_id'], 'date' => $filter['date']];
if (isset($filter['account'])) {
$query .= ', :account';
$params['account'] = $filter['account'];
}
if (isset($filter['warehouse_id'])) {
$query .= ', :warehouse_id';
$params['warehouse_id'] = $filter['warehouse_id'];
}
if (isset($filter['product_ids']) && count($filter['product_ids']) > 0) {
$query .= ', :product_ids';
$params['product_ids'] = $filter['product_ids'];
}
$query .= ')';
DB::beginTransaction();
if (isset($filter['warehouse_id'])) {
$readyToSendEntries = ExchangeHistory::where('warehouse_id', $filter['warehouse_id'])->where('accepted', false);
if ($readyToSendEntries->count() > 0) {
$readyToSendEntries->update(['accepted' => true]);
}
}
$data = DB::select($query, $params);
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