fix: find destinations by hotel code in favor of ids
This commit is contained in:
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Controller\HouseManager\Feedback;
|
namespace App\Controller\HouseManager\Feedback;
|
||||||
|
|
||||||
use App\BusProNet\DataProvider\HotelDataProvider;
|
|
||||||
use App\BusProNet\Model\Hotel;
|
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use App\Repository\DispositionRepository;
|
use App\Repository\DispositionRepository;
|
||||||
use Knp\Component\Pager\PaginatorInterface;
|
use Knp\Component\Pager\PaginatorInterface;
|
||||||
@@ -17,7 +15,6 @@ class IndexController extends AbstractController
|
|||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private readonly DispositionRepository $dispositionRepository,
|
private readonly DispositionRepository $dispositionRepository,
|
||||||
private readonly HotelDataProvider $hotelDataProvider,
|
|
||||||
private readonly PaginatorInterface $paginator
|
private readonly PaginatorInterface $paginator
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
@@ -29,18 +26,9 @@ class IndexController extends AbstractController
|
|||||||
/** @var User $user */
|
/** @var User $user */
|
||||||
$user = $this->getUser();
|
$user = $this->getUser();
|
||||||
|
|
||||||
$hotels = $this
|
|
||||||
->hotelDataProvider
|
|
||||||
->findByCode($user->getHotelCode())
|
|
||||||
;
|
|
||||||
|
|
||||||
$hotelBusProIds = array_map(function (Hotel $hotel) {
|
|
||||||
return $hotel->getBusProId();
|
|
||||||
}, $hotels);
|
|
||||||
|
|
||||||
$query = $this
|
$query = $this
|
||||||
->dispositionRepository
|
->dispositionRepository
|
||||||
->getDispositionsWithPendingFeedbackQuery($hotelBusProIds)
|
->getDispositionsWithPendingFeedbackQuery($user->getHotelCode())
|
||||||
;
|
;
|
||||||
|
|
||||||
$pagination = $this->paginator->paginate(
|
$pagination = $this->paginator->paginate(
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
namespace App\Controller\HouseManager;
|
namespace App\Controller\HouseManager;
|
||||||
|
|
||||||
use App\BusProNet\DataProvider\HotelDataProvider;
|
use App\BusProNet\DataProvider\HotelDataProvider;
|
||||||
use App\BusProNet\Model\Hotel;
|
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use App\Repository\DispositionRepository;
|
use App\Repository\DispositionRepository;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
@@ -31,18 +30,14 @@ class IndexController extends AbstractController
|
|||||||
->findByCode($user->getHotelCode())
|
->findByCode($user->getHotelCode())
|
||||||
;
|
;
|
||||||
|
|
||||||
$hotelBusProIds = array_map(function (Hotel $hotel) {
|
|
||||||
return $hotel->getBusProId();
|
|
||||||
}, $hotels);
|
|
||||||
|
|
||||||
$newDispositions = $this
|
$newDispositions = $this
|
||||||
->dispositionRepository
|
->dispositionRepository
|
||||||
->findNewDispositionsByHotelBusProIds($hotelBusProIds)
|
->findNewDispositionsByHotelCode($user->getHotelCode())
|
||||||
;
|
;
|
||||||
|
|
||||||
$pendingFeedbacks = $this
|
$pendingFeedbacks = $this
|
||||||
->dispositionRepository
|
->dispositionRepository
|
||||||
->findDispositionsWithPendingFeedbackByHotelBusProIds($hotelBusProIds)
|
->findDispositionsWithPendingFeedbackByHotelCode($user->getHotelCode())
|
||||||
;
|
;
|
||||||
|
|
||||||
return $this->render('house_manager/index.html.twig', [
|
return $this->render('house_manager/index.html.twig', [
|
||||||
|
|||||||
@@ -5,10 +5,8 @@ namespace App\Repository;
|
|||||||
use App\Entity\Assignment;
|
use App\Entity\Assignment;
|
||||||
use App\Entity\Disposition;
|
use App\Entity\Disposition;
|
||||||
use App\Entity\Teamer;
|
use App\Entity\Teamer;
|
||||||
use App\Entity\Upload;
|
|
||||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||||
use Doctrine\ORM\Query;
|
use Doctrine\ORM\Query;
|
||||||
use Doctrine\ORM\Query\Expr\Join;
|
|
||||||
use Doctrine\Persistence\ManagerRegistry;
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -150,7 +148,7 @@ class DispositionRepository extends ServiceEntityRepository
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findNewDispositionsByHotelBusProIds(array $hotelBusProIds): array
|
public function findNewDispositionsByHotelCode(string $hotelCode): array
|
||||||
{
|
{
|
||||||
$qb = $this->createQueryBuilder('disposition');
|
$qb = $this->createQueryBuilder('disposition');
|
||||||
|
|
||||||
@@ -159,12 +157,12 @@ class DispositionRepository extends ServiceEntityRepository
|
|||||||
->innerJoin('disposition.assignment', 'assignment')
|
->innerJoin('disposition.assignment', 'assignment')
|
||||||
->innerJoin('assignment.destination', 'destination')
|
->innerJoin('assignment.destination', 'destination')
|
||||||
->where($qb->expr()->andX(
|
->where($qb->expr()->andX(
|
||||||
$qb->expr()->in('destination.hotelBusProId', ':hotelBusProIds'),
|
$qb->expr()->like('destination.hotelCode', ':hotelCode'),
|
||||||
$qb->expr()->gte('destination.dateTo', ':dateTo'),
|
$qb->expr()->gte('destination.dateTo', ':dateTo'),
|
||||||
$qb->expr()->eq('disposition.status', ':status')
|
$qb->expr()->eq('disposition.status', ':status')
|
||||||
))
|
))
|
||||||
->orderBy('destination.dateFrom', 'ASC')
|
->orderBy('destination.dateFrom', 'ASC')
|
||||||
->setParameter('hotelBusProIds', $hotelBusProIds)
|
->setParameter('hotelCode', '%'.$hotelCode.'%')
|
||||||
->setParameter('dateTo', new \DateTimeImmutable())
|
->setParameter('dateTo', new \DateTimeImmutable())
|
||||||
->setParameter('status', Disposition::STATUS_CONFIRMED)
|
->setParameter('status', Disposition::STATUS_CONFIRMED)
|
||||||
->getQuery()
|
->getQuery()
|
||||||
@@ -172,7 +170,7 @@ class DispositionRepository extends ServiceEntityRepository
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDispositionsWithPendingFeedbackQuery(array $hotelBusProIds = null): Query
|
public function getDispositionsWithPendingFeedbackQuery(?string $hotelCode = null): Query
|
||||||
{
|
{
|
||||||
$qb = $this->createQueryBuilder('disposition');
|
$qb = $this->createQueryBuilder('disposition');
|
||||||
|
|
||||||
@@ -196,10 +194,10 @@ class DispositionRepository extends ServiceEntityRepository
|
|||||||
->setParameter('dateTo', new \DateTimeImmutable())
|
->setParameter('dateTo', new \DateTimeImmutable())
|
||||||
;
|
;
|
||||||
|
|
||||||
if (null !== $hotelBusProIds) {
|
if (null !== $hotelCode) {
|
||||||
$qb
|
$qb
|
||||||
->andWhere($qb->expr()->in('destination.hotelBusProId', ':hotelBusProIds'))
|
->andWhere($qb->expr()->like('destination.hotelCode', ':hotelCode'))
|
||||||
->setParameter('hotelBusProIds', $hotelBusProIds)
|
->setParameter('hotelCode', '%'.$hotelCode.'%')
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,10 +212,10 @@ class DispositionRepository extends ServiceEntityRepository
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findDispositionsWithPendingFeedbackByHotelBusProIds(array $hotelBusProIds): array
|
public function findDispositionsWithPendingFeedbackByHotelCode(string $hotelCode): array
|
||||||
{
|
{
|
||||||
return $this
|
return $this
|
||||||
->getDispositionsWithPendingFeedbackQuery($hotelBusProIds)
|
->getDispositionsWithPendingFeedbackQuery($hotelCode)
|
||||||
->getResult()
|
->getResult()
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user