瀏覽代碼

add the client property to organization creation requests

Olivier Massot 1 年之前
父節點
當前提交
fa0b973462

+ 17 - 0
src/ApiResources/Organization/OrganizationCreationRequest.php

@@ -115,6 +115,12 @@ class OrganizationCreationRequest
      */
     private bool $createWebsite = true;
 
+    /**
+     * La structure est-elle cliente de Opentalent
+     * @var bool
+     */
+    private bool $client = false;
+
     /**
      * For testing purposes only
      * @var bool
@@ -330,6 +336,17 @@ class OrganizationCreationRequest
         return $this;
     }
 
+    public function isClient(): bool
+    {
+        return $this->client;
+    }
+
+    public function setClient(bool $client): self
+    {
+        $this->client = $client;
+        return $this;
+    }
+
     public function isAsync(): bool
     {
         return $this->async;

+ 2 - 2
src/Service/Dolibarr/DolibarrApiService.php

@@ -187,11 +187,11 @@ class DolibarrApiService extends ApiRequestService
      * @param Organization $organization
      * @return mixed
      */
-    public function createSociety(Organization $organization): mixed
+    public function createSociety(Organization $organization, bool $client = false): mixed
     {
         $body = [
             'name' => $organization->getName(),
-            'client' => 2,
+            'client' => $client ? 1 : 2,
             'code_client' => -1,
             'import_key' => 'crm',
             'array_options' => ['options_2iopen_organization_id' => $organization->getId()]

+ 5 - 2
src/Service/Organization/OrganizationFactory.php

@@ -101,7 +101,10 @@ class OrganizationFactory
             $this->entityManager->flush();
 
             // Création de la société Dolibarr
-            $dolibarrId = $this->dolibarrApiService->createSociety($organization);
+            $dolibarrId = $this->dolibarrApiService->createSociety(
+                $organization,
+                $organizationCreationRequest->isClient()
+            );
             $this->logger->info("New dolibarr structure created (uid : " . $dolibarrId . ")");
 
             $this->entityManager->commit();
@@ -250,7 +253,6 @@ class OrganizationFactory
         return $organization;
     }
 
-
     /**
      * Créé une nouvelle instance d'organisation
      *
@@ -332,6 +334,7 @@ class OrganizationFactory
      * @param OrganizationCreationRequest $organizationCreationRequest The OrganizationCreationRequest object containing the required data.
      *
      * @return ContactPoint The newly created instance of the ContactPoint class.
+     * @throws NumberParseException
      */
     protected function makeContactPoint(OrganizationCreationRequest $organizationCreationRequest): ContactPoint
     {