Commit 8986d6cb authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Correction #45216 : pouvoir pré-remplir le champs statut avec un statut non...

Correction #45216 : pouvoir pré-remplir le champs statut avec un statut non sélectionnable dans la liste, au niveau des données personnelles.
parent 7fbaa6ea
Loading
Loading
Loading
Loading
+4 −17
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ class DossierStatutFieldset extends AbstractFieldset
    }



    private function addElements()
    {

@@ -57,26 +56,14 @@ class DossierStatutFieldset extends AbstractFieldset
            }
        }
        $statutSelectable = $this->getServiceStatut()->getStatutSelectable($statut);
        foreach ($statutSelectable as $k => $statut) {
            if (in_array($statut->getCode(), $statuts) && $statut->getCode() != $statut->getCode()) {
                unset($statutSelectable[$k]);
            }
        }
        //Si statut intervenant n'est pas selectionnable dans la liste alors liste en lecture seule
        if ($statut->getDossierSelectionnable() || $statut->isAutres()) {
        $this->get('statut')
            ->setValueOptions(['' => '(Sélectionnez un statut)'] + \UnicaenApp\Util::collectionAsOptions($statutSelectable));
        } else {
            $this->get('statut')
                ->setValueOptions(\UnicaenApp\Util::collectionAsOptions([$statut]));
        }


        return $this;
    }



    public function getInputFilterSpecification()
    {
        $spec = [
+7 −12
Original line number Diff line number Diff line
@@ -81,23 +81,18 @@ class StatutService extends AbstractEntityService
    public function getStatutSelectable(Statut $statut, QueryBuilder $qb = null, $alias = null)
    {
        [$qb, $alias] = $this->initQuery($qb, $alias);
        $qb->andWhere("$alias.dossierSelectionnable = 1");
        // $qb->andWhere("$alias.dossierSelectionnable = 1");
        $qb->andWhere("$alias.annee = " . $this->getServiceContext()->getAnnee()->getId());

        $entities = $qb->getQuery()->execute();
        $statuts = $qb->getQuery()->execute();
        $qb->addOrderBy("$alias.code");

        $result = [];
        $entityClass = $this->getEntityClass();
        foreach ($entities as $entity) {
            if ($entity instanceof $entityClass) {
                /**
                 * @var Statut $entity
                 */
                //Je prends le statut si il n'est pas détruit ou si l'intervenant a ce statut
                if (is_null($entity->getHistoDestruction()) ||
                    $statut->getCode() == $entity->getCode()) {
                    $result[] = $entity;
        foreach ($statuts as $value) {
            if ($value instanceof Statut) {
                if (($value->estNonHistorise() && $value->getDossierSelectionnable()) ||
                    $statut->getCode() == $value->getCode()) {
                    $result[] = $value;
                }
            }
        }