Loading module/Oscar/src/Oscar/Controller/AdministrationController.php +70 −137 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ use Oscar\Entity\TVA; use Oscar\Exception\OscarException; use Oscar\Formatter\OscarFormatterConst; use Oscar\Provider\Privileges; use Oscar\Service\administration\AdminDisciplineAPIService; use Oscar\Service\administration\AdministrationConfigService; use Oscar\Service\administration\AdminRolePrivilegeServiceAPIService; use Oscar\Service\ConfigurationParser; Loading Loading @@ -528,32 +529,22 @@ class AdministrationController extends AbstractOscarController implements ', ', $this->getOscarConfigurationService()->getSpentAccountFilter() ), OscarConfigurationService::activity_request_limit => $this->getOscarConfigurationService( )->getActivityRequestLimit(), 'timesheet_preview' => $this->getOscarConfigurationService( )->getTimesheetPreview(), 'timesheet_excel' => $this->getOscarConfigurationService( )->getTimesheetExcel(), 'allow_numerotation_custom' => $this->getOscarConfigurationService( )->getNumerotationEditable(), 'themes' => $this->getOscarConfigurationService( )->getConfiguration('themes'), 'theme' => $this->getOscarConfigurationService()->getTheme( ), OscarConfigurationService::activity_request_limit => $this->getOscarConfigurationService()->getActivityRequestLimit(), 'timesheet_preview' => $this->getOscarConfigurationService()->getTimesheetPreview(), 'timesheet_excel' => $this->getOscarConfigurationService()->getTimesheetExcel(), 'allow_numerotation_custom' => $this->getOscarConfigurationService()->getNumerotationEditable(), 'themes' => $this->getOscarConfigurationService()->getConfiguration('themes'), 'theme' => $this->getOscarConfigurationService()->getTheme(), 'export' => [ 'separator' => $this->getOscarConfigurationService()->getExportSeparator(), 'dateformat' => $this->getOscarConfigurationService()->getExportDateFormat() ], 'organization_leader_role' => $organization_leader_role, OscarConfigurationService::document_use_version_in_name => $this->getOscarConfigurationService( )->getDocumentUseVersionInName(), OscarConfigurationService::pfi_strict => $this->getOscarConfigurationService( )->isPfiStrict(), OscarConfigurationService::document_use_version_in_name => $this->getOscarConfigurationService()->getDocumentUseVersionInName(), OscarConfigurationService::pfi_strict => $this->getOscarConfigurationService()->isPfiStrict(), OscarConfigurationService::pfi_strict_format => $pfiFixed, "pfi_default_format" => $this->getOscarConfigurationService( )->getConfiguration('validation.pfi'), "allow_node_selection" => $this->getOscarConfigurationService( )->isAllowNodeSelection(), "pfi_default_format" => $this->getOscarConfigurationService()->getConfiguration('validation.pfi'), "allow_node_selection" => $this->getOscarConfigurationService()->isAllowNodeSelection(), "organizationRequire" => [ "type" => $this->getOscarConfigurationService()->getOrganizationRequired()['type'], "country" => $this->getOscarConfigurationService()->getOrganizationRequired()['country'] Loading Loading @@ -609,8 +600,7 @@ class AdministrationController extends AbstractOscarController implements default: return $this->getResponseInternalError(); } } else { } else { switch ($method) { case 'GET': $numerotation = $this->getOscarConfigurationService()->getEditableConfKey('numerotation', []); Loading Loading @@ -693,8 +683,7 @@ class AdministrationController extends AbstractOscarController implements if (!$tva) { return $this->getResponseInternalError("Impossible de charger la TVA '$id'"); } } else { } else { return $this->getResponseBadRequest(""); } $this->getEntityManager()->remove($tva); Loading @@ -721,8 +710,7 @@ class AdministrationController extends AbstractOscarController implements if (!$tva) { throw new OscarException("Impossible de charger la TVA '$id'"); } } else { } else { $tva = new TVA(); $this->getEntityManager()->persist($tva); } Loading Loading @@ -801,63 +789,12 @@ class AdministrationController extends AbstractOscarController implements public function disciplineAction() { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); $disciplines = $this->getEntityManager()->getRepository(Discipline::class)->getDisciplinesCounted(); $method = $this->getHttpXMethod(); switch ($method) { case 'PUT' : $label = $this->params()->fromPost('label'); $discipline = new Discipline(); $this->getEntityManager()->persist($discipline); $discipline->setLabel($label); try { $this->getEntityManager()->flush($discipline); $data = $discipline->toJson(); $data['actyivitiesLng'] = 0; return $this->ajaxResponse(['discipline' => $data]); } catch (\Exception $e) { return $this->getResponseInternalError("Impossible d'ajouter la discipline : " . $e->getMessage()); } break; case 'POST' : $label = $this->params()->fromPost('label'); $id = $this->params()->fromPost('id'); try { $discipline = $this->getEntityManager()->getRepository(Discipline::class)->find($id); $discipline->setLabel($label); $this->getEntityManager()->flush($discipline); $data = $discipline->toJson(); return $this->ajaxResponse(['discipline' => $data]); } catch (\Exception $e) { return $this->getResponseInternalError("Impossible d'ajouter la discipline : " . $e->getMessage()); } return $this->getResponseNotImplemented("MODIFICATION Pas encore implanté"); break; case 'DELETE' : $id = $this->params()->fromQuery('id'); try { $discipline = $this->getEntityManager()->getRepository(Discipline::class)->find($id); $this->getEntityManager()->remove($discipline); $this->getEntityManager()->flush(); return $this->getResponseOk(); } catch (\Exception $exception) { return $this->getResponseInternalError( "Impossible de supprimer la discipline : " . $exception->getMessage() ); } $disciplineConfigApi = new AdminDisciplineAPIService(); $disciplineConfigApi->setServiceContainer($this->getServiceLocator()); if ($this->isAjax() || $this->getRequest()->getQuery('f') === 'json') { return $disciplineConfigApi->entrypoint($this->getRequest()); } $datas = [ 'disciplines' => $disciplines ]; return $datas; return []; } public function motsclesAction() Loading Loading @@ -1069,7 +1006,8 @@ class AdministrationController extends AbstractOscarController implements } } public function activityStatusAction() { public function activityStatusAction() { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_PARAMETERS_MANAGE); /** @var AdministrationConfigService $administrationService */ Loading Loading @@ -1643,8 +1581,7 @@ class AdministrationController extends AbstractOscarController implements $this->getLoggerService()->critical("Action $datas->action inconnue !"); return $this->getResponseNotImplemented(); } } else { } else { // Contrôle du Role $roleId = trim($datas->get('label')); if ($roleId == "") { Loading @@ -1668,8 +1605,7 @@ class AdministrationController extends AbstractOscarController implements return $this->ajaxResponse($role->toArray()); } } } else { } else { $method = $this->getHttpXMethod(); $this->getOscarUserContextService()->check(Privileges::DROIT_ROLEORGA_EDITION); $role = $this->getEntityManager()->getRepository(OrganizationRole::class)->find($roleId); Loading Loading @@ -1868,8 +1804,7 @@ class AdministrationController extends AbstractOscarController implements 'declarersRelanceJour1' => $this->getOscarConfigurationService()->getDeclarersRelanceJour1(), 'declarersRelance2' => $this->getOscarConfigurationService()->getDeclarersRelance2(), 'declarersRelanceJour2' => $this->getOscarConfigurationService()->getDeclarersRelanceJour2(), 'declarersRelanceConflitMessage' => $this->getOscarConfigurationService( )->getDeclarersRelanceConflitMessage(), 'declarersRelanceConflitMessage' => $this->getOscarConfigurationService()->getDeclarersRelanceConflitMessage(), 'declarersRelanceConflitJour' => $this->getOscarConfigurationService()->getDeclarersRelanceConflitJour(), /** **/ 'validatorsRelance1' => $this->getOscarConfigurationService()->getValidatorsRelance1(), Loading Loading @@ -1952,8 +1887,7 @@ class AdministrationController extends AbstractOscarController implements } return []; } elseif ($method == "POST") { } elseif ($method == "POST") { // Enregistrement des associations TYPE OSCAR <> TYPE PCRU $datas = $this->getJsonPosted(); $idTypeActivity = $datas['oscar_id']; Loading @@ -1965,8 +1899,7 @@ class AdministrationController extends AbstractOscarController implements $this->getLoggerService()->error($e->getMessage()); return $this->getResponseInternalError($e->getMessage()); } } else { } else { return $this->getResponseBadRequest("La méthode de transmission ne fonctionne pas"); } } Loading module/Oscar/src/Oscar/Entity/Discipline.php +19 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,14 @@ class Discipline */ private $label; /** * Est disponible à la selection * * @var boolean * @ORM\Column(type="boolean", nullable=false, options={"default"=true}) */ protected $active = false; /** * @var \Doctrine\Common\Collections\Collection * @ORM\ManyToMany(targetEntity="Activity", mappedBy="disciplines") Loading Loading @@ -70,6 +78,17 @@ class Discipline return $this; } public function isActive(): bool { return $this->active; } public function setActive(bool $active): self { $this->active = $active; return $this; } /** * @return string */ Loading module/Oscar/src/Oscar/Entity/DisciplineRepository.php +4 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,10 @@ class DisciplineRepository extends EntityRepository */ public function getDisciplinesCounted() { $dql = "SELECT d.id, d.label, count(a.id) as activitiesLng FROM Oscar\Entity\Discipline d LEFT JOIN d.activities a GROUP BY d.id ORDER BY d.label"; $dql = "SELECT d.id, d.label, d.active, count(a.id) as count FROM Oscar\Entity\Discipline d LEFT JOIN d.activities a GROUP BY d.id ORDER BY d.label"; $query = $this->getEntityManager()->createQuery($dql); return $query->getArrayResult(); } Loading module/Oscar/src/Oscar/Service/administration/AdminDisciplineAPIService.php 0 → 100644 +53 −0 Original line number Diff line number Diff line <?php namespace Oscar\Service\administration; use Doctrine\ORM\EntityManager; use Laminas\Http\Request; use Laminas\Http\Response; use Laminas\View\Model\JsonModel; use Oscar\Entity\Discipline; use Oscar\Entity\DisciplineRepository; use Oscar\Entity\Role; use Oscar\Entity\RoleRepository; use Oscar\Exception\OscarException; use Oscar\Service\core\AbstractAPIService; /** * Administration des Rôles/Privilèges */ class AdminDisciplineAPIService extends AbstractAPIService { protected function get(Request $request): JsonModel|Response|array { return $this->getDisciplineRepository()->getDisciplinesCounted(); } protected function put(Request $request): JsonModel|Response|array { $data = $this->getRequestData($request); /** @var Discipline $entity */ $entity = $this->getDisciplineRepository()->findOneBy(['id' => $data['id']]); $entity->setLabel($data['label']); $entity->setActive($data['active'] === true); $this->getEntityManager()->flush($entity); return $this->responseData(null); } protected function post(Request $request): JsonModel|Response|array { $data = $this->getRequestData($request); /** @var Discipline $entity */ $entity = new Discipline(); $this->getEntityManager()->persist($entity); $entity->setLabel($data['label']); $entity->setActive($data['active'] === true); $this->getEntityManager()->flush($entity); return $this->responseData(null); } protected function getDisciplineRepository(): DisciplineRepository { return $this->getEntityManager()->getRepository(Discipline::class); } } No newline at end of file module/Oscar/src/Oscar/Service/administration/AdministrationConfigService.php +8 −9 Original line number Diff line number Diff line Loading @@ -56,7 +56,6 @@ class AdministrationConfigService implements $disabled = $this->getOscarConfigurationService()->getEditableConfKey("status_disabled", []); $out = []; foreach ($status as $code => $label) { $disabledStatus = in_array($code, $disabled); $use = 0; foreach ($usage as $dt) { Loading Loading
module/Oscar/src/Oscar/Controller/AdministrationController.php +70 −137 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ use Oscar\Entity\TVA; use Oscar\Exception\OscarException; use Oscar\Formatter\OscarFormatterConst; use Oscar\Provider\Privileges; use Oscar\Service\administration\AdminDisciplineAPIService; use Oscar\Service\administration\AdministrationConfigService; use Oscar\Service\administration\AdminRolePrivilegeServiceAPIService; use Oscar\Service\ConfigurationParser; Loading Loading @@ -528,32 +529,22 @@ class AdministrationController extends AbstractOscarController implements ', ', $this->getOscarConfigurationService()->getSpentAccountFilter() ), OscarConfigurationService::activity_request_limit => $this->getOscarConfigurationService( )->getActivityRequestLimit(), 'timesheet_preview' => $this->getOscarConfigurationService( )->getTimesheetPreview(), 'timesheet_excel' => $this->getOscarConfigurationService( )->getTimesheetExcel(), 'allow_numerotation_custom' => $this->getOscarConfigurationService( )->getNumerotationEditable(), 'themes' => $this->getOscarConfigurationService( )->getConfiguration('themes'), 'theme' => $this->getOscarConfigurationService()->getTheme( ), OscarConfigurationService::activity_request_limit => $this->getOscarConfigurationService()->getActivityRequestLimit(), 'timesheet_preview' => $this->getOscarConfigurationService()->getTimesheetPreview(), 'timesheet_excel' => $this->getOscarConfigurationService()->getTimesheetExcel(), 'allow_numerotation_custom' => $this->getOscarConfigurationService()->getNumerotationEditable(), 'themes' => $this->getOscarConfigurationService()->getConfiguration('themes'), 'theme' => $this->getOscarConfigurationService()->getTheme(), 'export' => [ 'separator' => $this->getOscarConfigurationService()->getExportSeparator(), 'dateformat' => $this->getOscarConfigurationService()->getExportDateFormat() ], 'organization_leader_role' => $organization_leader_role, OscarConfigurationService::document_use_version_in_name => $this->getOscarConfigurationService( )->getDocumentUseVersionInName(), OscarConfigurationService::pfi_strict => $this->getOscarConfigurationService( )->isPfiStrict(), OscarConfigurationService::document_use_version_in_name => $this->getOscarConfigurationService()->getDocumentUseVersionInName(), OscarConfigurationService::pfi_strict => $this->getOscarConfigurationService()->isPfiStrict(), OscarConfigurationService::pfi_strict_format => $pfiFixed, "pfi_default_format" => $this->getOscarConfigurationService( )->getConfiguration('validation.pfi'), "allow_node_selection" => $this->getOscarConfigurationService( )->isAllowNodeSelection(), "pfi_default_format" => $this->getOscarConfigurationService()->getConfiguration('validation.pfi'), "allow_node_selection" => $this->getOscarConfigurationService()->isAllowNodeSelection(), "organizationRequire" => [ "type" => $this->getOscarConfigurationService()->getOrganizationRequired()['type'], "country" => $this->getOscarConfigurationService()->getOrganizationRequired()['country'] Loading Loading @@ -609,8 +600,7 @@ class AdministrationController extends AbstractOscarController implements default: return $this->getResponseInternalError(); } } else { } else { switch ($method) { case 'GET': $numerotation = $this->getOscarConfigurationService()->getEditableConfKey('numerotation', []); Loading Loading @@ -693,8 +683,7 @@ class AdministrationController extends AbstractOscarController implements if (!$tva) { return $this->getResponseInternalError("Impossible de charger la TVA '$id'"); } } else { } else { return $this->getResponseBadRequest(""); } $this->getEntityManager()->remove($tva); Loading @@ -721,8 +710,7 @@ class AdministrationController extends AbstractOscarController implements if (!$tva) { throw new OscarException("Impossible de charger la TVA '$id'"); } } else { } else { $tva = new TVA(); $this->getEntityManager()->persist($tva); } Loading Loading @@ -801,63 +789,12 @@ class AdministrationController extends AbstractOscarController implements public function disciplineAction() { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); $disciplines = $this->getEntityManager()->getRepository(Discipline::class)->getDisciplinesCounted(); $method = $this->getHttpXMethod(); switch ($method) { case 'PUT' : $label = $this->params()->fromPost('label'); $discipline = new Discipline(); $this->getEntityManager()->persist($discipline); $discipline->setLabel($label); try { $this->getEntityManager()->flush($discipline); $data = $discipline->toJson(); $data['actyivitiesLng'] = 0; return $this->ajaxResponse(['discipline' => $data]); } catch (\Exception $e) { return $this->getResponseInternalError("Impossible d'ajouter la discipline : " . $e->getMessage()); } break; case 'POST' : $label = $this->params()->fromPost('label'); $id = $this->params()->fromPost('id'); try { $discipline = $this->getEntityManager()->getRepository(Discipline::class)->find($id); $discipline->setLabel($label); $this->getEntityManager()->flush($discipline); $data = $discipline->toJson(); return $this->ajaxResponse(['discipline' => $data]); } catch (\Exception $e) { return $this->getResponseInternalError("Impossible d'ajouter la discipline : " . $e->getMessage()); } return $this->getResponseNotImplemented("MODIFICATION Pas encore implanté"); break; case 'DELETE' : $id = $this->params()->fromQuery('id'); try { $discipline = $this->getEntityManager()->getRepository(Discipline::class)->find($id); $this->getEntityManager()->remove($discipline); $this->getEntityManager()->flush(); return $this->getResponseOk(); } catch (\Exception $exception) { return $this->getResponseInternalError( "Impossible de supprimer la discipline : " . $exception->getMessage() ); } $disciplineConfigApi = new AdminDisciplineAPIService(); $disciplineConfigApi->setServiceContainer($this->getServiceLocator()); if ($this->isAjax() || $this->getRequest()->getQuery('f') === 'json') { return $disciplineConfigApi->entrypoint($this->getRequest()); } $datas = [ 'disciplines' => $disciplines ]; return $datas; return []; } public function motsclesAction() Loading Loading @@ -1069,7 +1006,8 @@ class AdministrationController extends AbstractOscarController implements } } public function activityStatusAction() { public function activityStatusAction() { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_PARAMETERS_MANAGE); /** @var AdministrationConfigService $administrationService */ Loading Loading @@ -1643,8 +1581,7 @@ class AdministrationController extends AbstractOscarController implements $this->getLoggerService()->critical("Action $datas->action inconnue !"); return $this->getResponseNotImplemented(); } } else { } else { // Contrôle du Role $roleId = trim($datas->get('label')); if ($roleId == "") { Loading @@ -1668,8 +1605,7 @@ class AdministrationController extends AbstractOscarController implements return $this->ajaxResponse($role->toArray()); } } } else { } else { $method = $this->getHttpXMethod(); $this->getOscarUserContextService()->check(Privileges::DROIT_ROLEORGA_EDITION); $role = $this->getEntityManager()->getRepository(OrganizationRole::class)->find($roleId); Loading Loading @@ -1868,8 +1804,7 @@ class AdministrationController extends AbstractOscarController implements 'declarersRelanceJour1' => $this->getOscarConfigurationService()->getDeclarersRelanceJour1(), 'declarersRelance2' => $this->getOscarConfigurationService()->getDeclarersRelance2(), 'declarersRelanceJour2' => $this->getOscarConfigurationService()->getDeclarersRelanceJour2(), 'declarersRelanceConflitMessage' => $this->getOscarConfigurationService( )->getDeclarersRelanceConflitMessage(), 'declarersRelanceConflitMessage' => $this->getOscarConfigurationService()->getDeclarersRelanceConflitMessage(), 'declarersRelanceConflitJour' => $this->getOscarConfigurationService()->getDeclarersRelanceConflitJour(), /** **/ 'validatorsRelance1' => $this->getOscarConfigurationService()->getValidatorsRelance1(), Loading Loading @@ -1952,8 +1887,7 @@ class AdministrationController extends AbstractOscarController implements } return []; } elseif ($method == "POST") { } elseif ($method == "POST") { // Enregistrement des associations TYPE OSCAR <> TYPE PCRU $datas = $this->getJsonPosted(); $idTypeActivity = $datas['oscar_id']; Loading @@ -1965,8 +1899,7 @@ class AdministrationController extends AbstractOscarController implements $this->getLoggerService()->error($e->getMessage()); return $this->getResponseInternalError($e->getMessage()); } } else { } else { return $this->getResponseBadRequest("La méthode de transmission ne fonctionne pas"); } } Loading
module/Oscar/src/Oscar/Entity/Discipline.php +19 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,14 @@ class Discipline */ private $label; /** * Est disponible à la selection * * @var boolean * @ORM\Column(type="boolean", nullable=false, options={"default"=true}) */ protected $active = false; /** * @var \Doctrine\Common\Collections\Collection * @ORM\ManyToMany(targetEntity="Activity", mappedBy="disciplines") Loading Loading @@ -70,6 +78,17 @@ class Discipline return $this; } public function isActive(): bool { return $this->active; } public function setActive(bool $active): self { $this->active = $active; return $this; } /** * @return string */ Loading
module/Oscar/src/Oscar/Entity/DisciplineRepository.php +4 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,10 @@ class DisciplineRepository extends EntityRepository */ public function getDisciplinesCounted() { $dql = "SELECT d.id, d.label, count(a.id) as activitiesLng FROM Oscar\Entity\Discipline d LEFT JOIN d.activities a GROUP BY d.id ORDER BY d.label"; $dql = "SELECT d.id, d.label, d.active, count(a.id) as count FROM Oscar\Entity\Discipline d LEFT JOIN d.activities a GROUP BY d.id ORDER BY d.label"; $query = $this->getEntityManager()->createQuery($dql); return $query->getArrayResult(); } Loading
module/Oscar/src/Oscar/Service/administration/AdminDisciplineAPIService.php 0 → 100644 +53 −0 Original line number Diff line number Diff line <?php namespace Oscar\Service\administration; use Doctrine\ORM\EntityManager; use Laminas\Http\Request; use Laminas\Http\Response; use Laminas\View\Model\JsonModel; use Oscar\Entity\Discipline; use Oscar\Entity\DisciplineRepository; use Oscar\Entity\Role; use Oscar\Entity\RoleRepository; use Oscar\Exception\OscarException; use Oscar\Service\core\AbstractAPIService; /** * Administration des Rôles/Privilèges */ class AdminDisciplineAPIService extends AbstractAPIService { protected function get(Request $request): JsonModel|Response|array { return $this->getDisciplineRepository()->getDisciplinesCounted(); } protected function put(Request $request): JsonModel|Response|array { $data = $this->getRequestData($request); /** @var Discipline $entity */ $entity = $this->getDisciplineRepository()->findOneBy(['id' => $data['id']]); $entity->setLabel($data['label']); $entity->setActive($data['active'] === true); $this->getEntityManager()->flush($entity); return $this->responseData(null); } protected function post(Request $request): JsonModel|Response|array { $data = $this->getRequestData($request); /** @var Discipline $entity */ $entity = new Discipline(); $this->getEntityManager()->persist($entity); $entity->setLabel($data['label']); $entity->setActive($data['active'] === true); $this->getEntityManager()->flush($entity); return $this->responseData(null); } protected function getDisciplineRepository(): DisciplineRepository { return $this->getEntityManager()->getRepository(Discipline::class); } } No newline at end of file
module/Oscar/src/Oscar/Service/administration/AdministrationConfigService.php +8 −9 Original line number Diff line number Diff line Loading @@ -56,7 +56,6 @@ class AdministrationConfigService implements $disabled = $this->getOscarConfigurationService()->getEditableConfKey("status_disabled", []); $out = []; foreach ($status as $code => $label) { $disabledStatus = in_array($code, $disabled); $use = 0; foreach ($usage as $dt) { Loading