Files
MokoSuiteField/source/packages/com_mokosuitefield/admin/src/View/Technicians/HtmlView.php
T
jmiller 885e155c08
Cascade Main -> Dev / Cascade main -> dev (push) Has been cancelled
Sync Workflows to Repos / sync (push) Has been cancelled
Revert "Merge branch 'dev' into main"
This reverts commit 6fea9d8b1b, reversing
changes made to d9f60b4c61.
2026-07-10 16:25:44 -05:00

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);
}
}