goodsReceiptRepository->all(); return response()->json([ 'data' => GoodsReceiptResource::collection($goodsReceipts), 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error fetching goods receipts: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la récupération des réceptions de marchandises.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Store a newly created goods receipt. */ public function store(StoreGoodsReceiptRequest $request): JsonResponse { try { $goodsReceipt = $this->goodsReceiptRepository->create($request->validated()); return response()->json([ 'data' => new GoodsReceiptResource($goodsReceipt), 'message' => 'Réception de marchandise créée avec succès.', 'status' => 'success' ], 201); } catch (\Exception $e) { Log::error('Error creating goods receipt: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la création de la réception de marchandise.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Display the specified goods receipt. */ public function show(string $id): JsonResponse { try { $goodsReceipt = $this->goodsReceiptRepository->find((int) $id); if (!$goodsReceipt) { return response()->json(['message' => 'Réception de marchandise non trouvée.'], 404); } return response()->json([ 'data' => new GoodsReceiptResource($goodsReceipt), 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error fetching goods receipt: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la récupération de la réception de marchandise.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Update the specified goods receipt. */ public function update(UpdateGoodsReceiptRequest $request, string $id): JsonResponse { try { $updated = $this->goodsReceiptRepository->update((int) $id, $request->validated()); if (!$updated) { return response()->json(['message' => 'Réception de marchandise non trouvée ou échec de la mise à jour.'], 404); } $goodsReceipt = $this->goodsReceiptRepository->find((int) $id); return response()->json([ 'data' => new GoodsReceiptResource($goodsReceipt), 'message' => 'Réception de marchandise mise à jour avec succès.', 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error updating goods receipt: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la mise à jour de la réception de marchandise.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } /** * Remove the specified goods receipt. */ public function destroy(string $id): JsonResponse { try { $deleted = $this->goodsReceiptRepository->delete((int) $id); if (!$deleted) { return response()->json(['message' => 'Réception de marchandise non trouvée ou échec de la suppression.'], 404); } return response()->json([ 'message' => 'Réception de marchandise supprimée avec succès.', 'status' => 'success' ]); } catch (\Exception $e) { Log::error('Error deleting goods receipt: ' . $e->getMessage()); return response()->json([ 'message' => 'Une erreur est survenue lors de la suppression de la réception de marchandise.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 500); } } }