![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/syn.corals.io/Corals/modules/Syndicate/Classes/ |
<?php namespace Corals\Modules\Syndicate\Classes; use Corals\Modules\Syndicate\Models\Exam; use Corals\Modules\Syndicate\Models\Fee; use Corals\Modules\Syndicate\Models\FeeSetup; use Corals\Modules\Syndicate\Models\FeeTransaction; use Corals\Modules\Syndicate\Models\Pharmacist; use Corals\Modules\Syndicate\Models\Training; use Corals\Settings\Facades\Settings; use Illuminate\Support\Facades\DB; class Syndicate { /** * Syndicate constructor. */ function __construct() { } public function getPharmacists() { return Pharmacist::query()->pluck("name", "id"); } public function getSyndicateChairman() { return Pharmacist::query()->where('is_chairman', '=', '1')->first(); } public function getFeeSetupType() { $data = FeeSetup::query()->join('utility_list_of_values', function ($join) { $join->on('syndicate_fee_setups.fee_code', '=', 'utility_list_of_values.code'); })->select( DB::raw("CONCAT(utility_list_of_values.value,'-',syndicate_fee_setups.year)AS value"), 'utility_list_of_values.code' )->get(); $result = $data->pluck('value', 'code'); return $result; } public function getPharmacistExam($id) { $query = Exam::query()->where('user_id', '=', $id)->paginate(); return $query; } public function getFeeTransactionsAmount($fee) { $feeTransactionsAmount = FeeTransaction::query()->where('fee_id', '=', $fee->id)->sum('amount'); return $feeTransactionsAmount; } public function getPharmacistTrining($id) { $query = Training::query()->where('user_id', '=', $id)->paginate(); return $query; } public function traineeToPharmacistConvertConditions($traineeId) { $trainingHours = Settings::get('trainee_minimum_training_hours'); $oralExamPassDegree = Settings::get('trainee_oral_exam_pass_degree'); $writtenExamPassDegree = Settings::get('trainee_written_exam_pass_degree'); $conditions = [ 'total_training_hours' => [ 'status' => false, 'description' => trans('Syndicate::labels.convert_conditions.training_hours', ['hours' => $trainingHours]), ], 'passed_oral_exam' => [ 'status' => false, 'description' => trans('Syndicate::labels.convert_conditions.passed_oral_exam', ['degree' => $oralExamPassDegree]), ], 'passed_written_exam' => [ 'status' => false, 'description' => trans('Syndicate::labels.convert_conditions.passed_written_exam', ['degree' => $oralExamPassDegree]), ], 'pay_fee_exam' => [ 'status' => false, 'description' => trans('Syndicate::labels.convert_conditions.pay_fee_exam'), ] ]; $sumHoursTraining = Training::query()->where('user_id', '=', $traineeId)->sum('hours'); $passOralExam = Exam::query()->where('user_id', '=', $traineeId) ->where('oral_result', '>=', $oralExamPassDegree)->exists(); $passWrittenExam = Exam::query()->where('user_id', '=', $traineeId) ->where('written_result', '>=', $writtenExamPassDegree)->exists(); $remainingAmount = Fee::query() ->selectRaw('SUM(due - paid) as remainingAmount') ->where('user_id', '=', $traineeId) ->where('type_code', '=', 'Syndicate::transaction_type.exam-fee') ->first()->remainingAmount; foreach ($conditions as $key => $condition) { switch ($key) { case 'total_training_hours': if ((int)($sumHoursTraining) >= $trainingHours) { $conditions['total_training_hours']['status'] = true; } break; case 'passed_oral_exam': if ($passOralExam) { $conditions['passed_oral_exam']['status'] = true; } break; case 'passed_written_exam': if ($passWrittenExam) { $conditions['passed_written_exam']['status'] = true; } break; case 'pay_fee_exam': if ($remainingAmount == 0 && $remainingAmount != null) { $conditions['pay_fee_exam']['status'] = true; } break; } } return $conditions; } }