Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,7 @@ title: "Changements intervenus sur OSE" ...@@ -3,7 +3,7 @@ title: "Changements intervenus sur OSE"
author: Laurent Lécluse - DSI - Unicaen author: Laurent Lécluse - DSI - Unicaen
--- ---
# OSE 8.1.1 (à venir) # OSE 8.1.1
## Corrections de bugs ## Corrections de bugs
...@@ -14,6 +14,7 @@ author: Laurent Lécluse - DSI - Unicaen ...@@ -14,6 +14,7 @@ author: Laurent Lécluse - DSI - Unicaen
## Nouveautés ## 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 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 ## Notes de mise à jour
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace Application\Assertion; namespace Application\Assertion;
use Application\Entity\Db\Annee;
use Application\Entity\Db\TypeIntervention; use Application\Entity\Db\TypeIntervention;
use Application\Entity\Db\VolumeHoraireEns; use Application\Entity\Db\VolumeHoraireEns;
use Application\Provider\Privilege\Privileges; use Application\Provider\Privilege\Privileges;
...@@ -9,6 +10,7 @@ use Application\Entity\Db\CentreCoutEp; ...@@ -9,6 +10,7 @@ use Application\Entity\Db\CentreCoutEp;
use Application\Entity\Db\ElementModulateur; use Application\Entity\Db\ElementModulateur;
use Application\Entity\Db\ElementPedagogique; use Application\Entity\Db\ElementPedagogique;
use Application\Entity\Db\Etape; use Application\Entity\Db\Etape;
use Application\Service\Traits\ContextServiceAwareTrait;
use UnicaenImport\Entity\Db\Source; use UnicaenImport\Entity\Db\Source;
use Application\Entity\Db\Structure; use Application\Entity\Db\Structure;
use UnicaenAuth\Assertion\AbstractAssertion; use UnicaenAuth\Assertion\AbstractAssertion;
...@@ -23,6 +25,8 @@ use Zend\Permissions\Acl\Resource\ResourceInterface; ...@@ -23,6 +25,8 @@ use Zend\Permissions\Acl\Resource\ResourceInterface;
*/ */
class OffreDeFormationAssertion extends AbstractAssertion class OffreDeFormationAssertion extends AbstractAssertion
{ {
use ContextServiceAwareTrait;
protected function assertEntity(ResourceInterface $entity = null, $privilege = null) protected function assertEntity(ResourceInterface $entity = null, $privilege = null)
{ {
$role = $this->getRole(); $role = $this->getRole();
...@@ -108,7 +112,7 @@ class OffreDeFormationAssertion extends AbstractAssertion ...@@ -108,7 +112,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
{ {
return $this->asserts([ return $this->asserts([
$this->assertStructureSaisie($role, $elementPedagogique->getStructure()), $this->assertStructureSaisie($role, $elementPedagogique->getStructure()),
$this->assertSourceSaisie($elementPedagogique->getSource()), $this->assertSourceSaisie($elementPedagogique->getSource(), $elementPedagogique->getAnnee()),
]); ]);
} }
...@@ -117,7 +121,7 @@ class OffreDeFormationAssertion extends AbstractAssertion ...@@ -117,7 +121,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
protected function assertEtapeSaisie(Role $role, Etape $etape) protected function assertEtapeSaisie(Role $role, Etape $etape)
{ {
return $this->assertStructureSaisie($role, $etape->getStructure()) return $this->assertStructureSaisie($role, $etape->getStructure())
&& $this->assertSourceSaisie($etape->getSource()); && $this->assertSourceSaisie($etape->getSource(), $etape->getAnnee());
} }
...@@ -182,7 +186,7 @@ class OffreDeFormationAssertion extends AbstractAssertion ...@@ -182,7 +186,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
{ {
return $this->asserts([ return $this->asserts([
$this->assertStructureSaisie($role, $elementPedagogique->getStructure()), $this->assertStructureSaisie($role, $elementPedagogique->getStructure()),
$this->assertSourceSaisie($elementPedagogique->getSource()), $this->assertSourceSaisie($elementPedagogique->getSource(), $elementPedagogique->getAnnee()),
]); ]);
} }
...@@ -198,7 +202,7 @@ class OffreDeFormationAssertion extends AbstractAssertion ...@@ -198,7 +202,7 @@ class OffreDeFormationAssertion extends AbstractAssertion
protected function assertVolumeHoraireEnsSaisieVH(Role $role, VolumeHoraireEns $volumeHoraireEns) protected function assertVolumeHoraireEnsSaisieVH(Role $role, VolumeHoraireEns $volumeHoraireEns)
{ {
return $this->asserts([ 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->getElementPedagogique() ? $this->assertElementPedagogiqueSaisieVH($role, $volumeHoraireEns->getElementPedagogique()) : true,
$volumeHoraireEns->getTypeIntervention() ? $this->assertTypeInterventionSaisieVH($role, $volumeHoraireEns->getTypeIntervention()) : true, $volumeHoraireEns->getTypeIntervention() ? $this->assertTypeInterventionSaisieVH($role, $volumeHoraireEns->getTypeIntervention()) : true,
]); ]);
...@@ -241,8 +245,12 @@ class OffreDeFormationAssertion extends AbstractAssertion ...@@ -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(); return !$source->getImportable();
} }
} }
\ No newline at end of file
...@@ -48,6 +48,11 @@ class ContextService extends AbstractService ...@@ -48,6 +48,11 @@ class ContextService extends AbstractService
*/ */
protected $annee; protected $annee;
/**
* @var Annee
*/
protected $anneeImport;
/** /**
* @var \Application\Entity\Db\Intervenant * @var \Application\Entity\Db\Intervenant
*/ */
...@@ -268,6 +273,30 @@ class ContextService extends AbstractService ...@@ -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. * Retourne l'année N - x, N étant l'année courante.
* *
......
...@@ -96,6 +96,7 @@ class VolumeHoraireEnsService extends AbstractEntityService ...@@ -96,6 +96,7 @@ class VolumeHoraireEnsService extends AbstractEntityService
if ($toDelete) { if ($toDelete) {
$this->delete($volumeHoraireEns); $this->delete($volumeHoraireEns);
} else { } else {
$volumeHoraireEns->setSource($this->getServiceSource()->getOse());
$this->save($volumeHoraireEns); $this->save($volumeHoraireEns);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment