255 lines
6.7 KiB
PHP
Executable File
255 lines
6.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Validator;
|
|
use App\Responses;
|
|
use App\Helper;
|
|
use App\Models\Users;
|
|
use App\Models\Clients;
|
|
use App\Models\Insurances;
|
|
|
|
class InsuranceController extends Controller
|
|
{
|
|
public function view_insurances(Request $req)
|
|
{
|
|
return view('menu_v1.configs.insurances');
|
|
}
|
|
|
|
/**
|
|
* API
|
|
*/
|
|
|
|
public function api_list_insurances(Request $req)
|
|
{
|
|
try {
|
|
$now = time();
|
|
$input = [];
|
|
$rulesInput = [];
|
|
|
|
// validasi input
|
|
// $isValidInput = Validator::make($input, $rulesInput);
|
|
// if (!$isValidInput->passes()) {
|
|
// $apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
// return new Response($apiResp, $apiResp['meta']['code']);
|
|
// }
|
|
|
|
$list = Insurances::listInsurances();
|
|
foreach ($list as $key => $row) {
|
|
$list[$key]->DT_RowIndex = $key + 1;
|
|
$list[$key]->action = '-';
|
|
}
|
|
|
|
$apiResp = Responses::success('success list insurances');
|
|
$apiResp['count'] = count($list);
|
|
$apiResp['data'] = $list;
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
} catch (\Exception $e) {
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
}
|
|
|
|
public function api_show_insurance(Request $req, $iid)
|
|
{
|
|
try {
|
|
$now = time();
|
|
|
|
$input = [
|
|
'iid' => $iid,
|
|
];
|
|
$rulesInput = [
|
|
'iid' => 'required|integer|not_in:0',
|
|
];
|
|
|
|
// validasi input
|
|
$isValidInput = Validator::make($input, $rulesInput);
|
|
if (!$isValidInput->passes()) {
|
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
return new Response($apiResp, $apiResp['meta']['code']);
|
|
}
|
|
|
|
$insurance = Insurances::showInsuranceById($iid);
|
|
if (count($insurance) < 1) {
|
|
$apiResp = Responses::not_found('insurance not found');
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
|
|
$apiResp = Responses::success('success get detail insurance');
|
|
$apiResp['data'] = $insurance[0];
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
} catch (\Exception $e) {
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
}
|
|
|
|
public function api_add_insurance(Request $req)
|
|
{
|
|
try {
|
|
$now = time();
|
|
|
|
$input = [
|
|
'name' => $req->name,
|
|
'desc' => $req->desc,
|
|
'price' => $req->price,
|
|
'min_price' => $req->min_price,
|
|
'max_price' => $req->max_price,
|
|
'status' => $req->status,
|
|
];
|
|
$rulesInput = [
|
|
'name' => 'required|string',
|
|
'desc' => 'nullable|string',
|
|
'price' => 'required|numeric|min:0',
|
|
'min_price' => 'required|numeric|min:0',
|
|
'max_price' => 'required|numeric|min:0',
|
|
'status' => 'required|numeric|min:0',
|
|
];
|
|
|
|
// validasi input
|
|
$isValidInput = Validator::make($input, $rulesInput);
|
|
if (!$isValidInput->passes()) {
|
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
return new Response($apiResp, $apiResp['meta']['code']);
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
$insInsurance = [
|
|
'premi_name' => $req->name,
|
|
'desc' => $req->desc,
|
|
'premi_price' => $req->price,
|
|
'premi_min_price' => $req->min_price,
|
|
'premi_max_price' => $req->max_price,
|
|
'is_active' => $req->status,
|
|
'crt' => $now,
|
|
'crt_by' => $req->auth->uid,
|
|
'updt' => $now,
|
|
'updt_by' => $req->auth->uid,
|
|
];
|
|
$iid = Insurances::addInsurance($insInsurance);
|
|
|
|
$apiResp = Responses::created('success add new insurance');
|
|
|
|
DB::commit();
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
}
|
|
|
|
public function api_edit_insurance(Request $req, $iid)
|
|
{
|
|
try {
|
|
$now = time();
|
|
|
|
$input = [
|
|
'iid' => $iid,
|
|
'name' => $req->name,
|
|
'desc' => $req->desc,
|
|
'price' => $req->price,
|
|
'min_price' => $req->min_price,
|
|
'max_price' => $req->max_price,
|
|
'status' => $req->status,
|
|
];
|
|
$rulesInput = [
|
|
'iid' => 'required|integer|not_in:0',
|
|
'name' => 'required|string',
|
|
'desc' => 'nullable|string',
|
|
'price' => 'required|numeric|min:0',
|
|
'min_price' => 'required|numeric|min:0',
|
|
'max_price' => 'required|numeric|min:0',
|
|
'status' => 'required|numeric|min:0',
|
|
];
|
|
|
|
// validasi input
|
|
$isValidInput = Validator::make($input, $rulesInput);
|
|
if (!$isValidInput->passes()) {
|
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
return new Response($apiResp, $apiResp['meta']['code']);
|
|
}
|
|
|
|
$insurance = Insurances::showInsuranceById($iid);
|
|
if (count($insurance) < 1) {
|
|
$apiResp = Responses::not_found('insurance not found');
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
$updtInsurance = [
|
|
'premi_name' => $req->name,
|
|
'desc' => $req->desc,
|
|
'premi_price' => $req->price,
|
|
'premi_min_price' => $req->min_price,
|
|
'premi_max_price' => $req->max_price,
|
|
'is_active' => $req->status,
|
|
'updt' => $now,
|
|
'updt_by' => $req->auth->uid,
|
|
];
|
|
if ($req->dest_district) {
|
|
$updtInsurance['dest_district'] = $req->dest_district;
|
|
}
|
|
$iid = Insurances::updateInsurance($iid, $updtInsurance);
|
|
|
|
$apiResp = Responses::created('success update insurance');
|
|
|
|
DB::commit();
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
}
|
|
|
|
public function api_del_insurance(Request $req, $iid)
|
|
{
|
|
try {
|
|
$now = time();
|
|
|
|
$input = [
|
|
'iid' => $iid,
|
|
];
|
|
$rulesInput = [
|
|
'iid' => 'required|integer|not_in:0',
|
|
];
|
|
|
|
// validasi input
|
|
$isValidInput = Validator::make($input, $rulesInput);
|
|
if (!$isValidInput->passes()) {
|
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
return new Response($apiResp, $apiResp['meta']['code']);
|
|
}
|
|
|
|
$insurance = Insurances::showInsuranceById($iid);
|
|
if (count($insurance) < 1) {
|
|
$apiResp = Responses::not_found('insurance not found');
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
Insurances::updateInsurance($iid, [
|
|
'dlt' => $now,
|
|
'dlt_by' => $req->auth->uid,
|
|
]);
|
|
|
|
DB::commit();
|
|
|
|
$apiResp = Responses::success('success delete insurance');
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return (new Response($apiResp, $apiResp['meta']['code']));
|
|
}
|
|
}
|
|
}
|