<?php
//----------------------------------------------------------------------
// src/Services/Config/OptionConfigTools.php
//----------------------------------------------------------------------
namespace App\Services\Config;
use Doctrine\Persistence\ManagerRegistry;
use App\Entity\Access;
use App\Entity\SocietyGroup;
use App\Entity\Config\OptionConfig;
use App\Entity\Config\Module;
use App\Entity\Config\ModuleConfig;
use App\Services\LogTools;
class OptionConfigTools
{
public function __construct(ManagerRegistry $doctrine, LogTools $logTools)
{
$this->em = $doctrine->getManager();
$this->logTools = $logTools;
}
// public function isActive(SocietyGroup $societyGroup, $optionName)
// {
// $optionConfig = $this->em->getRepository(OptionConfig::class)
// ->findOneBy(array(
// 'societyGroup' => $societyGroup,
// 'name' => $optionName,
// 'value' => 1,
// ));
// if ($config !== null)
// {
// return true;
// }
// return false;
// }
// Plan.io Task #3898.Zones.ZoneProducts.iTasks
public function isActiveGenITasks(SocietyGroup $societyGroup)
{
// First of all
// Is the module active ?
$module = $this->em->getRepository(Module::class)->findOneByCode(Module::MODULE_ITASK);
if ($module === null)
{
// This should not happen
return false;
}
$config = $this->em->getRepository(ModuleConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'module' => $module,
'value' => 1
));
if ($config === null)
{
// Module not activated for this society group
return false;
}
// Next, has the user activated the option ?
$option = $this->em->getRepository(OptionConfig::class)->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::AUTO_ITASK_GEN_CODE,
'value' => 1,
));
if ($option === null)
{
// Option not activated for this society group
return false;
}
// All looks good
return true;
}
public function isActiveByCode(SocietyGroup $societyGroup, $optionCode)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => $optionCode,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #4327
public function isActive_ClientAccountAuto(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::CLIENT_ACCOUNT_AUTO_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #4448
public function isActive_IkeaBP(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::IKEA_BP_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #4383
public function isActive_OnlineBooking(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::ONLINE_BOOKING_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #3891
public function isActive_InvoiceAutoAccount(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::INVOICE_AUTO_ACCOUNT_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #4653
public function isActive_InstallmentAutoAccount(SocietyGroup $societyGroup): bool
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::INSTALLMENT_AUTO_ACCOUNT_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #4426
public function isActive_CostAutoAccount(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::COST_AUTO_ACCOUNT_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #3868
public function isActive_HRVars(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::HR_VARS_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #3664
public function isActive_IkeaDevisTemplate(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::IKEA_DEVIS_TEMPLATE_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #3605
public function isActive_GhostInvoicing(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::GHOST_INVOICING_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_WebappMaker(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::WEBAPP_MAKER_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_missionStatusChangeJcaf(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::MISSION_STATUS_CHANGE_JCAF_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_helpTask(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::HELP_TASK_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #4330
public function isActive_planningOptimisation(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::PLANNING_OPTIMISATION_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_webappKvisitReport(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::WEBAPP_KVISIT_REPORT_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_individualTimelineDefault(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::INDIVIDUAL_TIMELINE_DEFAULT_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_individualTimelineSortDefault(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::INDIVIDUAL_TIMELINE_SORT_DEFAULT_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_autoTaskReminder(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::AUTO_TASK_REMINDER_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_autoItaskGen(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::AUTO_ITASK_GEN_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_autoInvoicingJcaf(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::AUTO_INVOICING_JCAF_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_IkeaHotline(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::IKEA_HOTLINE_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
public function isActive_MobileAppArtisan(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::ARTISAN_TOOLS_MOBILE_APP_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
// Plan.io Task #4652
public function isActive_HandleSocietyGroupFav(SocietyGroup $societyGroup)
{
$optionConfig = $this->em->getRepository(OptionConfig::class)
->findOneBy(array(
'societyGroup' => $societyGroup,
'code' => OptionConfig::HANDLE_SOCIETY_GROUP_FAV_CODE,
'value' => 1,
));
if ($optionConfig !== null)
{
return true;
}
return false;
}
}