CasperSecurity
<?php
// App/Http/Livewire/Tendermanagement/TenderViewLivewire.php
namespace App\Http\Livewire\Tendermanagement;
use Livewire\Component;
use App\Models\CreateTender;
use Illuminate\Support\Facades\DB;
class TenderViewLivewire extends Component
{
public $tender;
public $documents; // To store related documents
public function mount($id)
{
// Fetch tender details by ID
$this->tender = CreateTender::findOrFail($id);
// Fetch related documents by joining the tables
$this->documents = DB::table('create_tenders')
->join('assign_tender_documents', 'create_tenders.id', '=', 'assign_tender_documents.tender_id')
->join('tender_documents', 'assign_tender_documents.tender_document_id', '=', 'tender_documents.id')
->select('tender_documents.document_name')
->where('create_tenders.id', $id) // Filter by the tender ID
->get();
// Fetch related activities with start date, end date, and status
$this->activities = DB::table('create_tenders')
->join('assign_tender_activities', 'create_tenders.id', '=', 'assign_tender_activities.tender_id')
->join('tender_activities', 'assign_tender_activities.tender_activity_id', '=', 'tender_activities.id')
->leftJoin('users', 'assign_tender_activities.activity_assigned_to', '=', 'users.id') // Join users table
->select(
'tender_activities.activity_name',
'assign_tender_activities.activity_start_date',
'assign_tender_activities.activity_end_date',
'assign_tender_activities.activity_status',
'users.name as assigned_to' // Get user's name
)
->where('create_tenders.id', $id) // Filter by the tender ID
->get();
}
public function render()
{
return view('livewire.tendermanagement.tender-view-livewire', [
'tender' => $this->tender,
'documents' => $this->documents, // Pass documents to the view
]);
}
}