table member dan table benefit

This commit is contained in:
pajri
2022-12-20 17:48:28 +07:00
parent da14589328
commit 88ad144921
17 changed files with 1365 additions and 499 deletions

View File

@@ -20,12 +20,12 @@ class BenefitController extends Controller
public function index(Request $request, $corporate_id)
{
$benefits = CorporateBenefit::query()
->filter($request->all())
->where('corporate_id', $corporate_id)
->with('benefit')
->paginate()
->appends($request->all());
->filter($request->all())
->where('corporate_id', $corporate_id)
->with('benefit', 'plan')
->paginate()
->appends($request->all());
return $benefits;
}
@@ -133,7 +133,7 @@ class BenefitController extends Controller
// }
// }
// }
// break; //only read first sheet
// }
// $reader->close();

View File

@@ -18,14 +18,30 @@ class CorporateBenefitController extends Controller
public function index(Request $request, $corporate_id)
{
$benefits = CorporateBenefit::query()
->filter($request->all())
->where('corporate_id', $corporate_id)
->paginate(0)
->appends($request->all());
->filter($request->all())
->where('corporate_id', $corporate_id)
->paginate(0)
->appends($request->all());
return $benefits;
}
public function activation(Request $request, $benefit_id)
{
$request->validate([
'active' => 'required'
]);
// abort(404);
$benefit = CorporateBenefit::findOrFail($benefit_id);
$benefit->active = $request->active == '1';
if ($benefit->save()) {
return response()->json([
'benefit' => $benefit,
'message' => 'Status Updated Successfully'
]);
}
}
/**
* Show the form for creating a new resource.
* @return Renderable

View File

@@ -51,6 +51,25 @@ class CorporateMemberController extends Controller
return Helper::paginateResources(MemberDataTableResource::collection($members));
}
public function activation(Request $request, $member_id)
{
$request->validate([
'active' => 'required'
]);
// abort(404);
$member = Member::findOrFail($member_id);
$member->active = $request->active == '1';
if ($member->save()) {
return response()->json([
'member' => $member,
'message' => 'Status Updated Successfully'
]);
}
}
/**
* Show the form for creating a new resource.
* @return Renderable

View File

@@ -28,16 +28,16 @@ class PlanController extends Controller
public function index(Request $request, $corporate_id)
{
$plans = Plan::query()
->filter($request->all())
->where('corporate_id', $corporate_id)
// ->whereHas('corporatePlan', function ($corporatePlan) use ($corporate_id) {
// $corporatePlan->where('corporate_id', $corporate_id);
// })
// ->with('corporatePlan')
->orderBy('corporate_plan_id', 'ASC')
->paginate()
->appends($request->all());
->filter($request->all())
->where('corporate_id', $corporate_id)
// ->whereHas('corporatePlan', function ($corporatePlan) use ($corporate_id) {
// $corporatePlan->where('corporate_id', $corporate_id);
// })
// ->with('corporatePlan')
->orderBy('corporate_plan_id', 'ASC')
->paginate()
->appends($request->all());
return $plans;
}
@@ -105,14 +105,14 @@ class PlanController extends Controller
{
$request->validate([
'file' => 'required|file|mimes:xls,xlsx,csv,txt',
]);
$file_name = now()->getPreciseTimestamp(3).'-'.$request->file('file')->getClientOriginalName();
]);
$file_name = now()->getPreciseTimestamp(3) . '-' . $request->file('file')->getClientOriginalName();
$file = $request->file('file')->storeAs('temp', $file_name);
$corporate = Corporate::findOrFail($corporate_id);
$import = $this->importService;
$import->read(Storage::path('temp/'.$file_name));
$import->write(Storage::disk('public')->path('temp/result-'.$file_name), 'xsls');
$import->read(Storage::path('temp/' . $file_name));
$import->write(Storage::disk('public')->path('temp/result-' . $file_name), 'xsls');
$headers_map_to_table_fields = Plan::$doc_headers_to_field_map;
@@ -142,7 +142,7 @@ class PlanController extends Controller
// Create Directly
try {
$rowResponse = $this->corporateService->handlePlanRow($corporate, $plan_row);
// Write Success Result to File
array_push($plan_row, 'SUCCESS');
$import->addArrayToRow($plan_row);
@@ -160,11 +160,11 @@ class PlanController extends Controller
}
}
}
break; //only read first sheet
}
$import->reader->close();
Storage::delete('temp/'.$file_name);
Storage::delete('temp/' . $file_name);
$import->writer->close();
// throw(404);
@@ -173,8 +173,8 @@ class PlanController extends Controller
'total_failed_row' => count($failed_plan_data),
'failed_row' => $failed_plan_data,
'result_file' => [
'url' => Storage::disk('public')->url('temp/result-'.$file_name),
'name' => 'result-'.$file_name,
'url' => Storage::disk('public')->url('temp/result-' . $file_name),
'name' => 'result-' . $file_name,
]
];
}

View File

@@ -65,6 +65,7 @@ Route::prefix('internal')->group(function () {
Route::post('corporates/{corporate_id}/corporate-benefits', [CorporateBenefitController::class, 'store']);
Route::get('corporates/{corporate_id}/corporate-benefits/{id}/edit', [CorporateBenefitController::class, 'edit']);
Route::put('corporates/{corporate_id}/corporate-benefits/{id}', [CorporateBenefitController::class, 'update']);
Route::put('benefits/{benefit_id}/activation', [CorporateBenefitController::class, 'activation']);
Route::get('corporates/{corporate_id}/benefits', [BenefitController::class, 'index']);
Route::post('corporates/{corporate_id}/benefits/import', [BenefitController::class, 'memberBenefitImport']);
@@ -76,6 +77,8 @@ Route::prefix('internal')->group(function () {
Route::get('corporates/{corporate_id}/members', [CorporateMemberController::class, 'index']);
Route::post('corporates/{corporate_id}/members/import', [CorporateMemberController::class, 'import']);
Route::put('members/{member_id}/activation', [CorporateMemberController::class, 'activation']);
Route::get('corporates/{corporate_id}/diagnosis-exclusions', [DiagnosisExclusionController::class, 'index']);
Route::post('corporates/{corporate_id}/diagnosis-exclusions/import', [DiagnosisExclusionController::class, 'import']);

View File

@@ -10,6 +10,7 @@ use App\Models\CorporateDivision;
use App\Models\CorporatePlan;
use App\Models\Member;
use App\Models\MemberPolicy;
use App\Models\Person;
use App\Models\Plan;
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
use Box\Spout\Common\Entity\Row;
@@ -408,12 +409,35 @@ class MemberEnrollmentService
// Validate If Exist Member
if ($member) {
$person = Person::updateOrCreate(
[
'id' => $member->person_id
],
[
'name' => $row['name'] ?? null,
'birth_date' => Carbon::parse(strtotime($row['date_of_birth'])),
'gender' => Helper::genderPerson($row['sex']),
'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null,
]
);
$member->person_id = $person->id;
$member->save();
throw new ImportRowException(__('enrollment.MEMBER_UNIQUE', [
'member_id' => $row['member_id'],
'policy_id' => $row['policy_number']
]), 0, null, $row);
} else {
$member = new Member();
$person = Person::create([
'name' => $row['name'],
'birth_date' => Carbon::parse(strtotime($row['date_of_birth'])),
'gender' => Helper::genderPerson($row['sex']),
'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null,
]);
$member->person_id = $person->id;
$member->save();
}
$memberPolicy = $member->policies()