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

- Ajout des messages/fréquences de conflit

parent 7ab0fc26
Loading
Loading
Loading
Loading
+138 −75
Original line number Diff line number Diff line
@@ -43,7 +43,11 @@ use Zend\Http\Request;
use Oscar\Entity\TypeDocument;
use Zend\View\Model\ViewModel;

class AdministrationController extends AbstractOscarController implements UseProjectGrantService, UseTypeDocumentService, UseAdministrativeDocumentService, UseOrganizationService, UseOscarConfigurationService, UsePCRUService
class AdministrationController extends AbstractOscarController implements UseProjectGrantService,
                                                                          UseTypeDocumentService,
                                                                          UseAdministrativeDocumentService,
                                                                          UseOrganizationService,
                                                                          UseOscarConfigurationService, UsePCRUService
{
    use UseProjectGrantServiceTrait, UseTypeDocumentServiceTrait, UseAdministrativeDocumentServiceTrait, UseOrganizationServiceTrait, UseOscarConfigurationServiceTrait, UsePCRUServiceTrait;

@@ -120,7 +124,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
                } catch (\Exception $e) {
                    return $this->getResponseInternalError($e->getMessage());
                }

            }
        );
    }
@@ -136,7 +139,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
    {
        $this->getOscarUserContextService()->check(Privileges::DROIT_ROLE_VISUALISATION);
        if ($this->isAjax()) {

        }
        return [];
    }
@@ -175,13 +177,13 @@ class AdministrationController extends AbstractOscarController implements UsePro

        return [
            "useWhiteList" => $useWhitelist,
            "whitelist" => $useWhitelist ? $this->getProjectGrantService()->getPersonService()->getDeclarersWhitelist() : null,
            "whitelist" => $useWhitelist ? $this->getProjectGrantService()->getPersonService()->getDeclarersWhitelist(
            ) : null,
        ];
    }

    public function oscarWorkerStatusAction()
    {

        $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_MENU_ADMIN);

        if ($this->isAjax()) {
@@ -196,7 +198,6 @@ class AdministrationController extends AbstractOscarController implements UsePro

    public function logsAction()
    {

        $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_MENU_ADMIN);

        if ($this->isAjax()) {
@@ -286,8 +287,12 @@ class AdministrationController extends AbstractOscarController implements UsePro
        }

        return [
            OscarConfigurationService::spents_account_filter => implode(', ', $this->getOscarConfigurationService()->getSpentAccountFilter()),
            OscarConfigurationService::activity_request_limit => $this->getOscarConfigurationService()->getActivityRequestLimit(),
            OscarConfigurationService::spents_account_filter => implode(
                ', ',
                $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(),
@@ -298,7 +303,8 @@ class AdministrationController extends AbstractOscarController implements UsePro
                'dateformat' => $this->getOscarConfigurationService()->getExportDateFormat()
            ],
            'organization_leader_role' => $organization_leader_role,
            OscarConfigurationService::document_use_version_in_name => $this->getOscarConfigurationService()->getDocumentUseVersionInName()
            OscarConfigurationService::document_use_version_in_name => $this->getOscarConfigurationService(
            )->getDocumentUseVersionInName()
        ];
    }

@@ -341,7 +347,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                        $this->getOscarConfigurationService()->saveEditableConfKey('numerotation', $numerotation);
                        $this->getResponseOk();
                    } catch (\Exception $e) {
                        return $this->getResponseInternalError("Impossible de supprimer le type '$deleted' : " . $e->getMessage());
                        return $this->getResponseInternalError(
                            "Impossible de supprimer le type '$deleted' : " . $e->getMessage()
                        );
                    }

                    break;
@@ -363,7 +371,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                        $this->getOscarConfigurationService()->saveEditableConfKey('numerotation', $numerotation);
                        $this->getResponseOk();
                    } catch (\Exception $e) {
                        return $this->getResponseInternalError("Impossible d'ajouter le type '$added' : " . $e->getMessage());
                        return $this->getResponseInternalError(
                            "Impossible d'ajouter le type '$added' : " . $e->getMessage()
                        );
                    }
                    break;

