Commit 9f96f2e5 authored by Laurent Lécluse's avatar Laurent Lécluse
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
......@@ -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
......
......@@ -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
......@@ -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.
*
......
......@@ -96,6 +96,7 @@ class VolumeHoraireEnsService extends AbstractEntityService
if ($toDelete) {
$this->delete($volumeHoraireEns);
} else {
$volumeHoraireEns->setSource($this->getServiceSource()->getOse());
$this->save($volumeHoraireEns);
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment