75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Function;
|
|
|
|
use App\Models\Rule;
|
|
use App\Models\Statement;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
|
|
class LaborController extends Controller
|
|
{
|
|
public function quest()
|
|
{
|
|
$quests = Rule::join('statements', 'rules.statement_id', '=', 'statements.id')
|
|
->orderBy('rules.rule_code', 'asc')
|
|
->select('statements.*')
|
|
->distinct()
|
|
->get();
|
|
|
|
return view('employee.pages.theory.quest', compact('quests'));
|
|
}
|
|
|
|
public function calculator(Request $request)
|
|
{
|
|
// $quests = Rule::join('statements', 'rules.statement_id', '=', 'statements.id')
|
|
// ->orderBy('rules.rule_code', 'asc')
|
|
// ->select('statements.*')
|
|
// ->distinct()
|
|
// ->get();
|
|
$quests = Statement::all();
|
|
|
|
// Select all statement columns
|
|
|
|
// Inisialisasi array untuk menyimpan ID pernyataan yang dijawab
|
|
$answeredQuestIds = [];
|
|
|
|
// Loop melalui setiap pernyataan untuk memeriksa jawaban yang diinput
|
|
foreach ($quests as $quest) {
|
|
// Dapatkan nilai input untuk pernyataan saat ini
|
|
$inputValue = $request->input($quest->statement_code);
|
|
|
|
//! tambahkan validasi jika jawaban kosong
|
|
|
|
// Periksa apakah nilai input tidak kosong dan tidak sama dengan "on"
|
|
if (!empty($inputValue) && $inputValue !== 'on') {
|
|
// Jika dijawab, tambahkan ID pernyataan ke dalam array
|
|
$answeredQuestIds[] = $quest->id;
|
|
}
|
|
}
|
|
// dd($answeredQuestIds);
|
|
// $evidence = ["65600f6d-aaa6-424f-b065-29e953cef651", "3351350f-0806-46b5-aebc-4fcf4ce08efb", "73fa4954-e2a1-4639-9e93-df54d85bb5c8", "38a5f7d8-bfba-4f53-9a53-428e52be162a"];
|
|
|
|
$calc = new CalcController();
|
|
|
|
$rulesQuery = $calc->getRulesData($answeredQuestIds);
|
|
$rulesData = $calc->mapRulesData($rulesQuery);
|
|
|
|
//? Mendapatkan data statement
|
|
$statementData = $calc->getStatementData($rulesData);
|
|
|
|
$personalitiesQuery = $calc->getPersonalitiesData();
|
|
$personalitiesData = $calc->mapPersonalitiesData($personalitiesQuery);
|
|
|
|
$result = $calc->processEvidence($rulesData, $personalitiesData);
|
|
|
|
// dd($result);
|
|
|
|
return view('employee.pages.theory.calc', [
|
|
'rules' => $rulesData,
|
|
'statementData' => $statementData,
|
|
'personalitiesData' => $personalitiesData,
|
|
]);
|
|
}
|
|
}
|