fixed workorder bug

This commit is contained in:
2025-12-17 13:44:23 +01:00
parent f1073faabe
commit 31cb3c69cf

View File

@@ -161,7 +161,8 @@ class WorkorderBaseController extends TTCrud
$networks = NetworkModel::search(['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)]));
$networkIds = array_map(fn($n) => $n->id, $networks);
$tenantCampaigns = array_map(fn($c) => $c->id, PreordercampaignModel::search(['network_id' => $networkIds]));
if (empty($tenantCampaigns)) continue;
$filters['preordercampaign_id'] = $tenantCampaigns;
@@ -228,18 +229,21 @@ class WorkorderBaseController extends TTCrud
continue;
}
$tenantCampaignIds = array_column(PreordercampaignModel::getAll(['network_id' => array_column($networks, 'id')]), 'id');
$networkIds = array_map(fn($n) => $n->id, $networks);
$tenantCampaignIds = array_map(fn($c) => $c->id, PreordercampaignModel::search(['network_id' => $networkIds]));
if (empty($tenantCampaignIds)) {
continue;
}
$activeFilters['preordercampaign_id'] = $tenantCampaignIds;
$activePreorderIds = array_column(PreorderModel::searchActive($activeFilters), 'id');
$activePreorderIds = array_map(fn($p) => $p->id, PreorderModel::searchActive($activeFilters));
$activePreorderIdsSet = array_flip($activePreorderIds);
$statusesToCheck = ['new', 'assigned', 'scheduled', 'in_progress', 'correction_requested', 'intervention_required', 'civil_engineering_required', 'civil_engineering_completed', 'problem_solved'];
// Get ALL preorders for tenant (including deleted/cancelled) to ensure their workorders get archived
// Note: Not passing 'deleted' filter means all preorders are returned regardless of deleted status
$allTenantPreorders = PreorderModel::search(['preordercampaign_id' => $tenantCampaignIds]);
if(empty($allTenantPreorders)) continue;