Commit de194f9b authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

DecorateWithEtatsCodes

parent a51d9a92
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,5 +16,6 @@ interface HasEtatsInterface {
    public function removeEtat(EtatInstance $etat): void;
    public function clearEtats(): void;
    static public function decorateWithEtats(QueryBuilder $qb, string $entityName,  array $etats = []) : QueryBuilder;
    static public function decorateWithEtatsCodes(QueryBuilder $qb, string $entityName,  array $etats = []) : QueryBuilder;

}
 No newline at end of file
+15 −0
Original line number Diff line number Diff line
@@ -82,4 +82,19 @@ trait HasEtatsTrait {
        }
        return $qb;
    }

    static public function decorateWithEtatsCodes(QueryBuilder $qb, string $entityName,  array $etats = []) : QueryBuilder
    {
        $qb = $qb
            ->leftJoin($entityName . '.etats', 'etat')->addSelect('etat')
            ->leftJoin('etat.type', 'type')->addSelect('type')
            ->andWhere('etat.histoDestruction IS NULL')
        ;

        if (!empty($etats)) {
            $qb = $qb->andWhere('type.code in (:etats)')
                ->setParameter('etats', $etats);
        }
        return $qb;
    }
}
 No newline at end of file