Untitled

 avatar
unknown
plain_text
3 years ago
1.1 kB
5
Indexable
    public function actToProspect(string $constant, array $contact): void
    {
        /** @var Prospect $prospect */
        $prospect = $this->hydratorManager->hydrate($contact, ProspectHydrator::class);

        try {
            /** @var Prospect $prospectExisting */
            $prospectExisting = $this->sqlServerEntityManager->getRepository(Prospect::class)->findOneBy(['idBitrix' => $prospect->getIdBitrix()]);

            if ($prospectExisting) {
                if(BitrixEventsEnum::ONCRMCONTACTUPDATE === $constant) {
                    $prospect->setId($prospectExisting->getId());
                } elseif ($constant === BitrixEventsEnum::ONCRMCONTACTDELETE) {
                    $this->sqlServerEntityManager->remove($prospect);
                }
            } else {
                $this->sqlServerEntityManager->persist($prospect);
            }

            $this->sqlServerEntityManager->flush();
        } catch (\Exception $e) {
            throw new \Exception('Erreur de connexion avec la base de données : ' . $e->getMessage(), 500);
        }
    }