Merge branch 'master' into develop

This commit is contained in:
Björn Fromme
2025-01-02 13:03:36 +01:00
33 changed files with 633 additions and 378 deletions
+2
View File
@@ -45,6 +45,7 @@ class IndexController extends AbstractController
$dispositionRepository = $this->entityManager->getRepository(Disposition::class);
$overdueContracts = $dispositionRepository->findOverdueContracts();
$newDispositions = $dispositionRepository->getNew();
$overdueFeedbacks = $dispositionRepository->findDispositionsWithOverdueFeedback(7);
return $this->render('admin/index.html.twig', [
'applications' => $applications,
@@ -59,6 +60,7 @@ class IndexController extends AbstractController
'pendingDocumentsCount' => $pendingDocumentsCount,
'overdueContracts' => $overdueContracts,
'newDispositions' => $newDispositions,
'overdueFeedbacks' => $overdueFeedbacks,
]);
}
}
@@ -5,6 +5,7 @@ namespace App\Controller\Administrative\Teamer;
use App\Entity\Teamer;
use App\Repository\DispositionRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\ExpressionLanguage\Expression;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
@@ -15,7 +16,7 @@ class InfoController extends AbstractController
{}
#[Route('/administrative/teamer/info/{uuid}', name: 'app_administrative_teamer_info')]
#[IsGranted('ROLE_ADMINISTRATIVE')]
#[IsGranted(new Expression('is_granted("ROLE_ADMINISTRATIVE") or is_granted("ROLE_HOUSE_MANAGER")'))]
public function index(Teamer $teamer): Response
{
$recentDispositions = $this->dispositionRepository->findRecentDispositionsByTeamer($teamer);
@@ -2,8 +2,6 @@
namespace App\Controller\HouseManager\Feedback;
use App\BusProNet\DataProvider\HotelDataProvider;
use App\BusProNet\Model\Hotel;
use App\Entity\User;
use App\Repository\DispositionRepository;
use Knp\Component\Pager\PaginatorInterface;
@@ -17,7 +15,6 @@ class IndexController extends AbstractController
{
public function __construct(
private readonly DispositionRepository $dispositionRepository,
private readonly HotelDataProvider $hotelDataProvider,
private readonly PaginatorInterface $paginator
) {
}
@@ -29,18 +26,9 @@ class IndexController extends AbstractController
/** @var User $user */
$user = $this->getUser();
$hotels = $this
->hotelDataProvider
->findByCode($user->getHotelCode())
;
$hotelBusProIds = array_map(function (Hotel $hotel) {
return $hotel->getBusProId();
}, $hotels);
$query = $this
->dispositionRepository
->getDispositionsWithPendingFeedbackQuery($hotelBusProIds)
->getDispositionsWithPendingFeedbackQuery($user->getHotelCode())
;
$pagination = $this->paginator->paginate(
@@ -3,7 +3,6 @@
namespace App\Controller\HouseManager;
use App\BusProNet\DataProvider\HotelDataProvider;
use App\BusProNet\Model\Hotel;
use App\Entity\User;
use App\Repository\DispositionRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
@@ -31,18 +30,14 @@ class IndexController extends AbstractController
->findByCode($user->getHotelCode())
;
$hotelBusProIds = array_map(function (Hotel $hotel) {
return $hotel->getBusProId();
}, $hotels);
$newDispositions = $this
->dispositionRepository
->findNewDispositionsByHotelBusProIds($hotelBusProIds)
->findNewDispositionsByHotelCode($user->getHotelCode())
;
$pendingFeedbacks = $this
->dispositionRepository
->findDispositionsWithPendingFeedbackByHotelBusProIds($hotelBusProIds)
->findDispositionsWithPendingFeedbackByHotelCode($user->getHotelCode())
;
return $this->render('house_manager/index.html.twig', [
@@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\String\Slugger\AsciiSlugger;
class ContractPdfController extends AbstractController
{
@@ -26,12 +27,19 @@ class ContractPdfController extends AbstractController
{
$pdf = $this->renderer->render($disposition);
$teamer = $disposition->getTeamer();
$assignment = $disposition->getAssignment();
$destination = $assignment->getDestination();
$slugger = new AsciiSlugger('de');
$filename = sprintf('Honorarvertrag_%s_%s.pdf', $teamer, $destination);
$disposition = HeaderUtils::makeDisposition(HeaderUtils::DISPOSITION_ATTACHMENT, $filename, md5($filename));
$teamer = $disposition->getTeamer();
$teamerPart = $slugger->slug($teamer);
$assignment = $disposition->getAssignment();
$destination = $slugger->slug($assignment->getDestination());
$filename = sprintf('Honorarvertrag_%s_%s.pdf', $teamerPart, $destination);
$disposition = HeaderUtils::makeDisposition(
HeaderUtils::DISPOSITION_ATTACHMENT,
$filename,
md5($filename)
);
$response = new Response($pdf->Output('S'));
$response->setPrivate();
@@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\String\Slugger\AsciiSlugger;
class InvoicePdfController extends AbstractController
{
@@ -26,12 +27,19 @@ class InvoicePdfController extends AbstractController
{
$pdf = $this->renderer->render($disposition);
$assignment = $disposition->getAssignment();
$destination = $assignment->getDestination();
$teamer = $disposition->getTeamer();
$slugger = new AsciiSlugger('de');
$filename = sprintf('Honorarnote_%s_%s.pdf', $teamer, $disposition->getAssignment()->getDestination());
$contentDisposition = HeaderUtils::makeDisposition(HeaderUtils::DISPOSITION_ATTACHMENT, $filename, md5($filename));
$teamer = $disposition->getTeamer();
$teamerPart = $slugger->slug($teamer);
$assignment = $disposition->getAssignment();
$destination = $slugger->slug($assignment->getDestination());
$filename = sprintf('Honorarnote_%s_%s.pdf', $teamerPart, $disposition->getAssignment()->getDestination());
$contentDisposition = HeaderUtils::makeDisposition(
HeaderUtils::DISPOSITION_ATTACHMENT,
$filename,
md5($filename)
);
$response = new Response($pdf->Output('S'));
$response->setPrivate();
@@ -55,7 +55,6 @@ class IndexController extends AbstractController
$form = $this->createForm(TeamerProfileType::class, $teamer, [
'upload_session' => $uploadSession,
'admin_mode' => $this->isGranted('IS_IMPERSONATOR'),
]);
$form->handleRequest($request);