Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\LeadBundle\Command; | |
use Doctrine\ORM\Exception\ORMException; | |
use Mautic\CoreBundle\Helper\CoreParametersHelper; | |
use Mautic\LeadBundle\Entity\CompanyLeadRepository; | |
use Psr\Log\LoggerInterface; | |
use Symfony\Component\Console\Command\Command; | |
use Symfony\Component\Console\Input\InputInterface; | |
use Symfony\Component\Console\Output\OutputInterface; | |
use Symfony\Contracts\Translation\TranslatorInterface; | |
class DeleteContactSecondaryCompaniesCommand extends Command | |
{ | |
protected static $defaultDescription = 'Deletes all contact\'s secondary companies.'; | |
public const NAME = 'mautic:contact:delete:secondary-companies'; | |
public function __construct(private LoggerInterface $logger, private TranslatorInterface $translator, private CoreParametersHelper $coreParametersHelper, private CompanyLeadRepository $companyLeadsRepository) | |
{ | |
parent::__construct(); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function configure(): void | |
{ | |
$this->setName(self::NAME) | |
->setHelp( | |
<<<'EOT' | |
The <info>%command.name%</info> command deletes non-primary companies of every contact. | |
<info>php %command.full_name%</info> | |
EOT | |
); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function execute(InputInterface $input, OutputInterface $output): int | |
{ | |
$allowMultiple = $this->coreParametersHelper->get('contact_allow_multiple_companies'); | |
// We process only if the config is set to false | |
if ($allowMultiple) { | |
$output->writeln($this->translator->trans('mautic.lead.command.delete_contact_secondary_company.allow_multiple_enabled')); | |
return Command::SUCCESS; | |
} | |
try { | |
$this->companyLeadsRepository->removeAllSecondaryCompanies(); | |
} catch (ORMException $e) { | |
$errorMessage = $this->translator->trans('mautic.lead.command.error', ['%name%' => self::NAME, '%error%' => $e->getMessage()]); | |
$output->writeln($errorMessage); | |
$this->logger->error($errorMessage); | |
} | |
$output->writeln($this->translator->trans('mautic.lead.command.delete_contact_secondary_company.success')); | |
return Command::SUCCESS; | |
} | |
} | |