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

Etat d'entretien pro + amélioration du autoform formation

parent 86eed977
Loading
Loading
Loading
Loading
+6 −38
Original line number Diff line number Diff line
@@ -89,26 +89,10 @@ foreach ($agents as $agent) {
            <td> <?php echo $entretien->getResponsable()->getDisplayName(); ?> </td>
            <td> <?php echo $entretien->getDateEntretien()->format('d/m/Y'); ?> </td>
            <td>
                <?php if ($entretien->getValidationResponsable() !== null) : ?>
                    <span
                        data-toggle="tooltip"
                        data-html="true"
                        title="<?php echo $entretien->getValidationResponsable()->generateTooltipText(); ?>"
                    >
                        <span class="badge" style="background-color:darkgreen">Validé</span>
                    </span>
                <?php else : ?>
                    <?php if ($entretien->getValidationAgent() !== null) : ?>
                        <span
                            data-toggle="tooltip"
                            data-html="true"
                            title="<?php echo $entretien->getValidationAgent()->generateTooltipText(); ?>"
                        >
                            <span class="badge" style="background-color:darkorange">En attente de validation responsable </span>
                        </span>
                <?php if ($entretien->getEtat()) : ?>
                    <?php echo $this->etatbadge($entretien->getEtat()); ?>
                <?php else : ?>
                        <span class="badge" style="background-color:orangered">En attente de validation agent </span>
                    <?php endif; ?>
                    ???
                <?php endif; ?>
            </td>
            <td>
@@ -186,26 +170,10 @@ foreach ($agents as $agent) {
                <?php endif; ?>
            </td>
            <td>
                <?php if ($entretien->getValidationResponsable() !== null) : ?>
                    <span
                        data-toggle="tooltip"
                        data-html="true"
                        title="<?php echo $entretien->getValidationResponsable()->generateTooltipText(); ?>"
                    >
                        <span class="badge" style="background-color:darkgreen">Validé</span>
                    </span>
                <?php else : ?>
                    <?php if ($entretien->getValidationAgent() !== null) : ?>
                        <span
                            data-toggle="tooltip"
                            data-html="true"
                            title="<?php echo $entretien->getValidationAgent()->generateTooltipText(); ?>"
                        >
                            <span class="badge" style="background-color:darkorange">En attente de validation responsable </span>
                        </span>
                <?php if ($entretien->getEtat()) : ?>
                    <?php echo $this->etatbadge($entretien->getEtat()); ?>
                <?php else : ?>
                        <span class="badge" style="background-color:orangered">En attente de validation agent </span>
                    <?php endif; ?>
                    ???
                <?php endif; ?>
            </td>
            <td>
+10 −1
Original line number Diff line number Diff line
@@ -7,6 +7,10 @@
use Autoform\Entity\Db\Champ;

$periode = ["Année entière", "Premier semestre", "Second semestre"];
if ($champ->getOptions() != "") {
    $split = explode(";", $champ->getOptions());
    if (!empty($split)) $periode = $split;
}
$split = explode("|",$reponse);
$text = (count($split) === 2)?$split[0]:"";
$select = (count($split) === 2)?$split[1]:"";
@@ -22,7 +26,12 @@ $select = (count($split) === 2)?$split[1]:"";
            Intitulé <input type="text" name="text_<?php echo $champ->getId(); ?>" value="<?php echo $text; ?>"/>
        </div>
        <div class="col-sm-5">
            Période <select class='periode' name="select_<?php echo $champ->getId(); ?>">
            <?php if ($champ->getTexte() == '') : ?>
                Période
            <?php else : ?>
                <?php echo $champ->getTexte(); ?>
            <?php endif; ?>
            <select class='periode' name="select_<?php echo $champ->getId(); ?>">
                <option value="null"></option>
                    <?php foreach ($periode as $item) : ?>
                        <option value="<?php echo $item; ?>"
+22 −3
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ use Mailing\Service\Mailing\MailingServiceAwareTrait;
use Mpdf\MpdfException;
use UnicaenApp\Exception\RuntimeException;
use UnicaenApp\Form\Element\SearchAndSelect;
use UnicaenEtat\Service\Etat\EtatServiceAwareTrait;
use UnicaenUtilisateur\Entity\DateTimeAwareTrait;
use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;
use UnicaenValidation\Service\ValidationInstance\ValidationInstanceServiceAwareTrait;
@@ -36,6 +37,7 @@ class EntretienProfessionnelController extends AbstractActionController
    use AgentServiceAwareTrait;
    use ConfigurationServiceAwareTrait;
    use EntretienProfessionnelServiceAwareTrait;
    use EtatServiceAwareTrait;
    use CampagneServiceAwareTrait;
    use ObservationServiceAwareTrait;
    use MailingServiceAwareTrait;
@@ -114,6 +116,7 @@ class EntretienProfessionnelController extends AbstractActionController
                $formation_instance = $this->getFormulaireInstanceService()->createInstance('FORMATION');
                $entretien->setFormulaireInstance($entretien_instance);
                $entretien->setFormationInstance($formation_instance);
                $entretien->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_ACCEPTATION));
                $this->getEntretienProfessionnelService()->create($entretien);
                $this->getEntretienProfessionnelService()->recopiePrecedent($entretien);
                $this->getMailingService()->sendMailType("ENTRETIEN_CONVOCATION_AGENT", ['campagne' => $entretien->getCampagne(), 'entretien' => $entretien, 'user' => $entretien->getAgent()]);
