Commit 9f96f2e5 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Possibilité de modifier les données liées aux charges d'enseignement sur des...

Possibilité de modifier les données liées aux charges d'enseignement sur des éléments pédagogiques qui ne sont plus synchronisés avec Apogée.
parent 9ab90662
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ title: "Changements intervenus sur OSE"
author: Laurent Lécluse - DSI - Unicaen
---

# OSE 8.1.1 (à venir)
# OSE 8.1.1

## Corrections de bugs

@@ -14,6 +14,7 @@ author: Laurent Lécluse - DSI - Unicaen
## Nouveautés

* Possibilité de récupérer des attributs multivalués pour faire la correspondance d'identifiant entre le LDAP et le code utilisateur indiqué dans la fiche Intervenant
* Possibilité de modifier les données liées aux charges d'enseignement sur des éléments pédagogiques qui ne sont plus synchronisés avec Apogée.

## Notes de mise à jour

+13 −5
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace Application\Assertion;

use Application\Entity\Db\Annee;
use Application\Entity\Db\TypeIntervention;
use Application\Entity\Db\VolumeHoraireEns;
use Application\Provider\Privilege\Privileges;
@@ -9,6 +10,7 @@ use Application\Entity\Db\CentreCoutEp;
use Application\Entity\Db\ElementModulateur;
use Application\Entity\Db\ElementPedagogique;
use Application\Entity\Db\Etape;
use Application\Service\Traits\ContextServiceAwareTrait;
use UnicaenImport\Entity\Db\Source;
use Application\Entity\Db\Structure;
use UnicaenAuth\Assertion\AbstractAssertion;
@@ -23,6 +25,8 @@ use Zend\Permissions\Acl\Resource\ResourceInterface;
 */
class OffreDeFormationAssertion extends AbstractAssertion
{
    use ContextServiceAwareTrait;

    protected function assertEntity(ResourceInterface $entity = null, $privilege = null)
    {
        $role = $this->getRole();
@@ -108,7 +112,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
    {
        return $this->asserts([
            $this->assertStructureSaisie($role, $elementPedagogique->getStructure()),
            $this->assertSourceSaisie($elementPedagogique->getSource()),
            $this->assertSourceSaisie($elementPedagogique->getSource(), $elementPedagogique->getAnnee()),
        ]);
    }

@@ -117,7 +121,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
    protected function assertEtapeSaisie(Role $role, Etape $etape)
    {
        return $this->assertStructureSaisie($role, $etape->getStructure())
            && $this->assertSourceSaisie($etape->getSource());
            && $this->assertSourceSaisie($etape->getSource(), $etape->getAnnee());
    }


@@ -182,7 +186,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
    {
        return $this->asserts([
            $this->assertStructureSaisie($role, $elementPedagogique->getStructure()),
            $this->assertSourceSaisie($elementPedagogique->getSource()),
            $this->assertSourceSaisie($elementPedagogique->getSource(), $elementPedagogique->getAnnee()),
        ]);
    }

@@ -198,7 +202,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
    protected function assertVolumeHoraireEnsSaisieVH(Role $role, VolumeHoraireEns $volumeHoraireEns)
    {
        return $this->asserts([
            $volumeHoraireEns->getSource() ? $this->assertSourceSaisie($volumeHoraireEns->getSource()) : true,
            $volumeHoraireEns->getSource() ? $this->assertSourceSaisie($volumeHoraireEns->getSource(), $volumeHoraireEns->getElementPedagogique()->getAnnee()) : true,
            $volumeHoraireEns->getElementPedagogique() ? $this->assertElementPedagogiqueSaisieVH($role, $volumeHoraireEns->getElementPedagogique()) : true,
            $volumeHoraireEns->getTypeIntervention() ? $this->assertTypeInterventionSaisieVH($role, $volumeHoraireEns->getTypeIntervention()) : true,
        ]);
@@ -241,8 +245,12 @@ class OffreDeFormationAssertion extends AbstractAssertion



    protected function assertSourceSaisie(Source $source)
    protected function assertSourceSaisie(Source $source, Annee $annee)
    {
        if ($annee->getId() < $this->getServiceContext()->getAnneeImport()->getId()){
            return true;
        };

        return !$source->getImportable();
    }
}
 No newline at end of file
+29 −0
Original line number Diff line number Diff line
@@ -48,6 +48,11 @@ class ContextService extends AbstractService
     */
    protected $annee;

    /**
     * @var Annee
     */
    protected $anneeImport;

    /**
     * @var \Application\Entity\Db\Intervenant
     */
@@ -268,6 +273,30 @@ class ContextService extends AbstractService



    /**
     * Retourne l'année courante d'import.
     * C'est à dire :
     * - celle mémorisée en session (car sélectionnée par l'utilisateur) si elle existe ;
     * - ou sinon celle spécifiée dans les paramètres de l'appli.
     *
     * @return Annee
     */
    public function getAnneeImport()
    {
        if (!$this->anneeImport) {
            $sc = $this->getSessionContainer();
            if (!$sc->offsetExists('anneeImport')) {
                $sc->anneeImport = (int)$this->getServiceParametres()->get('annee_import');
            }

            $this->anneeImport = $this->getServiceAnnee()->get($sc->anneeImport);
        }

        return $this->anneeImport;
    }



    /**
     * Retourne l'année N - x, N étant l'année courante.
     *
+1 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ class VolumeHoraireEnsService extends AbstractEntityService
            if ($toDelete) {
                $this->delete($volumeHoraireEns);
            } else {
                $volumeHoraireEns->setSource($this->getServiceSource()->getOse());
                $this->save($volumeHoraireEns);
            }
        }