@@ -411,7 +421,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                    try {
                        $id = intval($this->params()->fromPost('id', null));
                        $active = boolval($this->params()->fromPost('active', false));
                        if ($active == 'true') $active = true;
                        if ($active == 'true') {
                            $active = true;
                        }
                        $label = $this->params()->fromPost('label', "PAS d'INTITULÉ");
                        $rate = floatval($this->params()->fromPost('rate', 0.0));

@@ -432,7 +444,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
                        $this->getEntityManager()->flush($tva);

                        return $this->getResponseOk('TVA créée');

                    } catch (\Exception $e) {
                        return $this->getResponseInternalError($e->getMessage());
                    }
@@ -440,7 +451,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
                default:
                    return $this->getResponseBadRequest("Erreur d'API");
            }

        }
        return [];
    }
@@ -544,9 +554,10 @@ class AdministrationController extends AbstractOscarController implements UsePro
                    $this->getEntityManager()->flush();
                    return $this->getResponseOk();
                } catch (\Exception $exception) {
                    return $this->getResponseInternalError("Impossible de supprimer la discipline : " . $exception->getMessage());
                    return $this->getResponseInternalError(
                        "Impossible de supprimer la discipline : " . $exception->getMessage()
                    );
                }

        }

        $datas = [
@@ -590,7 +601,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                        return $this->getResponseOk("Type d'organisation supprimée");

                    case 'POST' :
                        $type = $this->getOrganizationService()->updateOrCreateOrganizationType($this->params()->fromPost());
                        $type = $this->getOrganizationService()->updateOrCreateOrganizationType(
                            $this->params()->fromPost()
                        );
                        return $this->ajaxResponse([$type->toJson()]);

                    default:
@@ -605,7 +618,6 @@ class AdministrationController extends AbstractOscarController implements UsePro

    public function connectorsHomeAction()
    {

        $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_CONNECTOR_ACCESS);

        $configOscar = $this->getOscarConfigurationService();
@@ -648,7 +660,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
        try {
            $connectorsConfig = $configOscar->getConfiguration('connectors');
            if (!array_key_exists($connectorType, $connectorsConfig)) {
                throw new \Exception(sprintf("Aucun connecteur de type %s n'est définit dans la configuration", $connectorType));
                throw new \Exception(
                    sprintf("Aucun connecteur de type %s n'est définit dans la configuration", $connectorType)
                );
            }

            // Configuration du type de connector
@@ -656,7 +670,9 @@ class AdministrationController extends AbstractOscarController implements UsePro

            // Configuration du connector donné
            if (!array_key_exists($connectorName, $connectorTypeConfig)) {
                throw new \Exception(sprintf("Aucun connecteur %s n'est définit dans la configuration", $connectorName));
                throw new \Exception(
                    sprintf("Aucun connecteur %s n'est définit dans la configuration", $connectorName)
                );
            }

            $connectorConfig = $connectorTypeConfig[$connectorName];
@@ -664,9 +680,10 @@ class AdministrationController extends AbstractOscarController implements UsePro
            return $this->getServiceLocator()
                ->get(ConnectorService::class)
                ->getConnector($connectorType . '.' . $connectorName);

        } catch (\Exception $e) {
            throw new OscarException("Impossible de trouver la configuration du connecteur $connectorType/$connectorName");
            throw new OscarException(
                "Impossible de trouver la configuration du connecteur $connectorType/$connectorName"
            );
        }
    }

