File: /home/imensosw/public_html/ezwork/app/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)
{
$documentPC = \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();
$documentPSC = \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();
$docCount = \App\Models\Document::where('documents.id', $value)
->where(function ($query) {
$query->whereNull('documents.client_charge_code_id');
$query->orWhereNull('documents.client_code_id');
$query->orWhereNull('documents.context_id');
$query->orWhereNull('documents.committed_delivery');
})->count();
$docSrc = $documentServiceCount;
$docSgc = $documentSegmentCount;
if ($documentPC == 0 && $docSgc == 0 && $docSrc > 0 && $docCount == 0 && $documentPSC == 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