33namespace App \Http \Controllers \App ;
44
55use App \Http \Controllers \Controller ;
6+ use App \Http \Requests \Depots \StoreRequest ;
67use App \Models \Depot ;
78use Illuminate \Http \Request ;
89use Inertia \Inertia ;
@@ -14,54 +15,49 @@ class OrganizationDepotController extends Controller
1415 */
1516 public function index (Request $ request )
1617 {
17- return Inertia::render ('App/Organizations/Settings/Show ' , [
18- 'organization ' => $ request ->user ()->currentOrganization ,
19- 'section ' => 'depots ' ,
20- 'depots ' => $ request ->user ()->currentOrganization ->depots ()->latest ()->get (),
18+ $ organization = $ request ->user ()->currentOrganization ;
19+
20+ return Inertia::render ('App/Organizations/Settings/Depots/Index ' , [
21+ 'organization ' => $ organization ,
22+ 'depots ' => $ organization ->depots ()->with ('equipments:id,name,depot_id ' )->get (),
2123 ]);
2224 }
2325
26+ public function create ()
27+ {
28+ return Inertia::render ('App/Organizations/Settings/Depots/Create ' );
29+ }
30+
2431 /**
2532 * Store a newly created depot in storage.
2633 */
27- public function store (Request $ request )
34+ public function store (StoreRequest $ request )
2835 {
2936 $ organization = $ request ->user ()->currentOrganization ;
3037 $ this ->authorize ('create ' , $ organization );
3138
32- $ validated = $ request ->validate ([
33- 'name ' => ['required ' , 'string ' , 'max:255 ' ],
34- 'description ' => ['nullable ' , 'string ' ],
35- 'address ' => ['required ' , 'string ' , 'max:255 ' ],
36- 'city ' => ['required ' , 'string ' , 'max:255 ' ],
37- 'postal_code ' => ['required ' , 'string ' , 'max:20 ' ],
38- 'country ' => ['required ' , 'string ' , 'size:2 ' ],
39- ]);
39+ $ organization ->depots ()->create ($ request ->validated ());
4040
41- $ organization ->depots ()->create ($ validated );
41+ return redirect ()->route ('app.organizations.depots.index ' )->withSuccess ('Le dépôt a été créé avec succès ' );
42+ }
4243
43- return back ()->with ('status ' , 'depot-created ' );
44+ public function edit (Depot $ depot )
45+ {
46+ return Inertia::render ('App/Organizations/Settings/Depots/Edit ' , [
47+ 'depot ' => $ depot ,
48+ ]);
4449 }
4550
4651 /**
4752 * Update the specified depot in storage.
4853 */
49- public function update (Request $ request , Depot $ depot )
54+ public function update (StoreRequest $ request , Depot $ depot )
5055 {
5156 $ this ->authorize ('update ' , $ depot );
5257
53- $ validated = $ request ->validate ([
54- 'name ' => ['required ' , 'string ' , 'max:255 ' ],
55- 'description ' => ['nullable ' , 'string ' ],
56- 'address ' => ['required ' , 'string ' , 'max:255 ' ],
57- 'city ' => ['required ' , 'string ' , 'max:255 ' ],
58- 'postal_code ' => ['required ' , 'string ' , 'max:20 ' ],
59- 'country ' => ['required ' , 'string ' , 'size:2 ' ],
60- ]);
61-
62- $ depot ->update ($ validated );
58+ $ depot ->update ($ request ->validated ());
6359
64- return back ()->with ( ' status ' , ' depot-updated ' );
60+ return redirect ()->route ( ' app.organizations.depots.index ' )-> withSuccess ( ' Le dépôt a été mis à jour avec succès ' );
6561 }
6662
6763 /**
@@ -71,8 +67,13 @@ public function destroy(Depot $depot)
7167 {
7268 $ this ->authorize ('delete ' , $ depot );
7369
70+ // Load equipments count if not already loaded
71+ if (! $ depot ->relationLoaded ('equipments ' )) {
72+ $ depot ->load ('equipments:id,name,depot_id ' );
73+ }
74+
7475 $ depot ->delete ();
7576
76- return back ()->with ( ' status ' , ' depot-deleted ' );
77+ return redirect ()->route ( ' app.organizations.depots.index ' )-> withSuccess ( ' Le dépôt a été supprimé avec succès ' );
7778 }
7879}
0 commit comments