Skip to content

Commit 025ab7f

Browse files
committed
updated core system
1 parent f66cfe8 commit 025ab7f

36 files changed

+212
-3423
lines changed

app/Http/Controllers/Admin/UserController.php

Lines changed: 16 additions & 324 deletions
Original file line numberDiff line numberDiff line change
@@ -38,165 +38,20 @@ public function index(Request $request, User $user)
3838
$user->orWhere('email', 'like', "%{$request->filter}%");
3939
}
4040

41-
if ($request->boolean('isEnquiry')) {
42-
if ($request->filled('status')) {
43-
$user->where('status', $request->input('status'));
44-
}
45-
} else {
46-
$user->onlyMember();
47-
48-
if ($request->boolean('status')) {
49-
$user->onlyActive();
50-
}
51-
52-
if ($request->status == 'no-show') {
53-
$user->onlyNoShow();
54-
}
55-
56-
if ($request->status == 'blocked') {
57-
$user->onlyBlocked();
58-
}
59-
60-
if ($request->filled('type')) {
61-
switch ($request->input('type')) {
62-
case 'checked':
63-
$user->onlyChecked();
64-
break;
65-
66-
case 'notchecked':
67-
$user->onlyChecked(0);
68-
break;
69-
70-
case 'rec_checked':
71-
$user->onlyMemChecked();
72-
break;
73-
74-
case 'rec_notchecked':
75-
$user->onlyMemChecked(0);
76-
break;
77-
78-
case 'rolling':
79-
$user->onlyRolling();
80-
break;
81-
82-
case 'ends':
83-
case 'end_date':
84-
$user->onlyRolling(false);
85-
break;
86-
87-
case 'monthly':
88-
case 'annual':
89-
case 'admin':
90-
$user->onlyPlan($request->input('type'));
91-
break;
92-
93-
case 'free':
94-
$user->onlyFree();
95-
break;
96-
}
97-
}
98-
}
99-
100-
if ($request->filled('rag')) {
101-
$user->where('rag', $request->rag);
41+
if ($request->boolean('status')) {
42+
$user->onlyActive();
10243
}
10344

10445
if ($request->boolean('deleted')) {
10546
$user->onlyTrashed();
10647
}
10748

108-
if ($request->filled('month') && $request->filled('year')) {
109-
$user->whereHas('payment', function ($q) use ($request) {
110-
$q->whereYear('created_at', $request->year)
111-
->whereMonth('created_at', $request->month);
112-
});
113-
}
114-
11549
$users = $user->sortBy(optional($request)->sortBy ?? 'created_at', optional($request)->direction ?? 'desc')
11650
->paginate(optional($request)->rowsPerPage ?? 15);
11751

118-
if ($request->boolean('finance')) {
119-
return response()->json([
120-
'data' => $users->items(),
121-
'meta' => [
122-
'total' => $users->total(),
123-
'per_page' => $users->perPage(),
124-
'current_page' => $users->currentPage(),
125-
'last_page' => $users->lastPage(),
126-
'from' => $users->firstItem(),
127-
'to' => $users->lastItem(),
128-
'totalMember' => User::getStats('count'),
129-
'rolling' => User::getStats('rolling'),
130-
'endDate' => User::getStats('ends'),
131-
'monthly' => User::getStats('monthly'),
132-
'annual' => User::getStats('annual'),
133-
'free' => User::getStats('free'),
134-
'checked' => User::getStats($request->boolean('mem_rec') ? 'rec_checked' : 'checked'),
135-
'notChecked' => User::getStats($request->boolean('mem_rec') ? 'rec_notchecked' : 'notchecked'),
136-
'adminFee' => User::getStats('admin:fee'),
137-
'monthlyFee' => User::getStats('monthly:fee'),
138-
'annualFee' => User::getStats('annual:fee'),
139-
'endDateFee' => User::getStats('ends:fee'),
140-
],
141-
], 200);
142-
}
143-
14452
return new ResourceCollection($users);
14553
}
14654