@@ -693,7 +710,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
            'connectorType' => $connectorType,
            'connectorName' => $connectorName
        ];

    }

    /**
@@ -712,7 +728,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
        try {
            $connectorsConfig = $configOscar->getConfiguration('connectors');
            if (!array_key_exists($connectorType, $connectorsConfig)) {
                throw new \Exception(sprintf("Aucun connecteur de type %s n'est définit dans la configuration", $connectorType));
                throw new \Exception(
                    sprintf("Aucun connecteur de type %s n'est définit dans la configuration", $connectorType)
                );
            }

            // Configuration du type de connector
@@ -720,7 +738,9 @@ class AdministrationController extends AbstractOscarController implements UsePro

            // Configuration du connector donné
            if (!array_key_exists($connectorName, $connectorTypeConfig)) {
                throw new \Exception(sprintf("Aucun connecteur %s n'est définit dans la configuration", $connectorName));
                throw new \Exception(
                    sprintf("Aucun connecteur %s n'est définit dans la configuration", $connectorName)
                );
            }

            $connectorConfig = $connectorTypeConfig[$connectorName];
@@ -757,7 +777,6 @@ class AdministrationController extends AbstractOscarController implements UsePro


        foreach ($personOrganizationConnectors as $connector) {

            $class = $connector['class'];
            $connectorInstance = new $class();
            $connectorInstance->init($this->getServiceLocator(), $connector['params']);
@@ -788,7 +807,6 @@ class AdministrationController extends AbstractOscarController implements UsePro

        if ($idRolePrivilege) {
            switch ($this->getHttpXMethod()) {

            }
        } else {
            switch ($this->getHttpXMethod()) {
@@ -800,16 +818,24 @@ class AdministrationController extends AbstractOscarController implements UsePro
                    /** @var Privilege $privilege */
                    $privilege = $this->getEntityManager()->getRepository(Privilege::class)->find($privilegeId);
                    if (!$privilege) {
                        return $this->getResponseBadRequest(sprintf("Le privilège %s n'existe pas/plus",
                            $privilegeId));
                        return $this->getResponseBadRequest(
                            sprintf(
                                "Le privilège %s n'existe pas/plus",
                                $privilegeId
                            )
                        );
                    }


                    /** @var Role $role */
                    $role = $this->getEntityManager()->getRepository(Role::class)->find($roleId);
                    if (!$role) {
                        return $this->getResponseBadRequest(sprintf("Le rôle %s n'existe pas/plus",
                            $roleId));
                        return $this->getResponseBadRequest(
                            sprintf(
                                "Le rôle %s n'existe pas/plus",
                                $roleId
                            )
                        );
                    }


@@ -834,9 +860,10 @@ class AdministrationController extends AbstractOscarController implements UsePro

                    /** @var Privilege $privilege */
                    foreach ($privileges as $privilege) {
                        if (!$privilege->getRoot())
                        if (!$privilege->getRoot()) {
                            $out['privileges'][] = $privilege->asArray();
                        }
                    }
                    /** @var Role $role */
                    foreach ($roles as $role) {
                        $out['roles'][] = $this->getJsonRole($role);
@@ -846,8 +873,12 @@ class AdministrationController extends AbstractOscarController implements UsePro
            }
        }

        return $this->getResponseNotImplemented(sprintf("La méthode %s n'est pas prise en charge.",
            $method));
        return $this->getResponseNotImplemented(
            sprintf(
                "La méthode %s n'est pas prise en charge.",
                $method
            )
        );
    }

    ////////////////////////////////////////////////////////////////////////////
@@ -869,8 +900,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
            $person = null;
            try {
                $p = $this->getOscarUserContextService()->getPersonFromAuthentification($auth);
                if ($p)
                if ($p) {
                    $person = $p->toJson();
                }
            } catch (\Exception $e) {
                // Pas de Personne associée à cette authentification
            }
@@ -898,7 +930,9 @@ class AdministrationController extends AbstractOscarController implements UsePro

        try {
            /** @var Authentification $authentification */
            $authentification = $this->getEntityManager()->getRepository(Authentification::class)->find($authentificationId);
            $authentification = $this->getEntityManager()->getRepository(Authentification::class)->find(
                $authentificationId
            );

            /** @var Role $role */
            $role = $this->getEntityManager()->getRepository(Role::class)->find($roleId);
@@ -930,7 +964,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                } /*catch (Doct $e ){
                    return $this->getResponseInternalError("Impossible de supprimer le role : " . $e->getMessage());
                }*/ catch (\Exception $e) {
                    return $this->getResponseInternalError(get_class($e) . " - Impossible de supprimer le role : " . $e->getMessage());
                    return $this->getResponseInternalError(
                        get_class($e) . " - Impossible de supprimer le role : " . $e->getMessage()
                    );
                }
                return $this->ajaxResponse($authentification->toJson());
        }
