improved ipam
This commit is contained in:
@@ -8,7 +8,7 @@ class RMLWorkorderAdminController extends TTCrud
|
||||
protected array $permissionCheck = ['RMLAdmin'];
|
||||
|
||||
protected array $columns = [
|
||||
// ['key' => 'id', 'text' => 'Auftrag-Nr.', 'table' => ['sortable' => true]],
|
||||
['key' => 'id', 'text' => 'Auftrag-Nr.', 'table' => ['sortable' => false]],
|
||||
['key' => 'preordercampaign_id', 'text' => 'Cluster', 'modal' => false, 'table' => ['filter' => 'select']],
|
||||
['key' => 'preorderInfo', 'text' => 'Kunde / Projekt', 'modal' => false, 'table' => ['sortable' => false]],
|
||||
['key' => 'rimo_fcp_name', 'text' => 'FCP', 'modal' => false, 'table' => ['sortable' => false]],
|
||||
@@ -23,7 +23,7 @@ class RMLWorkorderAdminController extends TTCrud
|
||||
['value' => 'documented', 'text' => 'Dokumentiert', 'icon' => 'fas fa-file-alt text-success'],
|
||||
['value' => 'completed', 'text' => 'Abgeschlossen', 'icon' => 'fas fa-check-double text-secondary'],
|
||||
]]],
|
||||
['key' => 'deadlineDate', 'text' => 'Deadline', 'modal' => false, 'table' => ['filter' => 'date']],
|
||||
['key' => 'deadlineDate', 'text' => 'Deadline', 'modal' => false, 'table' => ['filter' => 'date', 'sortable' => false]],
|
||||
];
|
||||
|
||||
private function getStatusText(string $statusKey): string {
|
||||
@@ -105,18 +105,32 @@ class RMLWorkorderAdminController extends TTCrud
|
||||
}
|
||||
|
||||
private function createWorkordersFromPreorders() {
|
||||
$newPreorders = PreorderModel::searchActive(['status_code' => 220, 'preorder_status_flags_all' => [3,5]]);
|
||||
if (empty($newPreorders)) return;
|
||||
$configs = RMLWorkorderTenantConfigModel::getAll();
|
||||
foreach ($configs as $config) {
|
||||
$filters = json_decode($config->workorderCreationFilters, true);
|
||||
if (empty($filters)) continue;
|
||||
|
||||
foreach ($newPreorders as $preorder) {
|
||||
if (!RMLWorkorderModel::getFirst(['preorderId' => $preorder->id])) {
|
||||
RMLWorkorderModel::create([
|
||||
'preorderId' => $preorder->id,
|
||||
'clusterId' => $preorder->preordercampaign_id,
|
||||
'status' => 'new',
|
||||
'create' => time(),
|
||||
'createBy' => $this->user->id
|
||||
]);
|
||||
$networks = NetworkModel::getAll(['owner_id' => $config->addressId]);
|
||||
if(empty($networks)) continue;
|
||||
|
||||
$tenantCampaigns = array_map(fn($n) => $n->id, PreordercampaignModel::getAll(['network_id' => array_map(fn($n) => $n->id, $networks)]));
|
||||
if(empty($tenantCampaigns)) continue;
|
||||
|
||||
$filters['preordercampaign_id'] = $tenantCampaigns;
|
||||
|
||||
$newPreorders = PreorderModel::searchActive($filters);
|
||||
if (empty($newPreorders)) continue;
|
||||
|
||||
foreach ($newPreorders as $preorder) {
|
||||
if (!RMLWorkorderModel::getFirst(['preorderId' => $preorder->id])) {
|
||||
RMLWorkorderModel::create([
|
||||
'preorderId' => $preorder->id,
|
||||
'clusterId' => $preorder->preordercampaign_id,
|
||||
'status' => 'new',
|
||||
'create' => time(),
|
||||
'createBy' => 0 // System User
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -262,9 +276,22 @@ class RMLWorkorderAdminController extends TTCrud
|
||||
}
|
||||
|
||||
protected function getCompaniesAction() {
|
||||
$tenantId = $this->request->tenantId ?? null;
|
||||
$companies = RMLWorkorderCompanyModel::getAll([], null, 0, ['key' => 'name', 'order' => 'ASC']);
|
||||
|
||||
if ($tenantId) {
|
||||
$companies = array_filter($companies, function($company) use ($tenantId) {
|
||||
// RML Infrastruktur GmbH is always available as a fallback/default
|
||||
if ($company->addressId == 4807 && empty($company->visibleForAddressId)) {
|
||||
return true;
|
||||
}
|
||||
$visibleFor = !empty($company->visibleForAddressId) ? json_decode($company->visibleForAddressId, true) : [];
|
||||
return in_array($tenantId, $visibleFor);
|
||||
});
|
||||
}
|
||||
|
||||
$items = array_map(fn($c) => ['value' => $c->id, 'text' => $c->name], $companies);
|
||||
self::returnJson($items);
|
||||
self::returnJson(array_values($items)); // re-index
|
||||
}
|
||||
|
||||
protected function addJournalAction() {
|
||||
@@ -329,7 +356,7 @@ class RMLWorkorderAdminController extends TTCrud
|
||||
|
||||
$preorder = new Preorder($workorder->preorderId);
|
||||
if ($preorder) {
|
||||
$preorder->status_id = 15; // Assuming 11 is the status for "fiber in building"
|
||||
$preorder->status_id = 15; // Assuming 15 is the status for "completed"
|
||||
$preorder->edit_by = $this->user->id;
|
||||
$preorder->save();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user