feat(helpdesk): add software updates tracking with BC ticket integration
New Updates page in the Helpdesk module that fetches UPDATE/UPDATE-HF tickets from Business Central (PBI_LV_Tickets) and allows assigning a domain and Gitea link via a dialog. Ticket status (from BC) and assignment status (local) are shown as separate columns with filters for both plus type and free-text search. Assigned updates also appear on the domain detail page. Includes session-cached BC fetch with refresh button, admin permissions, migration, and 16 unit tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,7 @@ use MintyPHP\Module\Helpdesk\Service\BcODataGateway;
|
||||
use MintyPHP\Module\Helpdesk\Service\BcSoapGateway;
|
||||
use MintyPHP\Module\Helpdesk\Service\DebitorDetailService;
|
||||
use MintyPHP\Module\Helpdesk\Service\DebitorSearchService;
|
||||
use MintyPHP\Module\Helpdesk\Service\DomainDetailService;
|
||||
use MintyPHP\Module\Helpdesk\Service\EffectiveHelpdeskSettingsService;
|
||||
use MintyPHP\Module\Helpdesk\Service\HelpdeskOAuthTokenService;
|
||||
use MintyPHP\Module\Helpdesk\Service\HelpdeskSettingsGateway;
|
||||
@@ -23,8 +24,10 @@ use MintyPHP\Module\Helpdesk\Handler\SoftwareProductSyncJobHandler;
|
||||
use MintyPHP\Module\Helpdesk\Repository\HandoverRepository;
|
||||
use MintyPHP\Module\Helpdesk\Repository\HandoverRevisionRepository;
|
||||
use MintyPHP\Module\Helpdesk\Repository\SoftwareProductRepository;
|
||||
use MintyPHP\Module\Helpdesk\Repository\UpdateRepository;
|
||||
use MintyPHP\Module\Helpdesk\Service\HandoverRevisionService;
|
||||
use MintyPHP\Module\Helpdesk\Service\HandoverService;
|
||||
use MintyPHP\Module\Helpdesk\Service\UpdateService;
|
||||
use MintyPHP\Service\Access\PermissionService;
|
||||
use MintyPHP\Service\Settings\SettingServicesFactory;
|
||||
use MintyPHP\Service\Settings\SettingsMetadataGateway;
|
||||
@@ -86,6 +89,13 @@ final class HelpdeskContainerRegistrar implements ContainerRegistrar
|
||||
$c->get(EffectiveHelpdeskSettingsService::class)
|
||||
));
|
||||
|
||||
$container->set(DomainDetailService::class, static fn (AppContainer $c): DomainDetailService => new DomainDetailService(
|
||||
$c->get(BcODataGateway::class),
|
||||
$c->get(EffectiveHelpdeskSettingsService::class),
|
||||
$c->get(HandoverRepository::class),
|
||||
$c->get(UpdateRepository::class)
|
||||
));
|
||||
|
||||
$container->set(TicketCommunicationService::class, static fn (AppContainer $c): TicketCommunicationService => new TicketCommunicationService(
|
||||
$c->get(BcSoapGateway::class),
|
||||
$c->get(BcODataGateway::class)
|
||||
@@ -123,5 +133,12 @@ final class HelpdeskContainerRegistrar implements ContainerRegistrar
|
||||
$c->get(SoftwareProductService::class),
|
||||
$c->get(HandoverRevisionService::class)
|
||||
));
|
||||
|
||||
$container->set(UpdateRepository::class, static fn (): UpdateRepository => new UpdateRepository());
|
||||
|
||||
$container->set(UpdateService::class, static fn (AppContainer $c): UpdateService => new UpdateService(
|
||||
$c->get(UpdateRepository::class),
|
||||
$c->get(BcODataGateway::class)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user