33 lines
1.2 KiB
PHP
33 lines
1.2 KiB
PHP
<?php
|
|
namespace Moko\Component\MokoSuiteField\Administrator\View\Technicians;
|
|
|
|
defined('_JEXEC') or die;
|
|
|
|
use Joomla\CMS\Factory;
|
|
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
|
|
use Joomla\CMS\Toolbar\ToolbarHelper;
|
|
use Joomla\Database\DatabaseInterface;
|
|
|
|
class HtmlView extends BaseHtmlView
|
|
{
|
|
public array $technicians = [];
|
|
|
|
public function display($tpl = null): void
|
|
{
|
|
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
|
|
|
$db->setQuery($db->getQuery(true)
|
|
->select('t.*, cd.name AS tech_name, cd.telephone, cd.email_to, v.vehicle_number')
|
|
->select('(SELECT COUNT(*) FROM #__mokosuitefield_work_orders wo WHERE wo.technician_id = t.id AND wo.status = ' . $db->quote('completed') . ' AND MONTH(wo.actual_departure) = MONTH(NOW())) AS jobs_this_month')
|
|
->from($db->quoteName('#__mokosuitefield_technicians', 't'))
|
|
->join('LEFT', $db->quoteName('#__contact_details', 'cd') . ' ON cd.id = t.contact_id')
|
|
->join('LEFT', $db->quoteName('#__mokosuitefield_vehicles', 'v') . ' ON v.id = t.vehicle_id')
|
|
->order('cd.name ASC'));
|
|
$this->technicians = $db->loadObjectList() ?: [];
|
|
|
|
ToolbarHelper::title('Field Service — Technicians', 'icon-users');
|
|
ToolbarHelper::addNew('technicians.add');
|
|
parent::display($tpl);
|
|
}
|
|
}
|