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

Intégration de signature 2.3.1

parent 76d69612
Loading
Loading
Loading
Loading
Loading
+1 −1
Changes for module/Oscar/src/Oscar/Entity/AbstractVersionnedDocument.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ abstract class AbstractVersionnedDocument
    }

    /**
     * @param datetime $dateUpdoad
     * @param \DateTime $dateUpdoad
     */
    public function setDateUpdoad($dateUpdoad)
    {
+28 −0
Changes for module/Oscar/src/Oscar/Service/ContractDocumentService.php: 28 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -167,6 +167,9 @@ class ContractDocumentService implements UseOscarConfigurationService, UseEntity
            $activity->getLabel(),
        );

        $fileSize = $document->getFileSize();
        $fileMime = $document->getFileTypeMime();

        // Patch (texte trop long)
        if( strlen($contextShort) > 255 ){
            $contextShort = substr($contextShort, 0, 250) . '...';
@@ -195,8 +198,29 @@ class ContractDocumentService implements UseOscarConfigurationService, UseEntity
            }
        }

        $errors = [];
        // Configuration du Flow / Comparaison à la configuration initiale
        foreach ($signatureFlowDatas['steps'] as &$step) {

            if(array_key_exists('limitFormat', $step) && !in_array($fileMime, $step['limitFormat']) ) {
                $errors[] = sprintf(
                    _("L'étape '%s' (parapheur %s) n'autorise pas ce format de fichier '%s'"),
                    $step['label'],
                    $step['letterfilename'],
                    $fileMime,
                );
            }

            if($step['limitSize'] > 0 && $fileSize > $step['limitSize']) {
                $limitSize = ceil(intval($step['limitSize'])/1024/1024);
                $errors[] = sprintf(
                    _("L'étape '%s' (parapheur %s) n'autorise pas des fichiers dont la taille dépasse les %sMo"),
                    $step['label'],
                    $step['letterfilename'],
                    $limitSize,
                );
            }

            if ($step['editable']) {
                if (array_key_exists($step['id'], $sortedFlowDatas)) {
                    $config = $sortedFlowDatas[$step['id']];
@@ -231,6 +255,10 @@ class ContractDocumentService implements UseOscarConfigurationService, UseEntity
            }
        }

        if( count($errors) ){
            throw new OscarException("Impossible de signer ce document : " . implode(", ", $errors));
        }

        if ($signatureFlowDatas['missing_recipients']) {
            throw new OscarException("Ils manquent des destinataires pour déclencher le processus de signature");
        }
+2 −1
Changes for module/Oscar/src/Oscar/Service/OrganizationService.php: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ use Oscar\Exception\OscarException;
use Oscar\Formatter\OscarFormatterConst;
use Oscar\Formatter\OscarFormatterFactory;
use Oscar\Import\Organization\ImportOrganizationLdapStrategy;
use Oscar\Strategy\Search\ElasticSearchEngine;
use Oscar\Strategy\Search\IOrganizationSearchStrategy;
use Oscar\Traits\UseEntityManager;
use Oscar\Traits\UseEntityManagerTrait;
@@ -909,7 +910,7 @@ class OrganizationService implements UseOscarConfigurationService, UseEntityMana

        $body['query']['bool']['filter'] = $filtersQuery;

        $dt = $this->getSearchEngineStrategy()->searchRaw($search, 10000, $body);
        $dt = $this->getSearchEngineStrategy()->searchRaw($search, ElasticSearchEngine::MAX_LIMIT, $body);
        $total = $dt['hits']['total']['value'];
        $pages = ceil($total/$size);

+2 −1
Changes for module/Oscar/src/Oscar/Service/PersonService.php: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ use Oscar\Entity\RoleRepository;
use Oscar\Entity\ValidationPeriod;
use Oscar\Exception\OscarException;
use Oscar\Formatter\OscarFormatterConst;
use Oscar\Strategy\Search\ElasticSearchEngine;
use Oscar\Strategy\Search\IPersonISearchStrategy;
use Oscar\Provider\Privileges;
use Oscar\Strategy\Search\PersonSearchStrategy;
@@ -213,7 +214,7 @@ class PersonService implements UseOscarConfigurationService, UseEntityManager, U
                ]
            ];
        }
        $result = $this->getSearchEngineStrategy()->searchRaw($what,1000, $body);
        $result = $this->getSearchEngineStrategy()->searchRaw($what,ElasticSearchEngine::MAX_LIMIT, $body);
        $response = [];
        foreach ($result["hits"]["hits"] as $hit) {
            $response[] = $hit["_source"];
+3 −0
Changes for module/Oscar/src/Oscar/Service/ProjectGrantApiService.php: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -747,6 +747,7 @@ class ProjectGrantApiService implements
            $allowProcessCreate = false;
            $allowProcessDelete = false;
            $allowProcessUpdate = false;
            $unsignableMassages = [];

            // Il y a un processus en cours
            if ($process) {
@@ -771,8 +772,10 @@ class ProjectGrantApiService implements

                $allowProcessCreate = true;
                $sService = $this->getServiceContainer()->get(SignatureService::class);

                if (!array_key_exists($doc->getFileTypeMime(), $sService->getSignatureConfigurationService()->getDocumentMimes())) {
                    $allowProcessCreate = false;
                    $unsignableMassages[] = "Type de document non supporté";
                }
            }

Loading