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/www/ezwork/app/Models/DocumentService.php
<?php

/**
 * DocumentServiceModel 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;

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

class DocumentService extends Model
{
    public $table = "document_services";
    public $fillable = ['document_id','service_id'];
    public $timestamps = false ;

    /**
     * DocumentParts gets the list of the parts that belong to the document_service.
     *
     * @param  void
     * @return \App\Models\DocumentPart
     */
    public function documentParts()
    {
        return $this->belongsToMany(
            'App\Models\DocumentPart',
            'document_part_services',
            'document_service_id',
            'document_part_id'
        );
    }

    /**
     * GetDocumentServices function gets the list of document services of specified
     * document and return the document service list .
     *
     * @param  array request
     * @return \App\Models\DocumentService
     */
    public static function getDocumentServices($request)
    {
        $documentServices = DocumentService::
        join('services', 'services.id', '=', 'document_services.service_id')
        ->select("document_services.*",'services.service_l','services.service_s');
        if ($request->document_id) {
            $documentServices = $documentServices->where('document_services.document_id', $request->document_id);
        }
        $documentServices = $documentServices->orderBy('services.id', 'ASC')->get();
        return $documentServices;
    }

    /**
     * GetDocumentServices function gets the list of document services of specified
     * document and return the document service list .
     *
     * @param  array request
     * @return \App\Models\DocumentService
     */
    public static function getCurrentService($documentId)
    {
        return DocumentPartService::select(
            'services.id','services.service_s','services.service_l',
            DB::raw("TIMESTAMPDIFF(SECOND,now(),document_part_services.end_datetime)*1000 as time_remaining")
        )
            ->join('document_services', 'document_services.id', '=', 'document_part_services.document_service_id')
            ->join('services', 'services.id', '=', 'document_services.service_id')
            ->where('document_services.document_id', $documentId)
            ->whereNull('document_part_services.output_file')
            ->whereNotNull('document_part_services.end_datetime')
            ->orderBy('document_services.service_id', 'ASC')
            ->orderBy('document_part_services.end_datetime', 'ASC')
            ->first();  

    }
}