|
@@ -97,7 +97,7 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
Route::get('/banks', \App\Http\Livewire\Bank::class);
|
|
Route::get('/banks', \App\Http\Livewire\Bank::class);
|
|
|
Route::get('/vats', \App\Http\Livewire\Vat::class);
|
|
Route::get('/vats', \App\Http\Livewire\Vat::class);
|
|
|
Route::get('/disciplines', \App\Http\Livewire\Discipline::class);
|
|
Route::get('/disciplines', \App\Http\Livewire\Discipline::class);
|
|
|
- Route::get('/course_types', \App\Http\Livewire\CourseType::class);
|
|
|
|
|
|
|
+ // Route::get('/course_types', \App\Http\Livewire\CourseType::class);
|
|
|
Route::get('/course_subscriptions', \App\Http\Livewire\CourseSubscription::class);
|
|
Route::get('/course_subscriptions', \App\Http\Livewire\CourseSubscription::class);
|
|
|
Route::get('/course_durations', \App\Http\Livewire\CourseDuration::class);
|
|
Route::get('/course_durations', \App\Http\Livewire\CourseDuration::class);
|
|
|
Route::get('/course_levels', \App\Http\Livewire\CourseLevel::class);
|
|
Route::get('/course_levels', \App\Http\Livewire\CourseLevel::class);
|
|
@@ -126,6 +126,10 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
Route::get('/azienda', \App\Http\Livewire\Azienda::class);
|
|
Route::get('/azienda', \App\Http\Livewire\Azienda::class);
|
|
|
Route::get('/sms_comunications', \App\Http\Livewire\SmsComunications::class);
|
|
Route::get('/sms_comunications', \App\Http\Livewire\SmsComunications::class);
|
|
|
Route::get('/mail_comunications', \App\Http\Livewire\EmailComunications::class);
|
|
Route::get('/mail_comunications', \App\Http\Livewire\EmailComunications::class);
|
|
|
|
|
+ Route::get('/members_archive', \App\Http\Livewire\MemberArchive::class);
|
|
|
|
|
+ Route::get('/subscriptions', \App\Http\Livewire\Subscription::class);
|
|
|
|
|
+ Route::get('/subscription_member', \App\Http\Livewire\SubscriptionMembers::class);
|
|
|
|
|
+ Route::get('/subscription_member/{id}', \App\Http\Livewire\SubscriptionMember::class);
|
|
|
|
|
|
|
|
Route::get('/calendar', \App\Http\Livewire\Calendar::class);
|
|
Route::get('/calendar', \App\Http\Livewire\Calendar::class);
|
|
|
Route::get('/presences', \App\Http\Livewire\Presence::class);
|
|
Route::get('/presences', \App\Http\Livewire\Presence::class);
|
|
@@ -257,10 +261,17 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
|
|
|
|
|
$datas = [];
|
|
$datas = [];
|
|
|
|
|
|
|
|
|
|
+ $archived = (isset($_GET['archived']) && $_GET['archived'] == 1) ? true : false;
|
|
|
|
|
+
|
|
|
$x = \App\Models\Member::select('id', 'first_name', 'last_name', 'phone', 'birth_date', 'to_complete', 'current_status', 'certificate', 'certificate_date')
|
|
$x = \App\Models\Member::select('id', 'first_name', 'last_name', 'phone', 'birth_date', 'to_complete', 'current_status', 'certificate', 'certificate_date')
|
|
|
|
|
+ ->where(function($query) use($archived) {
|
|
|
|
|
+ $query->where('is_archived', $archived);
|
|
|
|
|
+ if (!$archived)
|
|
|
|
|
+ $query->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
->where(function($query) {
|
|
->where(function($query) {
|
|
|
- $query->where('is_archived', false)
|
|
|
|
|
- ->orWhereNull('is_archived');
|
|
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
if (isset($_GET["search"]["value"]) && $_GET["search"]["value"] != "") {
|
|
if (isset($_GET["search"]["value"]) && $_GET["search"]["value"] != "") {
|
|
@@ -361,9 +372,14 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
} else if ($filterValue == "3") {
|
|
} else if ($filterValue == "3") {
|
|
|
// Only non-archived members without certificates
|
|
// Only non-archived members without certificates
|
|
|
$scadIds = \App\Models\Member::whereNotIn('id', \App\Models\MemberCertificate::pluck('member_id'))
|
|
$scadIds = \App\Models\Member::whereNotIn('id', \App\Models\MemberCertificate::pluck('member_id'))
|
|
|
|
|
+ ->where(function($query) use($archived) {
|
|
|
|
|
+ $query->where('is_archived', $archived);
|
|
|
|
|
+ if (!$archived)
|
|
|
|
|
+ $query->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
->where(function($query) {
|
|
->where(function($query) {
|
|
|
- $query->where('is_archived', false)
|
|
|
|
|
- ->orWhereNull('is_archived');
|
|
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
})
|
|
})
|
|
|
->pluck('id')->toArray();
|
|
->pluck('id')->toArray();
|
|
|
} else if ($filterValue == "4") {
|
|
} else if ($filterValue == "4") {
|
|
@@ -394,9 +410,16 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
if ($_GET["filterStatus"] != "null") {
|
|
if ($_GET["filterStatus"] != "null") {
|
|
|
$status = explode(",", $_GET["filterStatus"]);
|
|
$status = explode(",", $_GET["filterStatus"]);
|
|
|
// Only get non-archived members for status filtering
|
|
// Only get non-archived members for status filtering
|
|
|
- $members = \App\Models\Member::where(function($query) {
|
|
|
|
|
- $query->where('is_archived', false)
|
|
|
|
|
- ->orWhereNull('is_archived');
|
|
|
|
|
|
|
+ $members = \App\Models\Member::where(function($query) use($archived) {
|
|
|
|
|
+ $query->where(function($q) use($archived) {
|
|
|
|
|
+ $q->where('is_archived', $archived);
|
|
|
|
|
+ if (!$archived)
|
|
|
|
|
+ $q->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($q) {
|
|
|
|
|
+ $q->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ });
|
|
|
})->get();
|
|
})->get();
|
|
|
|
|
|
|
|
foreach ($status as $s) {
|
|
foreach ($status as $s) {
|
|
@@ -426,7 +449,7 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
if ($_GET["order"][0]["column"] == 2)
|
|
if ($_GET["order"][0]["column"] == 2)
|
|
|
$column = 'phone';
|
|
$column = 'phone';
|
|
|
if ($_GET["order"][0]["column"] == 3)
|
|
if ($_GET["order"][0]["column"] == 3)
|
|
|
- $column = 'birth_date';
|
|
|
|
|
|
|
+ $column = 'years';
|
|
|
if ($_GET["order"][0]["column"] == 4)
|
|
if ($_GET["order"][0]["column"] == 4)
|
|
|
$column = 'birth_date';
|
|
$column = 'birth_date';
|
|
|
if ($_GET["order"][0]["column"] == 5)
|
|
if ($_GET["order"][0]["column"] == 5)
|
|
@@ -443,6 +466,14 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
elseif ($column == 'current_status') {
|
|
elseif ($column == 'current_status') {
|
|
|
$x = $x->orderBy('to_complete', 'DESC');
|
|
$x = $x->orderBy('to_complete', 'DESC');
|
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
|
|
|
+ } elseif ($column == 'years') {
|
|
|
|
|
+ $column = 'birth_date';
|
|
|
|
|
+ $dirs = ['asc' => 'desc', 'desc' => 'asc'];
|
|
|
|
|
+ $x = $x->orderByRaw($column . ' IS NULL ' . $dirs[$_GET["order"][0]["dir"]])
|
|
|
|
|
+ ->orderBy($column, $dirs[$_GET["order"][0]["dir"]]);
|
|
|
|
|
+ } elseif ($column == 'birth_date') {
|
|
|
|
|
+ $x = $x->orderByRaw($column . ' IS NULL ' . $_GET["order"][0]["dir"])
|
|
|
|
|
+ ->orderBy($column, $_GET["order"][0]["dir"]);
|
|
|
} else {
|
|
} else {
|
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
|
}
|
|
}
|
|
@@ -532,11 +563,14 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
|
|
|
|
|
$datas = [];
|
|
$datas = [];
|
|
|
|
|
|
|
|
- // BASE IDENTICA ALLA TUA get_members
|
|
|
|
|
$x = \App\Models\Member::select('id', 'first_name', 'last_name', 'email', 'phone', 'birth_date', 'to_complete', 'current_status', 'certificate', 'certificate_date')
|
|
$x = \App\Models\Member::select('id', 'first_name', 'last_name', 'email', 'phone', 'birth_date', 'to_complete', 'current_status', 'certificate', 'certificate_date')
|
|
|
->where(function($query) {
|
|
->where(function($query) {
|
|
|
$query->where('is_archived', false)
|
|
$query->where('is_archived', false)
|
|
|
->orWhereNull('is_archived');
|
|
->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
if (isset($_GET["search"]["value"]) && $_GET["search"]["value"] != "") {
|
|
if (isset($_GET["search"]["value"]) && $_GET["search"]["value"] != "") {
|
|
@@ -640,6 +674,10 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
$query->where('is_archived', false)
|
|
$query->where('is_archived', false)
|
|
|
->orWhereNull('is_archived');
|
|
->orWhereNull('is_archived');
|
|
|
})
|
|
})
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })
|
|
|
->pluck('id')->toArray();
|
|
->pluck('id')->toArray();
|
|
|
} else if ($filterValue == "4") {
|
|
} else if ($filterValue == "4") {
|
|
|
$memberLatestCerts = DB::table('member_certificates')
|
|
$memberLatestCerts = DB::table('member_certificates')
|
|
@@ -669,8 +707,14 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
if ($_GET["filterStatus"] != "null") {
|
|
if ($_GET["filterStatus"] != "null") {
|
|
|
$status = explode(",", $_GET["filterStatus"]);
|
|
$status = explode(",", $_GET["filterStatus"]);
|
|
|
$members = \App\Models\Member::where(function($query) {
|
|
$members = \App\Models\Member::where(function($query) {
|
|
|
- $query->where('is_archived', false)
|
|
|
|
|
- ->orWhereNull('is_archived');
|
|
|
|
|
|
|
+ $query->where(function($q) {
|
|
|
|
|
+ $q->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($q) {
|
|
|
|
|
+ $q->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ });
|
|
|
})->get();
|
|
})->get();
|
|
|
|
|
|
|
|
foreach ($status as $s) {
|
|
foreach ($status as $s) {
|
|
@@ -722,41 +766,35 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
|
|
|
|
|
if (isset($_GET["order"])) {
|
|
if (isset($_GET["order"])) {
|
|
|
$column = '';
|
|
$column = '';
|
|
|
- if ($_GET["order"][0]["column"] == 0)
|
|
|
|
|
- $column = 'last_name';
|
|
|
|
|
if ($_GET["order"][0]["column"] == 1)
|
|
if ($_GET["order"][0]["column"] == 1)
|
|
|
- $column = 'first_name';
|
|
|
|
|
|
|
+ $column = 'last_name';
|
|
|
if ($_GET["order"][0]["column"] == 2)
|
|
if ($_GET["order"][0]["column"] == 2)
|
|
|
- $column = 'email';
|
|
|
|
|
|
|
+ $column = 'first_name';
|
|
|
if ($_GET["order"][0]["column"] == 3)
|
|
if ($_GET["order"][0]["column"] == 3)
|
|
|
- $column = 'phone';
|
|
|
|
|
|
|
+ $column = 'email';
|
|
|
if ($_GET["order"][0]["column"] == 4)
|
|
if ($_GET["order"][0]["column"] == 4)
|
|
|
- $column = 'birth_date';
|
|
|
|
|
|
|
+ $column = 'phone';
|
|
|
if ($_GET["order"][0]["column"] == 5)
|
|
if ($_GET["order"][0]["column"] == 5)
|
|
|
$column = 'birth_date';
|
|
$column = 'birth_date';
|
|
|
if ($_GET["order"][0]["column"] == 6)
|
|
if ($_GET["order"][0]["column"] == 6)
|
|
|
- $column = 'current_status';
|
|
|
|
|
|
|
+ $column = 'birth_date';
|
|
|
if ($_GET["order"][0]["column"] == 7)
|
|
if ($_GET["order"][0]["column"] == 7)
|
|
|
|
|
+ $column = 'current_status';
|
|
|
|
|
+ if ($_GET["order"][0]["column"] == 8)
|
|
|
$column = 'certificate';
|
|
$column = 'certificate';
|
|
|
|
|
|
|
|
if ($column != '') {
|
|
if ($column != '') {
|
|
|
- if ($column == 'last_name') {
|
|
|
|
|
- $x = $x->orderBy('to_complete', 'DESC');
|
|
|
|
|
- }
|
|
|
|
|
if ($column == 'certificate')
|
|
if ($column == 'certificate')
|
|
|
$x = $x->orderBy('certificate_date', $_GET["order"][0]["dir"]);
|
|
$x = $x->orderBy('certificate_date', $_GET["order"][0]["dir"]);
|
|
|
elseif ($column == 'current_status') {
|
|
elseif ($column == 'current_status') {
|
|
|
- $x = $x->orderBy('to_complete', 'DESC');
|
|
|
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
|
} else {
|
|
} else {
|
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
$x = $x->orderBy($column, $_GET["order"][0]["dir"]);
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
- $x = $x->orderBy('to_complete', 'DESC');
|
|
|
|
|
$x = $x->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
|
|
$x = $x->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
- $x = $x->orderBy('to_complete', 'DESC');
|
|
|
|
|
$x = $x->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
|
|
$x = $x->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -864,7 +902,7 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
|
|
->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
|
|
|
->where('records.type', 'IN');
|
|
->where('records.type', 'IN');
|
|
|
|
|
|
|
|
- $y = \App\Models\Record::select('records_rows.amount', 'records.member_id', 'records.corrispettivo_fiscale', 'records.deleted', 'records.financial_movement', 'records_rows.causal_id', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name')) // , \DB::raw('SUM(records.id) As total'))
|
|
|
|
|
|
|
+ $y = \App\Models\Record::select('records_rows.amount', 'records.member_id', 'records.corrispettivo_fiscale', 'records.deleted', 'records.financial_movement', 'records_rows.causal_id', 'records_rows.course_id', 'records_rows.subscription_id', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name')) // , \DB::raw('SUM(records.id) As total'))
|
|
|
->leftJoin('members', 'records.member_id', '=', 'members.id')
|
|
->leftJoin('members', 'records.member_id', '=', 'members.id')
|
|
|
->leftJoin('records_rows', 'records.id', '=', 'records_rows.record_id')
|
|
->leftJoin('records_rows', 'records.id', '=', 'records_rows.record_id')
|
|
|
//->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
|
|
//->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
|
|
@@ -947,6 +985,35 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
$x = $x->whereIn('records.id', $causals);
|
|
$x = $x->whereIn('records.id', $causals);
|
|
|
$y = $y->whereIn('records.id', $causals);
|
|
$y = $y->whereIn('records.id', $causals);
|
|
|
}
|
|
}
|
|
|
|
|
+ if ($_GET["filterCourses"] != "null") {
|
|
|
|
|
+ $hasFilter = true;
|
|
|
|
|
+ $courses = explode(",", $_GET["filterCourses"]);
|
|
|
|
|
+
|
|
|
|
|
+ // Per ogni corso, se ha dei figli allora aggiungo i corsi figli
|
|
|
|
|
+ foreach ($courses as $c) {
|
|
|
|
|
+ $childs = \App\Models\Course::where('parent_id', $c)->get();
|
|
|
|
|
+ foreach ($childs as $cc) {
|
|
|
|
|
+ $courses[] = $cc->id;
|
|
|
|
|
+ $childss = \App\Models\Course::where('parent_id', $cc->id)->get();
|
|
|
|
|
+ foreach ($childss as $ccc) {
|
|
|
|
|
+ $courses[] = $ccc->id;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //$courses = \App\Models\RecordRow::where('course_id', $_GET["filtercourses"])->pluck('record_id');
|
|
|
|
|
+ $courses = \App\Models\RecordRow::whereIn('course_id', $courses)->pluck('record_id');
|
|
|
|
|
+ $x = $x->whereIn('records.id', $courses);
|
|
|
|
|
+ $y = $y->whereIn('records.id', $courses);
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($_GET["filterSubscriptions"] != "null") {
|
|
|
|
|
+ $hasFilter = true;
|
|
|
|
|
+ $subscriptions = explode(",", $_GET["filterSubscriptions"]);
|
|
|
|
|
+
|
|
|
|
|
+ $subscriptions = \App\Models\RecordRow::whereIn('subscription_id', $subscriptions)->pluck('record_id');
|
|
|
|
|
+ $x = $x->whereIn('records.id', $subscriptions);
|
|
|
|
|
+ $y = $y->whereIn('records.id', $subscriptions);
|
|
|
|
|
+ }
|
|
|
if ($_GET["filterFrom"] != '') {
|
|
if ($_GET["filterFrom"] != '') {
|
|
|
$hasFilter = true;
|
|
$hasFilter = true;
|
|
|
$x = $x->where('records.date', '>=', $_GET["filterFrom"]);
|
|
$x = $x->where('records.date', '>=', $_GET["filterFrom"]);
|
|
@@ -981,7 +1048,15 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
$excludeCausals[] = $e->id;
|
|
$excludeCausals[] = $e->id;
|
|
|
}*/
|
|
}*/
|
|
|
|
|
|
|
|
- $exclude_from_records = \App\Models\Member::where('exclude_from_records', true)->pluck('id')->toArray();
|
|
|
|
|
|
|
+ $exclude_from_records = \App\Models\Member::where('exclude_from_records', true)
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id')->toArray();
|
|
|
|
|
|
|
|
// Pagamento money
|
|
// Pagamento money
|
|
|
$moneys = \App\Models\PaymentMethod::where('money', true)->pluck('id')->toArray();
|
|
$moneys = \App\Models\PaymentMethod::where('money', true)->pluck('id')->toArray();
|
|
@@ -1036,8 +1111,15 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
foreach ($x as $idx => $r) {
|
|
foreach ($x as $idx => $r) {
|
|
|
|
|
|
|
|
$causals = '';
|
|
$causals = '';
|
|
|
|
|
+ $courses = '';
|
|
|
|
|
+ $subscriptions = '';
|
|
|
foreach ($r->rows as $row) {
|
|
foreach ($r->rows as $row) {
|
|
|
$causals .= $row->causal->getTree() . "<br>";
|
|
$causals .= $row->causal->getTree() . "<br>";
|
|
|
|
|
+
|
|
|
|
|
+ if ($row->course)
|
|
|
|
|
+ $courses .= $row->course->getDetailsName() . "<br>";
|
|
|
|
|
+ if ($row->subscription)
|
|
|
|
|
+ $subscriptions .= $row->subscription->name . "<br>";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$datas[] = array(
|
|
$datas[] = array(
|
|
@@ -1049,6 +1131,7 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
'last_name' => $r->last_name,
|
|
'last_name' => $r->last_name,
|
|
|
'commercial' => $r->financial_movement ? 'Movimento finanziario' : ($r->commercial ? 'SI' : 'NO'),
|
|
'commercial' => $r->financial_movement ? 'Movimento finanziario' : ($r->commercial ? 'SI' : 'NO'),
|
|
|
'causals' => $causals,
|
|
'causals' => $causals,
|
|
|
|
|
+ 'courses' => $subscriptions . $courses,
|
|
|
'payment' => $r->payment_method->name,
|
|
'payment' => $r->payment_method->name,
|
|
|
//'payment_date' => date("d/m/Y", strtotime($r->date)),
|
|
//'payment_date' => date("d/m/Y", strtotime($r->date)),
|
|
|
'status' => $r->deleted ? 'Annullato' : '',
|
|
'status' => $r->deleted ? 'Annullato' : '',
|
|
@@ -1172,9 +1255,17 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
if ($_GET["search"]["value"] != '') {
|
|
if ($_GET["search"]["value"] != '') {
|
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
|
- $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
|
|
|
|
|
- ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
|
|
|
|
|
- })->pluck('id');
|
|
|
|
|
|
|
+ $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
|
|
|
|
|
+ ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
/*
|
|
/*
|
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
@@ -1212,7 +1303,7 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
$course_ids = \App\Models\Course::whereIn('course_frequency_id', $frequencies)->pluck('id');
|
|
$course_ids = \App\Models\Course::whereIn('course_frequency_id', $frequencies)->pluck('id');
|
|
|
$member_course = $member_course->whereIn('course_id', $course_ids);
|
|
$member_course = $member_course->whereIn('course_id', $course_ids);
|
|
|
}
|
|
}
|
|
|
- if ($_GET["filterType"] != "null") {
|
|
|
|
|
|
|
+ if ($_GET["filterType"] != "null" && $_GET["filterType"] != "undefined") {
|
|
|
$types = explode(",", $_GET["filterType"]);
|
|
$types = explode(",", $_GET["filterType"]);
|
|
|
$course_ids = \App\Models\Course::whereIn('course_type_id', $types)->pluck('id');
|
|
$course_ids = \App\Models\Course::whereIn('course_type_id', $types)->pluck('id');
|
|
|
$member_course = $member_course->whereIn('course_id', $course_ids);
|
|
$member_course = $member_course->whereIn('course_id', $course_ids);
|
|
@@ -1543,13 +1634,21 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
->leftJoin('courses', 'member_courses.course_id', '=', 'courses.id')
|
|
->leftJoin('courses', 'member_courses.course_id', '=', 'courses.id')
|
|
|
->leftJoin('members', 'member_courses.member_id', '=', 'members.id');
|
|
->leftJoin('members', 'member_courses.member_id', '=', 'members.id');
|
|
|
|
|
|
|
|
- if (isset($_GET["search"]["value"])) {
|
|
|
|
|
|
|
+ if (isset($_GET["search"]["value"]) && trim($_GET["search"]["value"]) != "") {
|
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
|
|
|
|
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
|
- $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
|
|
|
|
|
- ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
|
|
|
|
|
- })->pluck('id');
|
|
|
|
|
|
|
+ $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
|
|
|
|
|
+ ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
|
|
|
|
|
/*$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
/*$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
|
$query->where('first_name', 'like', '%' . $v . '%')
|
|
$query->where('first_name', 'like', '%' . $v . '%')
|
|
@@ -1583,7 +1682,7 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
$course_ids = \App\Models\Course::whereIn('course_frequency_id', $frequencies)->pluck('id');
|
|
$course_ids = \App\Models\Course::whereIn('course_frequency_id', $frequencies)->pluck('id');
|
|
|
$datas = $datas->whereIn('course_id', $course_ids);
|
|
$datas = $datas->whereIn('course_id', $course_ids);
|
|
|
}
|
|
}
|
|
|
- if ($_GET["filterType"] != "null") {
|
|
|
|
|
|
|
+ if ($_GET["filterType"] != "null" && $_GET["filterType"] != "undefined") {
|
|
|
$types = explode(",", $_GET["filterType"]);
|
|
$types = explode(",", $_GET["filterType"]);
|
|
|
$course_ids = \App\Models\Course::whereIn('course_type_id', $types)->pluck('id');
|
|
$course_ids = \App\Models\Course::whereIn('course_type_id', $types)->pluck('id');
|
|
|
$datas = $datas->whereIn('course_id', $course_ids);
|
|
$datas = $datas->whereIn('course_id', $course_ids);
|
|
@@ -1662,6 +1761,14 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
$allScadIds = array_merge($allScadIds, $expiringMemberIds);
|
|
$allScadIds = array_merge($allScadIds, $expiringMemberIds);
|
|
|
} else if ($filterValue == "3") {
|
|
} else if ($filterValue == "3") {
|
|
|
$scadIds = \App\Models\Member::whereNotIn('id', \App\Models\MemberCertificate::pluck('member_id'))
|
|
$scadIds = \App\Models\Member::whereNotIn('id', \App\Models\MemberCertificate::pluck('member_id'))
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })
|
|
|
->pluck('id')
|
|
->pluck('id')
|
|
|
->toArray();
|
|
->toArray();
|
|
|
$allScadIds = array_merge($allScadIds, $scadIds);
|
|
$allScadIds = array_merge($allScadIds, $scadIds);
|
|
@@ -1693,21 +1800,53 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ($_GET["fromYear"] != "") {
|
|
if ($_GET["fromYear"] != "") {
|
|
|
- $m_ids = \App\Models\Member::where('birth_date', '<', date("Y-m-d", strtotime("-" . $_GET["fromYear"] . " year", time())))->pluck('id');
|
|
|
|
|
|
|
+ $m_ids = \App\Models\Member::where('birth_date', '<', date("Y-m-d", strtotime("-" . $_GET["fromYear"] . " year", time())))
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ($_GET["toYear"] != "") {
|
|
if ($_GET["toYear"] != "") {
|
|
|
- $m_ids = \App\Models\Member::where('birth_date', '>', date("Y-m-d", strtotime("-" . $_GET["toYear"] . " year", time())))->pluck('id');
|
|
|
|
|
|
|
+ $m_ids = \App\Models\Member::where('birth_date', '>', date("Y-m-d", strtotime("-" . $_GET["toYear"] . " year", time())))
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ($_GET["fromFromYear"] != "") {
|
|
if ($_GET["fromFromYear"] != "") {
|
|
|
- $m_ids = \App\Models\Member::whereYear('birth_date', '>=', $_GET["fromFromYear"])->pluck('id');
|
|
|
|
|
|
|
+ $m_ids = \App\Models\Member::whereYear('birth_date', '>=', $_GET["fromFromYear"])
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
|
}
|
|
}
|
|
|
if ($_GET["toToYear"] != "") {
|
|
if ($_GET["toToYear"] != "") {
|
|
|
- $m_ids = \App\Models\Member::whereYear('birth_date', '<=', $_GET["toToYear"])->pluck('id');
|
|
|
|
|
|
|
+ $m_ids = \App\Models\Member::whereYear('birth_date', '<=', $_GET["toToYear"])
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
$datas = $datas->whereIn('member_id', $m_ids);
|
|
|
}
|
|
}
|
|
|
if ($_GET["filterCards"] != "null") {
|
|
if ($_GET["filterCards"] != "null") {
|
|
@@ -1844,6 +1983,260 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
return json_encode(array("data" => $ret, "recordsTotal" => sizeof($aRet), "recordsFiltered" => sizeof($aRet)));
|
|
return json_encode(array("data" => $ret, "recordsTotal" => sizeof($aRet), "recordsFiltered" => sizeof($aRet)));
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ Route::get('/get_subscription_members', function () {
|
|
|
|
|
+ $subscription_id = 0;
|
|
|
|
|
+ if (!isset($_GET['subscription_id']) || is_null($_GET['subscription_id']) || $_GET['subscription_id'] <= 0) {
|
|
|
|
|
+ return json_encode(array("data" => [], "recordsTotal" => 0, "recordsFiltered" => 0));
|
|
|
|
|
+ }
|
|
|
|
|
+ $subscription_id = $_GET['subscription_id'];
|
|
|
|
|
+
|
|
|
|
|
+ $datas = \App\Models\MemberSubscription::select('member_subscriptions.*', 'subscriptions.name as course_name', 'members.first_name', 'members.last_name', 'members.birth_date')
|
|
|
|
|
+ ->leftJoin('subscriptions', 'member_subscriptions.subscription_id', '=', 'subscriptions.id')
|
|
|
|
|
+ ->leftJoin('members', 'member_subscriptions.member_id', '=', 'members.id')
|
|
|
|
|
+ ->where('member_subscriptions.subscription_id', $subscription_id);
|
|
|
|
|
+
|
|
|
|
|
+ if (isset($_GET["search"]["value"]) && trim($_GET["search"]["value"]) != "") {
|
|
|
|
|
+ $v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
|
|
|
+
|
|
|
|
|
+ $member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
|
|
|
+ $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
|
|
|
|
|
+ ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
|
|
+
|
|
|
|
|
+ $datas = $datas->whereIn('member_id', $member_ids);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($_GET["filterCertificateScadenza"] != "null") {
|
|
|
|
|
+ $scadenzaValues = explode(",", $_GET["filterCertificateScadenza"]);
|
|
|
|
|
+ $allScadIds = [];
|
|
|
|
|
+
|
|
|
|
|
+ foreach ($scadenzaValues as $filterValue) {
|
|
|
|
|
+ if ($filterValue == "1") {
|
|
|
|
|
+ $memberLatestCerts = DB::table('member_certificates')
|
|
|
|
|
+ ->select('member_id', DB::raw('MAX(expire_date) as latest_expire_date'))
|
|
|
|
|
+ ->groupBy('member_id')
|
|
|
|
|
+ ->get();
|
|
|
|
|
+
|
|
|
|
|
+ $expiredMemberIds = [];
|
|
|
|
|
+ foreach ($memberLatestCerts as $cert) {
|
|
|
|
|
+ if (date('Y-m-d', strtotime($cert->latest_expire_date)) < date('Y-m-d')) {
|
|
|
|
|
+ $expiredMemberIds[] = $cert->member_id;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $allScadIds = array_merge($allScadIds, $expiredMemberIds);
|
|
|
|
|
+
|
|
|
|
|
+ Log::info("Course members - Expired certificates filter - member count: " . count($expiredMemberIds));
|
|
|
|
|
+ } else if ($filterValue == "2") {
|
|
|
|
|
+ $memberLatestCerts = DB::table('member_certificates')
|
|
|
|
|
+ ->select('member_id', DB::raw('MAX(expire_date) as latest_expire_date'))
|
|
|
|
|
+ ->groupBy('member_id')
|
|
|
|
|
+ ->get();
|
|
|
|
|
+
|
|
|
|
|
+ $expiringMemberIds = [];
|
|
|
|
|
+ foreach ($memberLatestCerts as $cert) {
|
|
|
|
|
+ $expireDate = date('Y-m-d', strtotime($cert->latest_expire_date));
|
|
|
|
|
+ $today = date('Y-m-d');
|
|
|
|
|
+ $oneMonthLater = date('Y-m-d', strtotime("+1 month"));
|
|
|
|
|
+
|
|
|
|
|
+ if ($expireDate >= $today && $expireDate <= $oneMonthLater) {
|
|
|
|
|
+ $expiringMemberIds[] = $cert->member_id;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $allScadIds = array_merge($allScadIds, $expiringMemberIds);
|
|
|
|
|
+ } else if ($filterValue == "3") {
|
|
|
|
|
+ $scadIds = \App\Models\Member::whereNotIn('id', \App\Models\MemberCertificate::pluck('member_id'))
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->pluck('id')
|
|
|
|
|
+ ->toArray();
|
|
|
|
|
+ $allScadIds = array_merge($allScadIds, $scadIds);
|
|
|
|
|
+ } else if ($filterValue == "4") {
|
|
|
|
|
+ $memberLatestCerts = DB::table('member_certificates')
|
|
|
|
|
+ ->select('member_id', DB::raw('MAX(expire_date) as latest_expire_date'))
|
|
|
|
|
+ ->groupBy('member_id')
|
|
|
|
|
+ ->get();
|
|
|
|
|
+
|
|
|
|
|
+ $validMemberIds = [];
|
|
|
|
|
+ foreach ($memberLatestCerts as $cert) {
|
|
|
|
|
+ $expireDate = date('Y-m-d', strtotime($cert->latest_expire_date));
|
|
|
|
|
+ $oneMonthLater = date('Y-m-d', strtotime("+1 month"));
|
|
|
|
|
+
|
|
|
|
|
+ if ($expireDate > $oneMonthLater) {
|
|
|
|
|
+ $validMemberIds[] = $cert->member_id;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $allScadIds = array_merge($allScadIds, $validMemberIds);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Remove duplicates
|
|
|
|
|
+ $allScadIds = array_unique($allScadIds);
|
|
|
|
|
+ Log::info("Course members - Total members after filterCertificateScadenza: " . count($allScadIds));
|
|
|
|
|
+
|
|
|
|
|
+ // Apply filter using the collected IDs
|
|
|
|
|
+ $datas = $datas->whereIn('member_id', $allScadIds);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($_GET["fromYear"] != "") {
|
|
|
|
|
+ $m_ids = \App\Models\Member::where('birth_date', '<', date("Y-m-d", strtotime("-" . $_GET["fromYear"] . " year", time())))
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
|
|
+ $datas = $datas->whereIn('member_id', $m_ids);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($_GET["toYear"] != "") {
|
|
|
|
|
+ $m_ids = \App\Models\Member::where('birth_date', '>', date("Y-m-d", strtotime("-" . $_GET["toYear"] . " year", time())))
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
|
|
+ $datas = $datas->whereIn('member_id', $m_ids);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($_GET["fromFromYear"] != "") {
|
|
|
|
|
+ $m_ids = \App\Models\Member::whereYear('birth_date', '>=', $_GET["fromFromYear"])
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
|
|
+ $datas = $datas->whereIn('member_id', $m_ids);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($_GET["toToYear"] != "") {
|
|
|
|
|
+ $m_ids = \App\Models\Member::whereYear('birth_date', '<=', $_GET["toToYear"])
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
|
|
+ $datas = $datas->whereIn('member_id', $m_ids);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($_GET["filterCards"] != "null") {
|
|
|
|
|
+ $cards = explode(",", $_GET["filterCards"]);
|
|
|
|
|
+ $card_ids = \App\Models\MemberCard::whereIn('card_id', $cards)->pluck('member_id');
|
|
|
|
|
+ $datas = $datas->whereIn('member_id', $card_ids);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $aRet = [];
|
|
|
|
|
+ if (isset($_GET["order"])) {
|
|
|
|
|
+ $column = '';
|
|
|
|
|
+ if ($_GET["order"][0]["column"] == 1)
|
|
|
|
|
+ $column = 'last_name';
|
|
|
|
|
+ if ($_GET["order"][0]["column"] == 2)
|
|
|
|
|
+ $column = 'first_name';
|
|
|
|
|
+ if ($_GET["order"][0]["column"] == 3)
|
|
|
|
|
+ $column = 'certificate_expire_date';
|
|
|
|
|
+ // if ($_GET["order"][0]["column"] == 4)
|
|
|
|
|
+ // $column = 'gender';
|
|
|
|
|
+ if ($column != '')
|
|
|
|
|
+ $datas = $datas->orderBy($column, $_GET["order"][0]["dir"]);
|
|
|
|
|
+ else
|
|
|
|
|
+ $datas = $datas->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
|
|
|
|
|
+ } else
|
|
|
|
|
+ $datas = $datas->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
|
|
|
|
|
+
|
|
|
|
|
+ if ($_GET["filterStatus"] != "null") {
|
|
|
|
|
+ $status = explode(",", $_GET["filterStatus"]);
|
|
|
|
|
+ foreach ($status as $s) {
|
|
|
|
|
+ foreach ($datas->get() as $aaa) {
|
|
|
|
|
+
|
|
|
|
|
+ $state = \App\Models\Member::findOrFail($aaa->member_id)->isActive();
|
|
|
|
|
+ if ($state["status"] == $s)
|
|
|
|
|
+ $aRet[] = $aaa;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else
|
|
|
|
|
+ $aRet = $datas->get();
|
|
|
|
|
+
|
|
|
|
|
+ $ret = [];
|
|
|
|
|
+ foreach ($aRet as $idx => $r) {
|
|
|
|
|
+ $certificate = \App\Models\MemberCertificate::where('member_id', $r->member_id)
|
|
|
|
|
+ ->orderBy('expire_date', 'desc')
|
|
|
|
|
+ ->first();
|
|
|
|
|
+
|
|
|
|
|
+ $certificateInfo = "";
|
|
|
|
|
+ if ($certificate) {
|
|
|
|
|
+ // Format: status|expire_date|type
|
|
|
|
|
+ // Status: 0 = expired, 1 = expiring soon, 2 = valid
|
|
|
|
|
+ $today = new DateTime();
|
|
|
|
|
+ $expireDate = new DateTime($certificate->expire_date);
|
|
|
|
|
+ $oneMonthFromNow = (new DateTime())->modify('+1 month');
|
|
|
|
|
+
|
|
|
|
|
+ $status = "2"; // Default to valid
|
|
|
|
|
+ if ($expireDate < $today) {
|
|
|
|
|
+ $status = "0"; // Expired
|
|
|
|
|
+ } elseif ($expireDate < $oneMonthFromNow) {
|
|
|
|
|
+ $status = "1"; // Expiring soon
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $certificateInfo = $status . "|" . date("d/m/Y", strtotime($certificate->expire_date)) . "|" . $certificate->type;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $status = 0;
|
|
|
|
|
+ $payed = 0;
|
|
|
|
|
+ $rates = \App\Models\Rate::where('member_course_id', $r->id)->where('date', '<', date("Y-m-d"))->get();
|
|
|
|
|
+ foreach($rates as $rate)
|
|
|
|
|
+ {
|
|
|
|
|
+ if ($rate->date > date("Y-m-d"))
|
|
|
|
|
+ {
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ $status = $rate->status;
|
|
|
|
|
+ if ($rate->status == 1)
|
|
|
|
|
+ $payed += 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($status == 1 && $payed != sizeof($rates))
|
|
|
|
|
+ $status = 0;
|
|
|
|
|
+
|
|
|
|
|
+ $ret[] = array(
|
|
|
|
|
+ "column_0" => $idx + 1,
|
|
|
|
|
+ "column_1" => $r->last_name,
|
|
|
|
|
+ "column_2" => $r->first_name,
|
|
|
|
|
+ "column_3" => $certificateInfo,
|
|
|
|
|
+ "column_4" => $status,
|
|
|
|
|
+ "column_5" => $r->id,
|
|
|
|
|
+ "column_7" => $r->member_id,
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (isset($_GET["start"]))
|
|
|
|
|
+ $ret = array_slice($ret, $_GET["start"], $_GET["length"]);
|
|
|
|
|
+
|
|
|
|
|
+ return json_encode(array("data" => $ret, "recordsTotal" => sizeof($aRet), "recordsFiltered" => sizeof($aRet)));
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
Route::get('/get_receipts', function () {
|
|
Route::get('/get_receipts', function () {
|
|
|
$baseQuery = \App\Models\Receipt::select('receipts.id')
|
|
$baseQuery = \App\Models\Receipt::select('receipts.id')
|
|
|
->leftJoin('members', 'receipts.member_id', '=', 'members.id');
|
|
->leftJoin('members', 'receipts.member_id', '=', 'members.id');
|
|
@@ -1851,9 +2244,17 @@ Route::group(['middleware' => 'tenant'], function () {
|
|
|
if (isset($_GET["search"]["value"]) && !empty($_GET["search"]["value"])) {
|
|
if (isset($_GET["search"]["value"]) && !empty($_GET["search"]["value"])) {
|
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
$v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
|
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
$member_ids = \App\Models\Member::where(function ($query) use ($v) {
|
|
|
- $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
|
|
|
|
|
- ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
|
|
|
|
|
- })->pluck('id');
|
|
|
|
|
|
|
+ $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
|
|
|
|
|
+ ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_archived', false)
|
|
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function($query) {
|
|
|
|
|
+ $query->where('is_deleted', false)
|
|
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
|
|
+ })->pluck('id');
|
|
|
$baseQuery = $baseQuery->whereIn('receipts.member_id', $member_ids);
|
|
$baseQuery = $baseQuery->whereIn('receipts.member_id', $member_ids);
|
|
|
}
|
|
}
|
|
|
|
|
|