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