This commit is contained in:
R
2022-11-23 13:16:24 +07:00
parent f7d8759a76
commit d5b43d9896
5 changed files with 203 additions and 0 deletions

26
app/Models/Claim.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Claim extends Model
{
use HasFactory;
protected $fillable = [
'code',
'member_id',
'diagnosis_id',
'total_claim',
'currency',
'plan_id',
'benefit_id',
];
public function member()
{
return $this->belongsTo(Member::class, 'member_id');
}
}

View File

@@ -165,4 +165,9 @@ class Plan extends Model
// {
// return $this->belongsTo(Corporate::class);
// }
public function benefits()
{
return $this->hasMany(Benefit::class, 'plan_code', 'id');
}
}

View File

@@ -0,0 +1,43 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('claims', function (Blueprint $table) {
$table->id();
$table->string('code')->index();
$table->foreignId('member_id')->index();
$table->foreignId('diagnosis_id')->index();
$table->string('total_claim');
$table->string('currency');
$table->foreignId('plan_id')->index();
$table->foreignId('benefit_id')->index();
$table->timestamps();
$table->softDeletes();
$table->unsignedBigInteger('created_by')->nullable()->index();
$table->unsignedBigInteger('updated_by')->nullable()->index();
$table->unsignedBigInteger('deleted_by')->nullable()->index();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('claims');
}
};

View File

@@ -0,0 +1,36 @@
<?php
namespace Database\Seeders;
use App\Models\Icd;
use App\Models\Member;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Str;
class DummyClaimSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$members = Member::limit(10)->get();
foreach ($members as $member) {
for ($x = 0; $x < 10; $x++) {
$member->claims()->create([
'code' => Str::random('16'),
'member_id' => $member->id,
'diagnosis_id' => Icd::inRandomOrder()->first()->id,
'total_claim' => 5000000,
'currency' => 'IDR',
'plan_id' => $member->currentPlan->id,
'benefit_id' => $member->currentPlan->benefits()->inRandomOrder()->first()->id,
]);
}
}
}
}

View File

