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

poursuite demande externe

parent 19b276e7
Loading
Loading
Loading
Loading
+6 −3
Changes for module/Formation/src/Formation/Assertion/DemandeExterneAssertion.php: 6 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -53,11 +53,11 @@ class DemandeExterneAssertion extends AbstractAssertion {
     * @param string $privilege
     * @return bool
     */
    private function computeAssertion(?DemandeExterne $demande, string $privilege) : bool
    private function computeAssertion(?DemandeExterne $demande, string $privilege, ?Agent $givenAgent = null) : bool
    {
        $user = $this->getUserService()->getConnectedUser();
        $role = $this->getUserService()->getConnectedRole();
        $agent = $demande->getAgent();
        $agent = ($demande)?$demande->getAgent():$givenAgent;

        switch($role->getRoleId()) {
            case RoleConstant::ADMIN_TECH :
@@ -101,12 +101,15 @@ class DemandeExterneAssertion extends AbstractAssertion {
        /** @var DemandeExterne|null $entity */
        $demandeId = (($this->getMvcEvent()->getRouteMatch()->getParam('demande-externe')));
        $entity = $this->getDemandeExterneService()->getDemandeExterne($demandeId);
        /** @var Agent|null $entity */
        $agentId = (($this->getMvcEvent()->getRouteMatch()->getParam('agent')));
        $entityAgent = $this->getAgentService()->getAgent($agentId);

        switch($action) {
            case 'afficher' :
                return $this->computeAssertion($entity, DemandeexternePrivileges::DEMANDEEXTERNE_AFFICHER);
            case 'ajouter' :
                return $this->computeAssertion($entity, DemandeexternePrivileges::DEMANDEEXTERNE_AJOUTER);
                return $this->computeAssertion($entity, DemandeexternePrivileges::DEMANDEEXTERNE_AJOUTER, $entityAgent);
            case 'modifier' :
                return $this->computeAssertion($entity, DemandeexternePrivileges::DEMANDEEXTERNE_MODIFIER);
            case 'historiser' :
+10 −1
Changes for module/Formation/src/Formation/Controller/FormationInstanceInscritController.php: 10 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ use Application\Service\Agent\AgentServiceAwareTrait;
use Formation\Entity\Db\DemandeExterne;
use Formation\Entity\Db\FormationInstanceInscrit;
use Formation\Form\Inscription\InscriptionFormAwareTrait;
use Formation\Provider\Etat\DemandeExterneEtats;
use Formation\Provider\Etat\InscriptionEtats;
use Formation\Provider\Etat\SessionEtats;
use Formation\Service\DemandeExterne\DemandeExterneServiceAwareTrait;
@@ -169,12 +170,18 @@ class FormationInstanceInscritController extends AbstractActionController

        $superieures = $this->getAgentService()->computeSuperieures($agent);

        $demandes = $this->getDemandeExterneService()->getDemandesExternesByAgent($agent);
        $demandes = array_filter($demandes, function (DemandeExterne $d) { return $d->estNonHistorise();});
        $demandesNonValidees = array_filter($demandes, function (DemandeExterne $d) { return $d->getEtat()->getCode() === DemandeExterneEtats::ETAT_CREATION_EN_COURS; });

        return new ViewModel([
            'instances' => $instances,
            'inscriptions' => $inscriptions,
            'formations' => $formations,
            'agent' => $agent,

            'demandes' => $demandesNonValidees,

            'superieures' => $superieures,
        ]);
    }
@@ -192,6 +199,8 @@ class FormationInstanceInscritController extends AbstractActionController
        $demandes = $this->getDemandeExterneService()->getDemandesExternesByAgent($agent);
        $demandes = array_filter($demandes, function (DemandeExterne $d) { return $d->estNonHistorise();});

        $demandesValidees    = array_filter($demandes, function (DemandeExterne $d) { return $d->getEtat()->getCode() !== DemandeExterneEtats::ETAT_CREATION_EN_COURS; });

            $rendu = $this->getRenduService()->generateRenduByTemplateCode('PARCOURS_ENTREE_TEXTE', []);
        return new ViewModel([
            'instances' => $instances,
@@ -199,7 +208,7 @@ class FormationInstanceInscritController extends AbstractActionController
            'formations' => $formations,
            'agent' => $agent,
            'texteParcours' => $rendu->getCorps(),
            'demandes' => $demandes,
            'demandes' => $demandesValidees,
        ]);
    }

+2 −1
Changes for module/Formation/view/formation/demande-externe/afficher.phtml: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -11,7 +11,8 @@ use Formation\Provider\Validation\DemandeExterneValidations;
 * @var Agent $agent;
 */

$canValiderDrh = $this->isAllowed(DemandeexternePrivileges::getResourceId(DemandeexternePrivileges::DEMANDEEXTERNE_VALIDER_DRH));
$canValiderDrh = $this->isAllowed($demande,DemandeexternePrivileges::DEMANDEEXTERNE_VALIDER_DRH);

?>


+3 −1
Changes for module/Formation/view/formation/formation-instance-inscrit/inscription-formation.phtml: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -4,11 +4,13 @@
 * @see \Formation\Controller\FormationInstanceInscritController::inscriptionFormationAction()
 * @var FormationInstance[] $instances
 * @var FormationInstanceInscrit[] $inscriptions
 * @var DemandeExterne[] $demandes
 * @var Agent $agent
 * @var array $superieures
 */

use Application\Entity\Db\Agent;
use Formation\Entity\Db\DemandeExterne;
use Formation\Entity\Db\FormationInstance;
use Formation\Entity\Db\FormationInstanceInscrit;

@@ -54,7 +56,7 @@ if (!empty($superieures)) {

    <!-- Mission------------------------------------------------------------------------------------------->
    <div id="demandes" class="tab-pane">
        <?php echo $this->partial('partial/demandes-externes', ['agent' => $agent]); ?>
        <?php echo $this->partial('partial/demandes-externes', ['agent' => $agent, 'demandes' => $demandes]); ?>
    </div>

</div>
+56 −2
Changes for module/Formation/view/formation/formation-instance-inscrit/partial/demandes-externes.phtml: 56 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -2,9 +2,12 @@

/**
 * @var Agent $agent
 * @var DemandeExterne[] $demandes
 */

use Application\Entity\Db\Agent;
use Formation\Entity\Db\DemandeExterne;
use Formation\Provider\Etat\DemandeExterneEtats;
use Formation\Provider\Privilege\DemandeexternePrivileges;

$canAjouterDemande      = $this->isAllowed(DemandeexternePrivileges::getResourceId(DemandeexternePrivileges::DEMANDEEXTERNE_AJOUTER));
@@ -15,10 +18,11 @@ $canAjouterDemande = $this->isAllowed(DemandeexternePrivileges::getResource
    S'inscire à un stage hors du plan de formation
</h2>

<div>
<div class="row">
<div class="col-md-7">
    Afin de réaliser une demande de formation hors plan de formation, vous devez trouver au <em>moins trois</em> organismes et déposer les devis.
</div>

<div class="col-md-5">
    <?php /** @see \Formation\Controller\DemandeExterneController::ajouterAction() */ ?>
    <a href="<?php echo $this->url('formation/demande-externe/ajouter', ['agent' => $agent->getId()], [], true); ?>"
       class="btn btn-primary ajax-modal <?php if (!$canAjouterDemande) echo " disabled "; ?> " data-event="modification"
@@ -26,3 +30,53 @@ $canAjouterDemande = $this->isAllowed(DemandeexternePrivileges::getResource
        <span class="icon icon-ajouter"></span>
        Je remplis le formulaire
    </a>
</div>
</div>

<br/>

<h2> Demandes que je n'ai pas encore validée </h2>

<?php foreach($demandes as $demande) : ?>
    <div class="row">
        <div class="col-md-7 description">
            <?php echo $this->etatbadge($demande->getEtat()); ?>
            <?php echo $demande->getLibelle(); ?> (<?php echo $demande->getOrganisme(); ?>)
            <br/>
            <?php echo $demande->getLieu(); ?> ( du <?php echo $demande->getDebut()->format('d/m/Y'); ?> au <?php echo $demande->getFin()->format('d/m/Y'); ?>)
            <br/>
            Créée le <?php echo $demande->getHistoCreation()->format('d/m/Y à H:i'); ?>
            <br/>
            <br/>
        </div>
        <div class="col-md-5">
            <?php
                $canModifierDemande = $this->isAllowed($demande, DemandeexternePrivileges::DEMANDEEXTERNE_MODIFIER);
                $canValiderAgentDemande = $this->isAllowed($demande, DemandeexternePrivileges::DEMANDEEXTERNE_VALIDER_AGENT);
                $canHistoriserDemande = $this->isAllowed($demande, DemandeexternePrivileges::DEMANDEEXTERNE_HISTORISER);
            ?>
            <?php /** @see \Formation\Controller\DemandeExterneController::validerAgentAction() */?>
            <a  href="<?php echo $this->url('formation/demande-externe/valider-agent', ['demande-externe' => $demande->getId()], [], true); ?>"
                class="btn btn-success ajax-modal <?php if (!$canValiderAgentDemande) echo " disabled "; ?> " data-event="modification">
                <span class="icon icon-valider"></span>
                Valider la demande (Agent)
            </a>
            <?php /** @see \Formation\Controller\DemandeExterneController::modifierAction() */?>
            <a  href="<?php echo $this->url('formation/demande-externe/modifier', ['demande-externe' => $demande->getId()], [], true); ?>"
                class="btn btn-primary ajax-modal <?php if (!$canModifierDemande) echo " disabled "; ?> " data-event="modification">
                <span class="icon icon-modifier"></span>
                Modifier la demande
            </a>
            <?php /** @see \Formation\Controller\DemandeExterneController::historiserAction() */?>
            <a  href="<?php echo $this->url('formation/demande-externe/historiser', ['demande-externe' => $demande->getId()], [], true); ?>"
                class="btn btn-danger <?php if (!$canHistoriserDemande) echo " disabled "; ?> ">
                <span class="icon icon-historiser"></span>
                Supprimer la demande
            </a>
            <br/>
            <br/>
        </div>
    </div>
<?php endforeach; ?>

Loading