@@ -310,15 +313,21 @@ class EntretienProfessionnelController extends AbstractActionController
                        $array = [];
                        foreach ($responsables as $responsable) $array[] = $responsable->getEmail();
                        $this->getMailingService()->sendMailType("ENTRETIEN_VALIDATION_AGENT", ['campagne' => $entretien->getCampagne(), 'entretien' => $entretien, 'mailing' => $array]);
                        $entretien->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_VALIDATION_AGENT));
                        $this->getEntretienProfessionnelService()->update($entretien);
                        break;
                    case 'Responsable' :
                        $entretien->setValidationResponsable($validation);
                        $this->getMailingService()->sendMailType("ENTRETIEN_VALIDATION_RESPONSABLE", ['campagne' => $entretien->getCampagne(), 'entretien' => $entretien, 'mailing' => $entretien->getAgent()->getUtilisateur()->getEmail()]);
                        $this->getMailingService()->sendMailType("COMMUNICATION_AGENT_OBSERVATIONS", ['campagne' => $entretien->getCampagne(), 'entretien' => $entretien, 'mailing' => $entretien->getAgent()->getUtilisateur()->getEmail()]);
                        $entretien->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_VALIDATION_RESPONSABLE));
                        $this->getEntretienProfessionnelService()->update($entretien);
                        break;
                    case 'DRH' :
                        $entretien->setValidationDRH($validation);
                        $this->getMailingService()->sendMailType("ENTRETIEN_VALIDATION_DRH", ['campagne' => $entretien->getCampagne(), 'entretien' => $entretien, 'mailing' => $entretien->getResponsable()->getEmail()]);
                        $entretien->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_VALIDATION_HIERARCHIE));
                        $this->getEntretienProfessionnelService()->update($entretien);
                        break;
                }
                $this->getEntretienProfessionnelService()->update($entretien);
@@ -349,9 +358,18 @@ class EntretienProfessionnelController extends AbstractActionController
        $entity = $this->getValidationInstanceService()->getEntity($validation);

        /** TODO c'est vraiment crado (faire mieux ...) */
        if ($validation->getType()->getCode() === "ENTRETIEN_AGENT") $entity->setValidationAgent(null);
        if ($validation->getType()->getCode() === "ENTRETIEN_RESPONSABLE") $entity->setValidationResponsable(null);
        if ($validation->getType()->getCode() === "ENTRETIEN_DRH") $entity->setValidationDRH(null);
        if ($validation->getType()->getCode() === "ENTRETIEN_AGENT") {
            $entity->setValidationAgent(null);
            $entity->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_VALIDATION_RESPONSABLE));
        }
        if ($validation->getType()->getCode() === "ENTRETIEN_RESPONSABLE") {
            $entity->setValidationResponsable(null);
            $entity->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_ACCEPTER));
        }
        if ($validation->getType()->getCode() === "ENTRETIEN_DRH") {
            $entity->setValidationDRH(null);
            $entity->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_VALIDATION_AGENT));
        }

        try {
            $this->getValidationInstanceService()->getEntityManager()->flush($entity);
@@ -392,6 +410,7 @@ class EntretienProfessionnelController extends AbstractActionController
        if ($entretien !== null AND $entretien->getToken() === $token) {
            $entretien->setToken(null);
            $entretien->setAcceptation($this->getDateTime());
            $entretien->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnel::ETAT_ACCEPTER));
            $this->getEntretienProfessionnelService()->update($entretien);
            $this->getMailingService()->sendMailType("ENTRETIEN_ACCEPTER_AGENT", ['entretien' => $entretien, 'user' => $entretien->getResponsable()]);
        }
