Commit fd4ec090 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Organisation centrale en cours

parent 07bb81f0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@
    "guzzlehttp/guzzle": "^7.0",
    "phpoffice/phpspreadsheet": "^1.29",
    "phpoffice/phpword": "^1.1",
    "unicaen/signature": "1.0.1",
    "unicaen/signature": "1.0.5",
    "ext-gettext": "*",
    "ext-fileinfo": "*",
    "symfony/filesystem": "^7.1",
+21 −0
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ use Oscar\Entity\ContractDocument;
use Oscar\Entity\ContractDocumentRepository;
use Oscar\Entity\Discipline;
use Oscar\Entity\LogActivity;
use Oscar\Entity\Organization;
use Oscar\Entity\OrganizationRepository;
use Oscar\Entity\OrganizationRole;
use Oscar\Entity\Privilege;
use Oscar\Entity\Role;
@@ -409,6 +411,15 @@ class AdministrationController extends AbstractOscarController implements UsePro
                    $this->getOscarConfigurationService()->setActivityRequestLimit($value);
                    return $this->redirect()->toRoute('administration/parameters');

                case 'organizations_central':
                    try {
                        $value = intval($this->params()->fromPost('parameter_value'));
                        $organization = $this->getEntityManager()->getRepository(Organization::class)->find($value);
                        $this->getOscarConfigurationService()->saveEditableConfKey("organizations_central", [$organization->getId()]);
                    } catch (\Exception $e) {
                        die("ERREUR");
                    }

                case OscarConfigurationService::document_use_version_in_name:
                    $value = boolval($this->params()->fromPost('parameter_value'));
                    $this->getOscarConfigurationService()->setDocumentUseVersionInName($value);
@@ -444,9 +455,19 @@ class AdministrationController extends AbstractOscarController implements UsePro
            }
        }

        // Organizations centrals
        /** @var OrganizationRepository $organizationRepository */
        $organizationRepository = $this->getEntityManager()->getRepository(Organization::class);
        
        $organizationsCentral = $organizationRepository->getOrganisationByIds(
            $this->getOscarConfigurationService()->getOrganisationCentral()
        );



        $pfiFixed = $this->getOscarConfigurationService()->getPfiRegex();
        return [
            'organizationsCentral' => $organizationsCentral,
            OscarConfigurationService::spents_account_filter        => implode(
                ', ',
                $this->getOscarConfigurationService()->getSpentAccountFilter()
+14 −0
Original line number Diff line number Diff line
@@ -658,4 +658,18 @@ class PersonRepository extends EntityRepository implements IConnectedRepository
    {
        return $this->newPersistantPerson();
    }

    /**
     * @param array $organizationsId
     * @return Person[]
     */
    public function getPersonsInOrganizations(array $organizationsId) :array
    {
        $qb = $this->createQueryBuilder('p')
            ->innerJoin('p.organizations', 'o')
            ->where('o.organization IN (:organizations)')
            ->setParameter('organizations', $organizationsId);
        ;
        return $qb->getQuery()->getResult();
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -1272,4 +1272,9 @@ class OrganizationService implements UseOscarConfigurationService, UseEntityMana
        $this->getOrganizationRoleRepository()->doublonDeleteProjectPartnerBydIds($toDelProject);
        return count($toDelActivity) + count($toDelProject);
    }

    public function getOrganizationsCentral(): array
    {
        return $this->getOscarConfigurationService()->getOrganisationCentral();
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -477,6 +477,11 @@ class OscarConfigurationService implements ServiceLocatorAwareInterface
        return $this->getEditableConfKey('highdelayRelance', "");
    }

    public function getOrganisationCentral(): array
    {
        return $this->getEditableConfKey('organisationCentral', []);
    }

    public function setHighDelayRelance($value)
    {
        return $this->saveEditableConfKey('highdelayRelance', $value);
Loading