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: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/.trash/app.1/Rules/AssignmentPublishVerification.php
<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class AssignmentPublishVerification implements Rule
{


    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {
    }
    //end __construct()


    /**
     * Determine if the validation rule passes.
     *
     * @param  string $attribute
     * @param  mixed  $value
     * @return boolean
     */
    public function passes($attribute, $value)
    {
    
        $documentPartCount = \App\Models\DocumentPart::leftJoin(
            'document_segments',
            'document_segments.document_part_id',
            '=',
            'document_parts.id'
        )->where('document_parts.document_id', $value)->whereNull('document_segments.document_part_id')->count();
        $documentSegmentCount   = \App\Models\DocumentSegment::where(
            'document_segments.document_id',
            $value
        )->whereNull('document_part_id')->count();

        $documentServiceCount = \App\Models\DocumentService::where('document_services.document_id', $value)->count();

        $documentPartServiceCount = \App\Models\DocumentPartService::
        join('document_services','document_part_services.document_service_id','=','document_services.id')
        ->where('document_services.document_id', $value)
        ->whereNull('document_part_services.minutes')
        ->count();

        $documentCount = \App\Models\Document::where('documents.id', $value)
            ->where(function($query)
            {
                $query->where('documents.client_charge_code','=', '');
                $query->orWhereNull('documents.client_code_id');
                $query->orWhereNull('documents.context_id');
                $query->orWhereNull('documents.committed_delivery');
            })->count();

        $docSrc = $documentServiceCount;
        $docSgc = $documentSegmentCount;
        if ($documentPartCount == 0 && $docSgc == 0 &&  $docSrc > 0 &&  $documentCount == 0 && 
            $documentPartServiceCount == 0) {
            return true;
        }
        return false;
    }
    //end passes()


    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return 'Error in publish!';
    }
    //end message()
}
//end class