@@ -943,7 +979,11 @@ class AdministrationController extends AbstractOscarController implements UsePro
        $this->getOscarUserContextService()->check(Privileges::DROIT_USER_VISUALISATION);
        $userid = $this->params('userid');
        $logs = [];
        $activitiesLog = $this->getEntityManager()->getRepository(LogActivity::class)->findBy(['userId' => $userid], ['dateCreated' => 'DESC'], 100);
        $activitiesLog = $this->getEntityManager()->getRepository(LogActivity::class)->findBy(
            ['userId' => $userid],
            ['dateCreated' => 'DESC'],
            100
        );
        foreach ($activitiesLog as $log) {
            $logs[] = $log->toArray();
        }
@@ -1000,7 +1040,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
            $roleId = $this->params()->fromRoute('idrole');

            if ($roleId) {

                $this->getOscarUserContextService()->hasPrivileges(Privileges::DROIT_ROLE_EDITION);

                /** @var Role $role */
@@ -1014,7 +1053,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                    case "PUT" :
                        $this->hydrateRolewithPost($role, $request);
                        /** @var Role $otherRole */
                        $otherRole = $this->getEntityManager()->getRepository(Role::class)->findOneBy(['roleId' => $role->getRoleId()]);
                        $otherRole = $this->getEntityManager()->getRepository(Role::class)->findOneBy(
                            ['roleId' => $role->getRoleId()]
                        );
                        if ($otherRole && $role->getId() != $otherRole->getId()) {
                            return $this->getResponseBadRequest("Un rôle a déjà cet identifiant.");
                        }
@@ -1036,7 +1077,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                            $this->getEntityManager()->flush();
                            return $this->getResponseOk("Rôle supprimé");
                        } catch (ForeignKeyConstraintViolationException $e) {
                            return $this->getResponseInternalError("Impossible de supprimer le rôle '$role', il est encore utilisé et doit être conservé pour préserver l'historique");
                            return $this->getResponseInternalError(
                                "Impossible de supprimer le rôle '$role', il est encore utilisé et doit être conservé pour préserver l'historique"
                            );
                        }

                        break;
@@ -1047,10 +1090,16 @@ class AdministrationController extends AbstractOscarController implements UsePro
                // Création
                if ($this->getHttpXMethod() == "POST") {
                    $this->getOscarUserContextService()->hasPrivileges(Privileges::DROIT_ROLE_EDITION);
                    $role = $this->getEntityManager()->getRepository(Role::class)->findOneBy(['roleId' => $request->getPost('roleId')]);
                    $role = $this->getEntityManager()->getRepository(Role::class)->findOneBy(
                        ['roleId' => $request->getPost('roleId')]
                    );
                    if ($role) {
                        return $this->getResponseBadRequest(sprintf("le nom de rôle '%s' est déjà utilisé",
                            $roleId));
                        return $this->getResponseBadRequest(
                            sprintf(
                                "le nom de rôle '%s' est déjà utilisé",
                                $roleId
                            )
                        );
                    } else {
                        $role = new Role();
                        $this->hydrateRolewithPost($role, $request);
@@ -1067,12 +1116,9 @@ class AdministrationController extends AbstractOscarController implements UsePro

                return $this->getResponseNotImplemented('A FAIRE');
            }


        } catch (\Exception $e) {
            return $this->getResponseInternalError($e->getMessage());
        }

    }

    public function rolesAction()