147-
/**
148-
* Display a enquiry listing of the resource.
149-
*
150-
* @return \Illuminate\Http\Response
151-
*/
152-
public function enquiry(Request $request, User $user)
153-
{
154-
$request->merge([
155-
'isEnquiry' => true,
156-
]);
157-
return $this->index($request, $user);
158-
}
159-
160-
/**
161-
* Display a finance type listing of the resource.
162-
*
163-
* @return \Illuminate\Http\Response
164-
*/
165-
public function finance_types(Request $request, User $user)
166-
{
167-
$request->merge([
168-
'finance' => true,
169-
]);
170-
return $this->index($request, $user);
171-
}
172-
173-
/**
174-
* Display a finance membership listing of the resource.
175-
*
176-
* @return \Illuminate\Http\Response
177-
*/
178-
public function finance_memberships(Request $request, User $user)
179-
{
180-
$request->merge([
181-
'finance' => true,
182-
'mem_rec' => true,
183-
]);
184-
return $this->index($request, $user);
185-
}
186-
187-
/**
188-
* Display a finance membership listing of the resource.
189-
*
190-
* @return \Illuminate\Http\Response
191-
*/
192-
public function finance_admins(Request $request, User $user)
193-
{
194-
$request->merge([
195-
'finance' => true,
196-
]);
197-
return $this->index($request, $user);
198-
}
199-
20055
/**
20156
* Store a newly created resource in storage.
20257
*
@@ -229,7 +84,7 @@ public function store(Request $request, User $user)
22984
$user = $user->updateOrCreateAddress([]);
23085

23186
return response()->json([
232-
'data' => $user->fresh(['address', 'notes', 'plan']),
87+
'data' => $user->fresh(['address', 'logs']),
23388
'message' => 'Member has been created successfully!',
23489
], 200);
23590
}
@@ -242,7 +97,7 @@ public function store(Request $request, User $user)
24297
*/
24398
public function show(User $user)
24499
{
245-
return response()->json($user->load(['notes', 'plan']), 200);
100+
return response()->json($user->load(['logs']), 200);
246101
}
247102