+4 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ use EntretienProfessionnel\Service\EntretienProfessionnel\EntretienProfessionnel
use EntretienProfessionnel\Service\Observation\ObservationService;
use Interop\Container\ContainerInterface;
use Mailing\Service\Mailing\MailingService;
use UnicaenEtat\Service\Etat\EtatService;
use UnicaenUtilisateur\Service\User\UserService;
use UnicaenValidation\Service\ValidationInstance\ValidationInstanceService;
use UnicaenValidation\Service\ValidationType\ValidationTypeService;
@@ -30,6 +31,7 @@ class EntretienProfessionnelControllerFactory {
         * @var UserService $userService
         * @var ConfigurationService $configurationService
         * @var EntretienProfessionnelService $entretienProfesionnelService
         * @var EtatService $etatService
         * @var CampagneService $campagneService
         * @var ObservationService $observationService
         * @var FormulaireService $formulaireService
@@ -43,6 +45,7 @@ class EntretienProfessionnelControllerFactory {
        $agentService = $container->get(AgentService::class);
        $userService = $container->get(UserService::class);
        $configurationService = $container->get(ConfigurationService::class);
        $etatService = $container->get(EtatService::class);

        $entretienProfesionnelService = $container->get(EntretienProfessionnelService::class);
        $campagneService = $container->get(CampagneService::class);
@@ -76,6 +79,7 @@ class EntretienProfessionnelControllerFactory {
        $controller->setUserService($userService);
        $controller->setConfigurationService($configurationService);
        $controller->setEntretienProfessionnelService($entretienProfesionnelService);
        $controller->setEtatService($etatService);
        $controller->setCampagneService($campagneService);
        $controller->setObservationService($observationService);
        $controller->setFormulaireInstanceService($formulaireInstanceService);
+28 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ use Autoform\Entity\Db\FormulaireInstance;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use UnicaenApp\Exception\RuntimeException;
use UnicaenEtat\Entity\Db\Etat;
use UnicaenUtilisateur\Entity\Db\User;
use UnicaenUtilisateur\Entity\HistoriqueAwareInterface;
use UnicaenUtilisateur\Entity\HistoriqueAwareTrait;
@@ -17,6 +18,12 @@ use Zend\Permissions\Acl\Resource\ResourceInterface;
class EntretienProfessionnel implements HistoriqueAwareInterface, ResourceInterface, HasAgentInterface {
    use HistoriqueAwareTrait;

    const ETAT_ACCEPTATION                  = 'ENTRETIEN_ACCEPTATION';
    const ETAT_ACCEPTER                     = 'ENTRETIEN_ACCEPTER';
    const ETAT_VALIDATION_RESPONSABLE       = 'ENTRETIEN_VALIDATION_RESPONSABLE ';
    const ETAT_VALIDATION_AGENT             = 'ENTRETIEN_VALIDATION_AGENT';
    const ETAT_VALIDATION_HIERARCHIE        = 'ENTRETIEN_VALIDATION_HIERARCHIE';

    public function getResourceId()
    {
        return 'EntretienProfessionnel';
@@ -54,6 +61,8 @@ class EntretienProfessionnel implements HistoriqueAwareInterface, ResourceInterf
    private $token;
    /** @var DateTime */
    private $acceptation;
    /** @var Etat */
    private $etat;

    /**
     * @return int
@@ -162,6 +171,25 @@ class EntretienProfessionnel implements HistoriqueAwareInterface, ResourceInterf
        return $this;
    }

    /**
     * @return Etat|null
     */
    public function getEtat(): ?Etat
    {
        return $this->etat;
    }

    /**
     * @param Etat|null $etat
     * @return EntretienProfessionnel
     */
    public function setEtat(?Etat $etat): EntretienProfessionnel
    {
        $this->etat = $etat;
        return $this;
    }


    /**
     * @return FormulaireInstance
     */
Loading