This commit is contained in:
R
2022-12-13 12:47:26 +07:00
17 changed files with 356 additions and 219 deletions

View File

@@ -0,0 +1,63 @@
<?php
namespace Modules\Client\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class ClaimReportController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}

View File

@@ -9,7 +9,7 @@ use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rule;
class DivisionController extends Controller
class CorporateDivisionController extends Controller
{
/**
* Display a listing of the resource.

View File

@@ -9,7 +9,7 @@ use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Client\Transformers\MemberResources;
class MemberController extends Controller
class CorporateMemberController extends Controller
{
/**
* Display a listing of the resource.
@@ -22,18 +22,26 @@ class MemberController extends Controller
$members = Member::query()
->whereHas('employeds', function ($corporateEmployee) use ($corporate_id) {
$corporateEmployee->where('corporate_id', $corporate_id);
})->when($request->input('division'), function ($division, $division_id) {
$division->whereHas('division', function ($corporateEmployee) use ($division_id) {
$corporateEmployee->where('division_id', $division_id);
});
})->when($request->input('search'), function ($query, $search) {
$query->where('member_id', 'like', "%" . $search . "%")
->orWhere('name', 'like', "%" . $search . "%");
});
if ($request->input('claimMember') === 'false') {
$members = $members->when($request->input('division'), function ($division, $division_id) {
$division->whereHas('division', function ($corporateEmployee) use ($division_id) {
$corporateEmployee->where('division_id', $division_id);
});
})->when($request->has('orderBy'), function ($query) use ($request) {
$query->orderBy($request->orderBy, $request->order);
})->paginate($limit);
return response()->json(Helper::paginateResources(MemberResources::collection($members)));
return response()->json(Helper::paginateResources(MemberResources::collection($members)));
} else {
$members = $members->get();
return response()->json(MemberResources::collection($members));
}
}
/**

View File

@@ -1,10 +1,10 @@
<?php
use Modules\Client\Http\Controllers\Api\AuthController;
use Modules\Client\Http\Controllers\Api\CorporateDivisionController;
use Modules\Client\Http\Controllers\Api\CorporateManageController;
use Modules\Client\Http\Controllers\Api\CorporateMemberController;
use Modules\Client\Http\Controllers\Api\CorporatePolicyController;
use Modules\Client\Http\Controllers\Api\DivisionController;
use Modules\Client\Http\Controllers\Api\MemberController;
use Modules\Client\Http\Controllers\Api\UserController;
/*
@@ -26,15 +26,14 @@ Route::prefix('client')->group(function () {
});
Route::middleware('auth:sanctum')->group(function () {
Route::post('logout', [AuthController::class, 'logout'])->name('logout');
Route::get('user', [UserController::class, 'index']);
Route::get('corporate-manage', [CorporateManageController::class, 'index']);
Route::prefix('{corporate_id}')->group(function () {
Route::get('policy', [CorporatePolicyController::class, 'index']);
Route::get('division', [DivisionController::class, 'index']);
Route::get('members', [MemberController::class, 'index']);
Route::get('division', [CorporateDivisionController::class, 'index']);
Route::get('members', [CorporateMemberController::class, 'index']);
});
});
});

View File

@@ -15,15 +15,18 @@ class MemberResources extends JsonResource
public function toArray($request)
{
return [
'id' => $this->id,
'memberId' => $this->member_id,
'fullName' => $this->full_name,
'division' => $this->division->name ?? '',
$this->mergeWhen($request->input('claimMember') === 'false', [
'division' => $this->division->name ?? '',
'status' => $this->active
]),
'limit' => [
'current' => 2000000,
'total' => 4000000,
'percentage' => (2000000 / 4000000) * 100
],
'status' => $this->active
];
}
}

View File

@@ -453,32 +453,19 @@ class MemberEnrollmentService
]);
$memberPolicy->save();
// if (!empty($row['division_name'])) {
// $division_id = CorporateDivision::query()->where('code', $row['division_name'])->pluck('id')->first();
if (!empty($row['division_name'])) {
$division_id = CorporateDivision::query()->where('code', $row['division_name'])->pluck('id')->first();
// if (empty($division_id)) {
// $corporateCodeArray = explode(' ', $row['division_name']);
if (empty($division_id)) {
$division = CorporateDivision::query()->updateOrCreate(['name' => $row['division_name'], 'code' => $row['division_name']], [
'corporate_id' => $corporate->id,
'name' => $row['division_name'],
'code' => $row['division_name'],
]);
// if (!empty($corporateCodeArray[1])) {
// $corporateCode = substr($corporateCodeArray[0], 0, 1) . substr($corporateCodeArray[1], 0, 1);
// } elseif (!empty($corporateCodeArray[2])) {
// $corporateCode = substr($corporateCodeArray[0], 0, 1) . substr($corporateCodeArray[1], 0, 1);
// } else {
// $corporateCode = substr($row['division_name'], 0, 1);
// }
// $division = CorporateDivision::updateOrCreate([
// 'corporate_id' => $corporate->id,
// 'code' => $corporateCode
// ], [
// 'corporate_id' => $corporate->id,
// 'name' => $row['division_name'],
// 'code' => $corporateCode,
// ]);
// $division_id = $division->id;
// }
// }
$division_id = $division->id;
}
}
$member->employeds()->create([
'corporate_id' => $corporate->id,