@@ -26,6 +26,7 @@ specifiers:
'@typescript-eslint/eslint-plugin': ^5.35.1
'@typescript-eslint/parser': ^5.35.1
'@vitejs/plugin-react': ^1.3.2
apexcharts: ^3.36.3
axios: ^0.27.2
change-case: ^4.1.2
csstype: ^3.1.0
@@ -52,12 +53,14 @@ specifiers:
numeral: ^2.0.6
prettier: ^2.7.1
react: ^17.0.2
react-apexcharts: ^1.4.0
react-dom: ^17.0.2
react-dropzone: ^14.2.2
react-helmet-async: ^1.3.0
react-hook-form: ^7.34.2
react-intersection-observer: ^8.34.0
react-lazy-load-image-component: ^1.5.5
react-number-format: ^5.1.1
react-quill: 2.0.0-beta.4
react-router: ^6.3.0
react-router-dom: ^6.3.0
@@ -85,6 +88,7 @@ dependencies:
'@mui/x-data-grid': 5.16.0_r4jqxufjb3aftjrjm24vhpn4hm
'@mui/x-date-pickers': 5.0.0-beta.2_y3fv7pzpxqpbmxcbzsros3kjnu
'@vitejs/plugin-react': 1.3.2
apexcharts: 3.36.3
axios: 0.27.2
change-case: 4.1.2
csstype: 3.1.0
@@ -98,12 +102,14 @@ dependencies:
nprogress: 0.2.0
numeral: 2.0.6
react: 17.0.2
react-apexcharts: 1.4.0_rurziszfowucu2gmkqclv6xeru
react-dom: 17.0.2_react@17.0.2
react-dropzone: 14.2.2_react@17.0.2
react-helmet-async: 1.3.0_sfoxds7t5ydpegc3knd667wn6m
react-hook-form: 7.34.2_react@17.0.2
react-intersection-observer: 8.34.0_react@17.0.2
react-lazy-load-image-component: 1.5.5_sfoxds7t5ydpegc3knd667wn6m
react-number-format: 5.1.2_sfoxds7t5ydpegc3knd667wn6m
react-quill: 2.0.0-beta.4_sfoxds7t5ydpegc3knd667wn6m
react-router: 6.3.0_react@17.0.2
react-router-dom: 6.3.0_sfoxds7t5ydpegc3knd667wn6m
@@ -2683,6 +2689,17 @@ packages:
color-convert: 2.0.1
dev: true
/apexcharts/3.36.3:
resolution: {integrity: sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==}
dependencies:
svg.draggable.js: 2.2.2
svg.easing.js: 2.0.0
svg.filter.js: 2.0.2
svg.pathmorphing.js: 0.1.3
svg.resize.js: 1.4.3
svg.select.js: 3.0.1
dev: false
/argparse/2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
@@ -4934,6 +4951,17 @@ packages:
safe-buffer: 5.2.1
dev: true
/react-apexcharts/1.4.0_rurziszfowucu2gmkqclv6xeru:
resolution: {integrity: sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q==}
peerDependencies:
apexcharts: ^3.18.0
react: '>=0.13'
dependencies:
apexcharts: 3.36.3
prop-types: 15.8.1
react: 17.0.2
dev: false
/react-dom/17.0.2_react@17.0.2:
resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==}
peerDependencies:
@@ -5016,6 +5044,17 @@ packages:
react-dom: 17.0.2_react@17.0.2
dev: false
/react-number-format/5.1.2_sfoxds7t5ydpegc3knd667wn6m:
resolution: {integrity: sha512-NXm/MvZVjmPqrFbjAut/prCyBZ+pA+O+C12rDkWZrwS3JXz1J42RC1kpclkdnkx2KDjRCNFLb21FlwGcNBZddw==}
peerDependencies:
react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^18.0.0
react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^18.0.0
dependencies:
prop-types: 15.8.1
react: 17.0.2
react-dom: 17.0.2_react@17.0.2
dev: false
/react-quill/2.0.0-beta.4_sfoxds7t5ydpegc3knd667wn6m:
resolution: {integrity: sha512-KyAHvAlPjP4xLElKZJefMth91Z6FbbXRvq9OSu6xN3KBaoasLP9p+3dcxg4Ywr4tBlpMGXcPszYSAgd5CpJ45Q==}
peerDependencies:
@@ -5461,6 +5500,60 @@ packages:
resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
dev: false
/svg.draggable.js/2.2.2:
resolution: {integrity: sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==}
engines: {node: '>= 0.8.0'}
dependencies:
svg.js: 2.7.1
dev: false
/svg.easing.js/2.0.0:
resolution: {integrity: sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==}
engines: {node: '>= 0.8.0'}
dependencies:
svg.js: 2.7.1
dev: false
/svg.filter.js/2.0.2:
resolution: {integrity: sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==}
engines: {node: '>= 0.8.0'}
dependencies:
svg.js: 2.7.1
dev: false
/svg.js/2.7.1:
resolution: {integrity: sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==}
dev: false
/svg.pathmorphing.js/0.1.3:
resolution: {integrity: sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==}
engines: {node: '>= 0.8.0'}
dependencies:
svg.js: 2.7.1
dev: false
/svg.resize.js/1.4.3:
resolution: {integrity: sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==}
engines: {node: '>= 0.8.0'}
dependencies:
svg.js: 2.7.1
svg.select.js: 2.1.2
dev: false
/svg.select.js/2.1.2:
resolution: {integrity: sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==}
engines: {node: '>= 0.8.0'}
dependencies:
svg.js: 2.7.1
dev: false
/svg.select.js/3.0.1:
resolution: {integrity: sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==}
engines: {node: '>= 0.8.0'}
dependencies:
svg.js: 2.7.1
dev: false
/temp-dir/2.0.0:
resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
engines: {node: '>=8'}