File: /home/imensosw/www/ezwork/app/Models/DocumentPartServiceBids.php
<?php
/**
* DocumentPartServiceBidsModel 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 DB;
use Illuminate\Database\Eloquent\Model;
use App\Models\UserContract;
use App\Models\Document;
/**
* DocumentPartServiceBidsModel class
*
* The class manage Document Part Service Bids related queries
*
* @category DocumentPartServiceBidsModel
* @package Ez
* @author Imenso Software <admin@imensosoftware.com>
* @license http://imensosoftware/license.php GNU Public License
* @link http://imensosoftware.com/recipes
*/
class DocumentPartServiceBids extends Model
{
public $table = 'bids';
public $fillable = [
'document_part_service_id',
'user_id',
'bid_time',
'bid_datetime',
];
public $timestamps = false;
/**
* GetDocumentPartServiceBids function gets the services of parts of specified document
* and return the document service list .
*
* @param array request
* @return \App\Models\DocumentPartServiceBids
*/
public static function getDocumentPartServiceBids($request)
{
$documentPartServiceBids = self::join(
'document_part_services',
'document_part_services.id',
'=',
'bids.document_part_service_id'
)
->join(
'document_parts',
'document_parts.id',
'=',
'document_part_services.document_part_id'
)
->join(
'users',
'users.id',
'=',
'bids.user_id'
)
->select(
'bids.*',
'document_part_services.minutes',
'users.name'
);
if ($request->document_id) {
$document = Document::getDocument($request->document_id);
$documentPartServiceBids = $documentPartServiceBids->where(
'document_parts.document_id',
$request->document_id
);
}
$documentPartServiceBids = $documentPartServiceBids->get();
foreach ($documentPartServiceBids as $key => $value) {
$result = UserContract::select('rating')
->where('user_id',$value->user_id)
->where('from_language_id',$document->from_language_id)
->where('to_language_id',$document->to_language_id)->first();
$timeDifference = $value->minutes - $value->bid_time;
if(intval($timeDifference / 60))
$time = sprintf("%+d",intval($timeDifference / 60)).'.'.intval($timeDifference % 60).' hr';
else
$time = sprintf("%+d",intval($timeDifference % 60)).' min';
$rating = 0;
if($result)
$rating = $result->rating;
$documentPartServiceBids[$key]['name'] = $value->name.' ('.$rating.') '.$time;
}
return $documentPartServiceBids;
}
// end getDocumentPartServiceBids()
}
// end class