248103
/**
@@ -282,7 +137,7 @@ public function update(Request $request, User $user)
282137
// $user = $user->updateOrCreateAddress($request->input('address'));
283138

284139
return response()->json([
285-
'data' => $user->fresh(['address', 'notes', 'plan']),
140+
'data' => $user->fresh(['address', 'logs']),
286141
'message' => 'Member has been update successfully!',
287142
], 200);
288143
}
@@ -336,151 +191,6 @@ public function change_active(Request $request, User $user)
336191
], 200);
337192
}
338193

339-
/**
340-
* Change foc of specified resource from storage.
341-
*
342-
* @param \App\Models\User $user
343-
* @return \Illuminate\Http\Response
344-
*/
345-
public function checked_foc(Request $request, User $user)
346-
{
347-
$user->update([
348-
'foc' => !$user->foc
349-
]);
350-
351-
$request->merge([
352-
'amount' => $user->plan ? $user->plan->plan_fee : 0
353-
]);
354-
355-
// updated payment
356-
$user->payment()->update($request->only([
357-
'amount',
358-
]));
359-
360-
return response()->json([
361-
'message' => $user->foc ? 'Member foc marked as checked successfully!' : 'Member foc marked as unchecked successfully!',
362-
], 200);
363-
}
364-
365-
/**
366-
* Change mem_rec of specified resource from storage.
367-
*
368-
* @param \App\Models\User $user
369-
* @return \Illuminate\Http\Response
370-
*/
371-
public function checked_mem_rec(Request $request, User $user)
372-
{
373-
$user->update([
374-
'mem_rec' => !$user->mem_rec
375-
]);
376-
377-
$request->merge([
378-
'amount' => $user->plan ? $user->plan->plan_fee : 0
379-
]);
380-
381-
// updated payment
382-
$user->payment()->update($request->only([
383-
'amount',
384-
]));
385-
386-
return response()->json([
387-
'message' => $user->mem_rec ? 'Member rec marked as checked successfully!' : 'Member rec marked as unchecked successfully!',
388-
], 200);
389-
}
390-
391-
/**
392-
* Change membership of specified resource from storage.
393-
*
394-
* @param \App\Models\User $user
395-
* @return \Illuminate\Http\Response
396-
*/
397-
public function finance_membership(Request $request, User $user)
398-
{
399-
// update user info
400-
$user->update($request->only(['collect_id']));
401-
402-
$request->merge([
403-
'amount' => $user->plan ? $user->plan->plan_fee : 0
404-
]);
405-
406-
// updated payment
407-
$user->payment()->update($request->only([
408-
'amount',
409-
'admin_date',
410-
'starts_at',
411-
'ends_at'
412-
]));
413-
414-
return response()->json([
415-
'message' => 'Member has been update successfully!',
416-
], 200);
417-
}
418-
419-
/**
420-
* Display a schedules listing of specified resource from storage.
421-
*
422-
* @param \App\Models\User $user
423-
* @return \Illuminate\Http\Response
424-
*/
425-
public function schedules(Request $request, User $user)
426-
{
427-
ClassSchedule::resolveRelationUsing('booking', function ($schedule) use ($user) {
428-
return $schedule->hasOne(Booking::class, 'schedule_id')->withOnly([])->where('user_id', $user->id);
429-
});
430-
431-
$classes = $user->schedules()->with('booking');
432-
433-
if ($request->filled('filter')) {
434-
$classes->whereHas('class', function ($q) use ($request) {
435-
$q->where('name', 'like', "%{$request->filter}%");
436-
});
437-
$classes->orWhere('day', 'like', "%{$request->filter}%");
438-
}
439-
440-
if ($request->filled('date_from') && $request->filled('date_to')) {
441-
$date_from = Carbon::parse($request->input('date_from'))->format('Y-m-d');
442-
$date_to = Carbon::parse($request->input('date_to'))->format('Y-m-d');
443-
$classes->havingRaw('date_at BETWEEN ? AND ?', [$date_from, $date_to]);
444-
} else if ($request->filled('date')) {
445-
$date = Carbon::parse($request->input('date'));
446-
$classes->havingRaw('date_at = ?', [$date]);
447-
}
448-
449-
if ($request->filled('status')) {
450-
switch ($request->status) {
451-
case 'active':
452-
$classes->havingRaw('date_at >= CURDATE()')
453-
->whereHas('bookings', function ($q) use ($user) {
454-
$q->where('user_id', $user->id)
455-
->whereNull('canceled_at');
456-
});
457-
break;
458-
459-
case 'cancelled':
460-
$classes->whereHas('bookings', function ($q) use ($user) {
461-
$q->where('user_id', $user->id)
462-
->whereNotNull('canceled_at');
463-
});
464-
break;
465-
466-
case 'noshow':
467-
$classes->whereHas('bookings', function ($q) use ($user) {
468-
$q->where('user_id', $user->id)
469-
->whereNull('canceled_at')
470-
->whereHas('schedule', function ($q) {
471-
$q->whereNotNull('sign_off_at');
472-
})
473-
->where('attendence', 0);
474-
});
475-
break;
476-
}
477-
}
478-
479-
$classes = $classes->orderBy(optional($request)->sortBy ?? 'created_at', optional($request)->direction ?? 'desc')
480-
->paginate(optional($request)->rowsPerPage ?? 15);
481-
return new ResourceCollection($classes);
482-
}
483-
484194
/**
485195
* Create notes for specified resource from storage.
486196
*
@@ -489,40 +199,22 @@ public function schedules(Request $request, User $user)
489199
*/
490200
public function notes(Request $request, User $user)
491201
{
202+
$rules = [
203+
'message' => 'required',
204+
];
492205

493-
if ($request->filled('rag')) {
494-
$user->update($request->only('rag'));
495-
}
206+
// Validate those rules
207+
$this->validate($request, $rules);
496208

497-
if ($request->filled('message')) {
498-
$request->merge([
499-
'type' => 'notes',
500-
]);
209+
$request->merge([
210+
'type' => 'notes',
211+
]);
501212

502-
$note = $user->notes()->create($request->input());
503-
504-
return response()->json([
505-
'data' => $note->load('admin'),
506-
'message' => 'Note has been added successfully!',
507-
], 200);
508-
} else {
509-
return response()->json([
510-
'data' => null,
511-
'message' => 'Note has been added successfully!',
512-
], 200);
513-
}
514-
}
213+
$note = $user->notes()->create($request->input());
515214

516-
public function reports(Request $request)
517-
{
518215
return response()->json([
519-
'total' => User::getStatsByMonthAndYear('total', $request->month, $request->year),
520-
'rolling' => User::getStatsByMonthAndYear('rolling', $request->month, $request->year),
521-
'end_date' => User::getStatsByMonthAndYear('end_date', $request->month, $request->year),
522-
'monthly' => User::getStatsByMonthAndYear('monthly', $request->month, $request->year),
523-
'annual' => User::getStatsByMonthAndYear('annual', $request->month, $request->year),
524-
'free' => User::getStatsByMonthAndYear('free', $request->month, $request->year),
525-
'cancelled' => User::getStatsByMonthAndYear('cancelled', $request->month, $request->year),
216+
'data' => $note->load('admin'),
217+
'message' => 'Note has been added successfully!',
526218
], 200);
527219
}
528220
}

0 commit comments

Comments
 (0)