MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/.trash/app.1/Models/Profile.php
<?php

/**
 * ProfileModel class file
 *
 * PHP Version 7.2
 *
 * @category Model
 * @package  Ez
 * @author   Imenso Software <admin@imensosoftware.com>
 * @license  http://imensosoftware/license.php GNU Public License
 * @link     http://imensosoftware.com/recipes
 */

namespace App\Models;
  
use Illuminate\Database\Eloquent\Model;

/**
 * ProfileModel class
 *
 * The class manage Profile related queries
 *
 * @category ProfileModel
 * @package  Ez
 * @author   Imenso Software <admin@imensosoftware.com>
 * @license  http://imensosoftware/license.php GNU Public License
 * @link     http://imensosoftware.com/recipes
 */

class Profile extends Model
{

    public $table = 'profiles';

    public $fillable = [
        'user_id',
        'bio_data',
        'gender_id',
        'nationality_country_id',
        'residence_country_id',
        'profile_status_id',
        'skill_status',
        'info_status',
        'evaluation_status',
        'translator_status_id',
    ];


    /**
     * UpgradeTranslatorStatus function upgrades the translators status
     * and return translators status_id.
     *
     * @param  int user_id
     * @return $translator_status_id
     */
    public function upgradeTranslatorStatus($user_id)
    {
        $user_id = $user_id;
        $profile = self::where('user_id', $user_id)->first();
        if ($profile && $profile->translator_status_id == 0) {
            return $profile->translator_status_id;
        }

        $translator_status_id = 2;
        if ($profile && $profile->info_status == 1) {
            $translator_status_id = 3;
        }

        $userEvaluations = \App\Models\UserEvaluation::select(
            DB::raw(
                'MAX(evaluation_status_id) as
            evaluation_status_id'
            )
        )->where('user_evaluations.user_id', $user_id)->groupBy('user_evaluations.user_id')->first();

        if ($userEvaluations) {
            if ($userEvaluations->evaluation_status_id <= 2) {
                $translator_status_id = 4;
            }
            if ($userEvaluations->evaluation_status_id == 3) {
                $translator_status_id = 5;
            } elseif ($userEvaluations->evaluation_status_id == 4) {
                $translator_status_id = 6;
            }
        }

        $userIdentification = \App\Models\UserIdentification::select(
            'user_identifications.photo_proof_status_id',
            'user_identifications.address_proof_status_id'
        )->where('user_identifications.user_id', $user_id)->first();
        
        if ($userIdentification) {
            $bankAccountCount = UserBankAccount::where('user_id', $user_id)->count();
            $ppStatus = $userIdentification->photo_proof_status_id;
            $apStatus = $userIdentification->address_proof_status_id;
            if ($ppStatus == 1 && $apStatus == 1 && $bankAccountCount > 0) {
                $translator_status_id = 8;
            } else {
                $translator_status_id = 7;
            }
        }

        self::where('user_id', $request->translator_id)->update(
            ['translator_status_id' => $translator_status_id]
        );
        return $translator_status_id;
    }
    //  end upgradeTranslatorStatus()
}
//  end class