Admin Workflow - Code Refactoring

This commit is contained in:
Dillon Ngo
2025-02-23 22:04:15 +08:00
parent f2ba89d3e4
commit cc558b0af9
6 changed files with 58 additions and 72 deletions
@@ -15,6 +15,7 @@ use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request;
use App\Models\Booking;
use App\Models\QAUserAnswerSelected;
class FetchNextQuestionV1AdminWFProcessor
{
@@ -50,14 +51,13 @@ class FetchNextQuestionV1AdminWFProcessor
$this->fetchBookingQuotation = $fetchBookingQuotation;
}
public function execute(Request $request, $previousAnswer, $booking){
public function execute(array $currentQuestion, ?array $currentQuestionAnswer, array $questionContext, QAUserAnswerSelected $previousAnswer, ?Booking $booking, bool $isPrevious){
$isEnd = 0;
$questionId = 0;
$nextQuestionNumber = "";
$nextNestedQuestion = "";
$nextMainQuestion= "";
$questionnaireSetId = 0;
$currentQuestion = $request->question;
$questionType = QAType::DEFAULT;
$returnQuestion = null;
@@ -70,11 +70,11 @@ class FetchNextQuestionV1AdminWFProcessor
$questionnaireSetId = $currentQuestion['questionnaire_set_id'];
}
if ($request->has('answerObj') && $request->answerObj['next_question_number']) {
$nextQuestionNumber = $request->answerObj['next_question_number'];
if ($currentQuestionAnswer && $currentQuestionAnswer['next_question_number']) {
$nextQuestionNumber = $currentQuestionAnswer['next_question_number'];
}
if ($request->has('isPrevious')) {
if ($isPrevious) {
if($previousAnswer)
{
$previousAnswer->delete();
@@ -105,8 +105,7 @@ class FetchNextQuestionV1AdminWFProcessor
//Check if question exists
$questions = $this->listsQuestions->execute(['questionnaire_set_id' => $questionnaireSetId, 'question_number' => $question_number]);
if($previousAnswer['answer'] === '1688_underpaid_overpaid' && count($questions) == 0){
$extra = $request->extra;
$questionMetadata = $extra['questionMetadata'] ?? null;
$questionMetadata = $questionContext['questionMetadata'] ?? null;
// $processed = round((floatval($questionMetadata['amount_processed']) + PHP_FLOAT_EPSILON) * 1000) / 1000;
// $amount = round((floatval($questionMetadata['amount']) + PHP_FLOAT_EPSILON) * 1000) / 1000;
$processed = $questionMetadata['amount_processed'];