Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/syn.corals.io/Corals/modules/Syndicate/Classes/Syndicate.php
<?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;
    }
}

Spamworldpro Mini