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

Nettoyage FicheMetierService

parent d115a7ef
Loading
Loading
Loading
Loading
+4 −18
Changes for module/Application/src/Application/Controller/FicheMetierController.php: 4 added lines, 18 removed lines.
Original line number Diff line number Diff line
@@ -3,7 +3,6 @@
namespace Application\Controller;

use Application\Entity\Db\Activite;
use Application\Entity\Db\ActiviteDescription;
use Application\Entity\Db\FicheMetier;
use Application\Entity\Db\ParcoursDeFormation;
use Application\Form\Activite\ActiviteForm;
@@ -545,27 +544,15 @@ class FicheMetierController extends AbstractActionController

            $csvInfos = $this->genererInfosFromCSV($fichier_path);

            if ($mode === 'preview') {
                return new ViewModel([
                    'fichier_path' => $fichier_path,
                    'form' => $form,
                    'mode' => $mode,
                    'code' => $csvInfos['code'],
                    'metier' => $csvInfos['metier'],
                    'mission' => $csvInfos['mission'],
                    'activites' => $csvInfos['activites'],
                    'applications' => $csvInfos['applications'],
                    'competences' => $csvInfos['competences'],
                ]);
            }
            if ($mode !== null) {
                if ($mode === 'import') {
                if ($csvInfos['metier'] !== null AND empty( $csvInfos['competences']['Manquantes']))
                {
                    if ($csvInfos['metier'] !== null and empty($csvInfos['competences']['Manquantes'])) {
                        $fiche = $this->getFicheMetierService()->importFromCsvArray($csvInfos);

                        /** @see \Application\Controller\FicheMetierController::afficherAction() */
                        return $this->redirect()->toRoute('fiche-metier-type/afficher', ['id' => $fiche->getId()], [], true);
                } else {
                    }
                }
                return new ViewModel([
                    'fichier_path' => $fichier_path,
                    'form' => $form,
@@ -579,7 +566,6 @@ class FicheMetierController extends AbstractActionController
                ]);
            }
        }
        }

        $vm = new ViewModel([
            'title' => "Importation d'une fiche métier",
+0 −37
Changes for module/Application/src/Application/Form/EntityFormManagmentTrait.php: 0 added lines, 37 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Form;

use Laminas\Form\Form;
use Laminas\Http\Request;

trait EntityFormManagmentTrait {

    /**
     * @param Request $request
     * @param Form $form
     * @param $service
     */
    public function createFromForm(Request $request, Form $form, $service)
    {
        $data = $request->getPost();
        $form->setData($data);
        if ($form->isValid()) {
            $service->create($form->getObject());
        }
    }

    /**
     * @param Request $request
     * @param Form $form
     * @param $service
     */
    public function updateFromForm(Request $request, Form $form, $service)
    {
        $data = $request->getPost();
        $form->setData($data);
        if ($form->isValid()) {
            $service->update($form->getObject());
        }
    }
}
 No newline at end of file
+12 −73
Changes for module/Application/src/Application/Service/FicheMetier/FicheMetierService.php: 12 added lines, 73 removed lines.
Original line number Diff line number Diff line
@@ -7,12 +7,10 @@ use Application\Entity\Db\Activite;
use Application\Entity\Db\ActiviteDescription;
use Application\Entity\Db\FicheMetier;
use Application\Entity\Db\FicheMetierActivite;
use Application\Form\EntityFormManagmentTrait;
use Application\Provider\Etat\FicheMetierEtats;
use Application\Service\Activite\ActiviteServiceAwareTrait;
use Application\Service\ActiviteDescription\ActiviteDescriptionServiceAwareTrait;
use Carriere\Service\Niveau\NiveauService;
use DateTime;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\ORMException;
use Doctrine\ORM\QueryBuilder;
@@ -25,7 +23,6 @@ use Element\Service\Competence\CompetenceServiceAwareTrait;
use Element\Service\CompetenceElement\CompetenceElementServiceAwareTrait;
use Element\Service\HasApplicationCollection\HasApplicationCollectionServiceAwareTrait;
use Element\Service\HasCompetenceCollection\HasCompetenceCollectionServiceAwareTrait;
use Formation\Service\Formation\FormationServiceAwareTrait;
use Laminas\Mvc\Controller\AbstractController;
use Metier\Entity\Db\Domaine;
use Metier\Service\Domaine\DomaineServiceAwareTrait;
@@ -41,7 +38,6 @@ class FicheMetierService {
    use CompetenceElementServiceAwareTrait;
    use DomaineServiceAwareTrait;
    use EtatServiceAwareTrait;
    use FormationServiceAwareTrait;
    use EntityManagerAwareTrait;

    use ActiviteServiceAwareTrait;
@@ -50,8 +46,6 @@ class FicheMetierService {
    use HasCompetenceCollectionServiceAwareTrait;
    use MetierServiceAwareTrait;

    use EntityFormManagmentTrait;

    /** GESTION DES ENTITES *******************************************************************************************/

    /**
@@ -138,31 +132,16 @@ class FicheMetierService {
        $qb = $this->getEntityManager()->getRepository(FicheMetier::class)->createQueryBuilder('ficheMetier')
            ->addSelect('metier')->join('ficheMetier.metier', 'metier')
            ->addSelect('domaine')->join('metier.domaines', 'domaine')
//            ->addSelect('famille')->join('domaine.famille', 'famille')
//            ->addSelect('etat')->join('ficheMetier.etat', 'etat')
//            ->addSelect('etype')->join('etat.type', 'etype')
            ->addSelect('famille')->join('domaine.famille', 'famille')
            ->addSelect('etat')->join('ficheMetier.etat', 'etat')
            ->addSelect('etype')->join('etat.type', 'etype')
            ->addSelect('reference')->leftJoin('metier.references', 'reference')
            ->addSelect('referentiel')->leftJoin('reference.referentiel', 'referentiel')
            ;
        $qb = NiveauService::decorateWithNiveau($qb,'metier','niveaux');
        $qb = NiveauService::decorateWithNiveau($qb,'metier');
        return $qb;
    }

    /**
     * @return FicheMetier[]
     */
    public function getFichesMetiersForIndex() : array
    {
        $qb = $this->getEntityManager()->getRepository(FicheMetier::class)->createQueryBuilder('ficheMetier')
            ->addSelect('metier')->join('ficheMetier.metier', 'metier')
            ->addSelect('domaine')->join('metier.domaines', 'domaine')
            ->addSelect('etat')->join('ficheMetier.etat', 'etat')
            ->addSelect('etype')->join('etat.type', 'etype')
        ;
        $result = $qb->getQuery()->getResult();
        return $result;
    }

    /**
     * @param string $order an attribute use to sort
     * @return FicheMetier[]
@@ -305,16 +284,6 @@ class FicheMetierService {
        return $fiche;
    }

    /**
     * @param string $order
     * @return FicheMetier
     */
    public function getLastFicheMetier(string $order = 'id') : FicheMetier
    {
        $fiches = $this->getFichesMetiers($order);
        return end($fiches);
    }

    /**
     * @param Domaine $domaine
     * @return FicheMetier[]
@@ -355,36 +324,19 @@ class FicheMetierService {
        return $options;
    }

    /**
     * @param int $niveau
     * @return array
     */
    public function getFichesMetiersAsOptions(int $niveau =0) : array
    {
        $fiches = $this->getFichesMetiersWithNiveau($niveau);
        $array = [];
        foreach ($fiches as $fiche) {
            $array[$fiche->getId()] = $fiche->getMetier()->getLibelle();
        }
        return $array;
    }
    /** FACADE ********************************************************************************************************/

    /**
     * @param FicheMetier $fiche
     * @param bool $asElement
     * @param DateTime|null $date
     * @return array
     */
    public function getApplicationsDictionnaires(FicheMetier $fiche, bool $asElement = false, ?DateTime $date = null) : array
    public function getApplicationsDictionnaires(FicheMetier $fiche, bool $asElement = false) : array
    {
        $dictionnaire = [];

        foreach ($fiche->getApplicationListe() as $applicationElement) {
            if ($asElement) {
                $application = $applicationElement;
            } else {
                $application = $applicationElement->getApplication();
            }
            $application = ($asElement)?$applicationElement:$applicationElement->getApplication();
            $dictionnaire[$application->getId()]["entite"] = $application;
            $dictionnaire[$application->getId()]["raison"][] = $fiche;
            $dictionnaire[$application->getId()]["conserve"] = true;
@@ -392,11 +344,7 @@ class FicheMetierService {

        foreach ($fiche->getActivites() as $activite) {
            foreach ($activite->getActivite()->getApplicationListe() as $applicationElement) {
                if ($asElement) {
                    $application = $applicationElement;
                } else {
                    $application = $applicationElement->getApplication();
                }
                $application = ($asElement)?$applicationElement:$applicationElement->getApplication();
                $dictionnaire[$application->getId()]["entite"] = $application;
                $dictionnaire[$application->getId()]["raison"][] = $activite;
                $dictionnaire[$application->getId()]["conserve"] = true;
@@ -409,19 +357,14 @@ class FicheMetierService {
    /**
     * @param FicheMetier $fiche
     * @param bool $asElement
     * @param DateTime|null $date
     * @return array
     */
    public function getCompetencesDictionnaires(FicheMetier $fiche, bool $asElement = false, ?DateTime $date = null) : array
    public function getCompetencesDictionnaires(FicheMetier $fiche, bool $asElement = false) : array
    {
        $dictionnaire = [];

        foreach ($fiche->getCompetenceListe() as $competenceElement) {
            if ($asElement) {
                $competence = $competenceElement;
            } else {
                $competence = $competenceElement->getCompetence();
            }
            $competence = ($asElement)?$competenceElement:$competenceElement->getCompetence();
            $dictionnaire[$competence->getId()]["entite"] = $competence;
            $dictionnaire[$competence->getId()]["raison"][] = $fiche;
            $dictionnaire[$competence->getId()]["conserve"] = true;
@@ -429,11 +372,7 @@ class FicheMetierService {

        foreach ($fiche->getActivites() as $activite) {
            foreach ($activite->getActivite()->getCompetenceListe() as $competenceElement) {
                if ($asElement) {
                    $competence = $competenceElement;
                } else {
                    $competence = $competenceElement->getCompetence();
                }
                $competence = ($asElement)?$competenceElement:$competenceElement->getCompetence();
                $dictionnaire[$competence->getId()]["entite"] = $competence;
                $dictionnaire[$competence->getId()]["raison"][] = $activite;
                $dictionnaire[$competence->getId()]["conserve"] = true;
@@ -566,7 +505,7 @@ class FicheMetierService {
            'mission' => $mission_libelle,
            'activites' => $activites_libelle,
            'competences' => $competences,
            'competencesListe' => $competencesListe, //todo keep here ?
            'competencesListe' => $competencesListe,
            'applications' => $applications,

        ];
+3 −14
Changes for module/Application/src/Application/Service/FicheMetier/FicheMetierServiceAwareTrait.php: 3 added lines, 14 removed lines.
Original line number Diff line number Diff line
@@ -4,27 +4,16 @@ namespace Application\Service\FicheMetier;

trait FicheMetierServiceAwareTrait
{
    /**
     * @var FicheMetierService
     */
    private $ficheMetierService;
    private FicheMetierService $ficheMetierService;

    /**
     * @return FicheMetierService
     */
    public function getFicheMetierService()
    public function getFicheMetierService() : FicheMetierService
    {
        return $this->ficheMetierService;
    }

    /**
     * @param  FicheMetierService $ficheMetierService
     * @return FicheMetierService
     */
    public function setFicheMetierService($ficheMetierService)
    public function setFicheMetierService($ficheMetierService) : void
    {
        $this->ficheMetierService = $ficheMetierService;
        return $ficheMetierService;
    }
}
+0 −5
Changes for module/Application/src/Application/Service/FicheMetier/FicheMetierServiceFactory.php: 0 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@ namespace Application\Service\FicheMetier;

use Application\Service\Activite\ActiviteService;
use Application\Service\ActiviteDescription\ActiviteDescriptionService;
use Application\Service\Configuration\ConfigurationService;
use Doctrine\ORM\EntityManager;
use Element\Service\Application\ApplicationService;
use Element\Service\ApplicationElement\ApplicationElementService;
@@ -12,7 +11,6 @@ use Element\Service\Competence\CompetenceService;
use Element\Service\CompetenceElement\CompetenceElementService;
use Element\Service\HasApplicationCollection\HasApplicationCollectionService;
use Element\Service\HasCompetenceCollection\HasCompetenceCollectionService;
use Formation\Service\Formation\FormationService;
use Interop\Container\ContainerInterface;
use Metier\Service\Domaine\DomaineService;
use Metier\Service\Metier\MetierService;
@@ -38,7 +36,6 @@ class FicheMetierServiceFactory {
         * @var CompetenceElementService $competenceElementService
         * @var DomaineService $domaineService
         * @var EtatService $etatService
         * @var FormationService $formationService
         *
         * @var ActiviteService $activiteService
         * @var ActiviteDescriptionService $activiteDescriptionService
@@ -53,7 +50,6 @@ class FicheMetierServiceFactory {
        $competenceElementService = $container->get(CompetenceElementService::class);
        $domaineService = $container->get(DomaineService::class);
        $etatService = $container->get(EtatService::class);
        $formationService = $container->get(FormationService::class);

        $activiteService = $container->get(ActiviteService::class);
        $activiteDescriptionService = $container->get(ActiviteDescriptionService::class);
@@ -71,7 +67,6 @@ class FicheMetierServiceFactory {
        $service->setCompetenceElementService($competenceElementService);
        $service->setDomaineService($domaineService);
        $service->setEtatService($etatService);
        $service->setFormationService($formationService);

        $service->setActiviteService($activiteService);
        $service->setActiviteDescriptionService($activiteDescriptionService);