@@ -1128,7 +1174,10 @@ class AdministrationController extends AbstractOscarController implements UsePro
            ////////////////////////////////////////////////////////////////////
            // GET : Liste des rôles
            if ($this->getHttpXMethod() == 'GET') {
                $roles = $this->getEntityManager()->getRepository(OrganizationRole::class)->findBy([], ['label' => 'ASC']);
                $roles = $this->getEntityManager()->getRepository(OrganizationRole::class)->findBy(
                    [],
                    ['label' => 'ASC']
                );
                $out = [];
                /** @var OrganizationRole $role */
                foreach ($roles as $role) {
@@ -1147,7 +1196,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                    return $this->getResponseBadRequest("Impossible d'enregistrer un rôle vide");
                }

                $exist = $this->getEntityManager()->getRepository(OrganizationRole::class)->findBy(['label' => $roleId]);
                $exist = $this->getEntityManager()->getRepository(OrganizationRole::class)->findBy(
                    ['label' => $roleId]
                );
                if ($exist) {
                    return $this->getResponseBadRequest("Un rôle porte déja cette intitulé");
                }
@@ -1168,7 +1219,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
            }

            if ($this->getHttpXMethod() == 'PUT') {

                // Contrôle du Role
                $roleId = trim($request->getPost('label'));
                if ($roleId == "") {
@@ -1210,13 +1260,14 @@ class AdministrationController extends AbstractOscarController implements UsePro

    public function typeDocumentApiAction()
    {

        $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DOCUMENTTYPE_MANAGE);
        $method = $this->getHttpXMethod();

        switch ($method) {
            case 'GET' :
                $entityRepos = $this->getEntityManager()->getRepository(TypeDocument::class)->createQueryBuilder('d')->orderBy('d.label');
                $entityRepos = $this->getEntityManager()->getRepository(TypeDocument::class)->createQueryBuilder(
                    'd'
                )->orderBy('d.label');
                $results = $entityRepos->getQuery()->getResult();
                $out = [];
                /** @var OrganizationRole $role */
@@ -1240,7 +1291,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
                try {
                    $_PUT = $_POST;
                    $typeDocumentId = $_PUT['typedocumentid'];
                    $this->getLoggerService()->info("INFO : typeDocumentActionApi() PUT mise à jour du type de document $typeDocumentId");
                    $this->getLoggerService()->info(
                        "INFO : typeDocumentActionApi() PUT mise à jour du type de document $typeDocumentId"
                    );
                    $this->getLoggerService()->info(print_r($_POST, true));
                    $typeDocument = $this->getProjectGrantService()->getTypeDocument($typeDocumentId, true);
                    $typeDocument->setLabel($_PUT['label'])
@@ -1249,7 +1302,11 @@ class AdministrationController extends AbstractOscarController implements UsePro
                    $this->getEntityManager()->flush();
                    return $this->getResponseOk();
                } catch (\Exception $e) {
                    $msg = sprintf(_("Impossible de mettre à jour le type de document %s : %s"), $typeDocument, $e->getMessage());
                    $msg = sprintf(
                        _("Impossible de mettre à jour le type de document %s : %s"),
                        $typeDocument,
                        $e->getMessage()
                    );
                    $this->getLoggerService()->error($msg);
                    return $this->getResponseInternalError($msg);
                }
@@ -1260,7 +1317,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
                $this->getEntityManager()->remove($typeDocument);
                $this->getEntityManager()->flush();
                return $this->getResponseOk('le type de document a été supprimé.');

        }

        return $this->getResponseBadRequest("Accès à l'API improbable...");
@@ -1276,6 +1332,9 @@ class AdministrationController extends AbstractOscarController implements UsePro
            'declarersRelanceJour1' => $this->getOscarConfigurationService()->getDeclarersRelanceJour1(),
            'declarersRelance2' => $this->getOscarConfigurationService()->getDeclarersRelance2(),
            'declarersRelanceJour2' => $this->getOscarConfigurationService()->getDeclarersRelanceJour2(),
            'declarersRelanceConflitMessage' => $this->getOscarConfigurationService(
            )->getDeclarersRelanceConflitMessage(),
            'declarersRelanceConflitJour' => $this->getOscarConfigurationService()->getDeclarersRelanceConflitJour(),
            /**  **/
            'validatorsRelance1' => $this->getOscarConfigurationService()->getValidatorsRelance1(),
            'validatorsRelanceJour1' => $this->getOscarConfigurationService()->getvalidatorsRelanceJour1(),
@@ -1296,6 +1355,8 @@ class AdministrationController extends AbstractOscarController implements UsePro
                $validatorsRelanceJour1 = (int)$this->params()->fromPost('validatorsRelanceJour1');
                $validatorsRelance2 = $this->params()->fromPost('validatorsRelance2');
                $validatorsRelanceJour2 = (int)$this->params()->fromPost('validatorsRelanceJour2');
                $declarersRelanceConflitMessage = $this->params()->fromPost('declarersRelanceConflitMessage');
                $declarersRelanceConflitJour = (int)$this->params()->fromPost('declarersRelanceConflitJour');

                $this->getOscarConfigurationService()->setDeclarersRelance1($declarersRelance1);
                $this->getOscarConfigurationService()->setDeclarersRelanceJour1($declarersRelanceJour1);
@@ -1305,9 +1366,12 @@ class AdministrationController extends AbstractOscarController implements UsePro
                $this->getOscarConfigurationService()->setValidatorsRelanceJour1($validatorsRelanceJour1);
                $this->getOscarConfigurationService()->setValidatorsRelance2($validatorsRelance2);
                $this->getOscarConfigurationService()->setValidatorsRelanceJour2($validatorsRelanceJour2);
                $this->getOscarConfigurationService()->setDeclarersRelanceConflitMessage(
                    $declarersRelanceConflitMessage
                );
                $this->getOscarConfigurationService()->setDeclarersRelanceConflitJour($declarersRelanceConflitJour);

                return $this->redirect()->toRoute('administration/messages');
                break;
        }

        return $this->getResponseBadRequest("Accès à l'API improbable...");
@@ -1331,7 +1395,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
        $method = $this->getHttpXMethod();

        if ($method == 'GET') {

            // Mise à jour du référentiel
            if ($this->params()->fromQuery('action') == 'update') {
                $this->getPcruService()->updateTypeContrat();
@@ -1347,9 +1410,7 @@ class AdministrationController extends AbstractOscarController implements UsePro
            }

            return [];

        } elseif ($method == "POST") {

            // Enregistrement des associations TYPE OSCAR <> TYPE PCRU
            $datas = $this->getJsonPosted();
            $idTypeActivity = $datas['oscar_id'];
@@ -1379,7 +1440,10 @@ class AdministrationController extends AbstractOscarController implements UsePro
                $response = $this->baseJsonResponse();
                $response['configuration_pcru'] = [
                    'pcru_enabled' => $this->getOscarConfigurationService()->getPcruEnabled(),
                    'pcru_host' => $this->getOscarConfigurationService()->getEditableConfKey('pcru_host', 'PCRU-Depot.dr14.cnrs.fr'),
                    'pcru_host' => $this->getOscarConfigurationService()->getEditableConfKey(
                        'pcru_host',
                        'PCRU-Depot.dr14.cnrs.fr'
                    ),
                    'pcru_user' => $this->getOscarConfigurationService()->getEditableConfKey('pcru_user', ''),
                    'pcru_pass' => $this->getOscarConfigurationService()->getEditableConfKey('pcru_pass', ''),
                    'pcru_ssh' => $this->getOscarConfigurationService()->getEditableConfKey('pcru_ssh', ''),
@@ -1407,7 +1471,6 @@ class AdministrationController extends AbstractOscarController implements UsePro
        }



        return [];
    }

+27 −1

File changed.

Preview size limit exceeded, changes collapsed.

+9 −0
Original line number Diff line number Diff line
@@ -20,6 +20,15 @@
                <textarea name="declarersRelance2" id="" cols="30" rows="10"
                          class="form-control"><?= $declarersRelance2 ?></textarea>
            </div>
            <div class="col-md-4">
                <h3><i class="icon-calendar"></i> Déclarant, conflit</h3>
                <p>
                    Envoyée à <strong>J+</strong>
                    <input type="number" name="declarersRelanceConflitJour" value="<?= $declarersRelanceConflitJour ?>"/>
                </p>
                <textarea name="declarersRelanceConflitMessage" id="" cols="30" rows="10"
                          class="form-control"><?= $declarersRelanceConflitMessage ?></textarea>
            </div>
        </div>

        <div class="row">