dolibarrConnection->executeQuery($sql, $params); } /** * Remplace le ou les commerciaux actuellement affectés à la société par l'utilisateur 'api' * (pas de solution trouvée via l'API). * * @return void * * @throws \Doctrine\DBAL\Exception */ public function updateSocietyCommercialsWithApi(int $societyId) { $apiUserId = 8; $this->executeQuery( "DELETE FROM llx_societe_commerciaux WHERE fk_soc = ?", [$societyId] ); $this->executeQuery( "INSERT INTO llx_societe_commerciaux (fk_soc, fk_user) VALUES (?, ?)", [$societyId, $apiUserId] ); } /** * Enregistre une entrée dans le journal des actions commercial de la société Dolibarr * (pas de solution trouvée via l'API). * * @throws \Exception */ public function addActionComm(int $societyId, string $title, string $message): void { $tz = new \DateTimeZone('Europe/Paris'); $now = DatesUtils::new('now', $tz)->format('Y-m-d H:i:s'); $apiUserId = 8; $sql = "INSERT INTO llx_actioncomm (fk_soc, ref, code, label, note, datep, datep2, datec, fk_user_author, fk_user_mod, fk_user_action, percent) VALUES (?, -1, 'AC_OT_ONLINE_STORE', ?, ?, ?, ?, ?, ?, ?, ?, -1)"; $this->executeQuery($sql, [ $societyId, $title, $message, $now, $now, $now, $apiUserId, $apiUserId, $apiUserId ]); } /** * Retourne le nom du produit dans Dolibarr. * * @param SettingsProductEnum $contractType Produit concerné (@see SettingsProductEnum) */ public function getDolibarrProductName(SettingsProductEnum $contractType, bool $isTrial = false): ?string { return match ($contractType) { SettingsProductEnum::ARTIST => 'Opentalent Artist', SettingsProductEnum::ARTIST_PREMIUM => $isTrial ? 'Opentalent Artist Premium (Essai)' : 'Opentalent Artist Premium', SettingsProductEnum::SCHOOL => 'Opentalent School', SettingsProductEnum::SCHOOL_PREMIUM => $isTrial ? 'Opentalent School Premium (Essai)' : 'Opentalent School Premium', SettingsProductEnum::MANAGER => 'Opentalent Manager', SettingsProductEnum::MANAGER_PREMIUM => 'Opentalent Manager Premium', default => null, }; } }