src/Services/Config/OptionConfigTools.php line 21

Open in your IDE?
  1. <?php
  2. //----------------------------------------------------------------------
  3. // src/Services/Config/OptionConfigTools.php
  4. //----------------------------------------------------------------------
  5. namespace App\Services\Config;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use App\Entity\Access;
  8. use App\Entity\SocietyGroup;
  9. use App\Entity\Config\OptionConfig;
  10. use App\Entity\Config\Module;
  11. use App\Entity\Config\ModuleConfig;
  12. use App\Services\LogTools;
  13. class OptionConfigTools
  14. {
  15.     public function __construct(ManagerRegistry $doctrineLogTools $logTools)
  16.     {
  17.         $this->em $doctrine->getManager();
  18.         $this->logTools $logTools;
  19.     }
  20.     // public function isActive(SocietyGroup $societyGroup, $optionName)
  21.     // {
  22.     //     $optionConfig = $this->em->getRepository(OptionConfig::class)
  23.     //         ->findOneBy(array(
  24.     //             'societyGroup'        =>    $societyGroup,
  25.     //             'name'                =>    $optionName,
  26.     //             'value'                =>    1,
  27.     //         ));
  28.     //     if ($config !== null)
  29.     //     {
  30.     //         return true;
  31.     //     }
  32.     //     return false;
  33.     // }
  34.     // Plan.io Task #3898.Zones.ZoneProducts.iTasks
  35.     public function isActiveGenITasks(SocietyGroup $societyGroup)
  36.     {
  37.         // First of all
  38.         // Is the module active ?
  39.         $module $this->em->getRepository(Module::class)->findOneByCode(Module::MODULE_ITASK);
  40.         if ($module === null)
  41.         {
  42.             // This should not happen
  43.             return false;
  44.         }
  45.         $config $this->em->getRepository(ModuleConfig::class)
  46.             ->findOneBy(array(
  47.                 'societyGroup'        =>    $societyGroup,
  48.                 'module'            =>    $module,
  49.                 'value'                =>    1
  50.             ));
  51.         if ($config === null)
  52.         {
  53.             // Module not activated for this society group
  54.             return false;
  55.         }
  56.         // Next, has the user activated the option ?
  57.         $option $this->em->getRepository(OptionConfig::class)->findOneBy(array(
  58.             'societyGroup'        =>    $societyGroup,
  59.             'code'                =>    OptionConfig::AUTO_ITASK_GEN_CODE,
  60.             'value'                =>    1,
  61.         ));
  62.         if ($option === null)
  63.         {
  64.             // Option not activated for this society group
  65.             return false;
  66.         }
  67.         // All looks good
  68.         return true;
  69.     }
  70.     public function isActiveByCode(SocietyGroup $societyGroup$optionCode)
  71.     {
  72.         $optionConfig $this->em->getRepository(OptionConfig::class)
  73.             ->findOneBy(array(
  74.                 'societyGroup'        =>    $societyGroup,
  75.                 'code'                =>    $optionCode,
  76.                 'value'                =>    1,
  77.             ));
  78.         if ($optionConfig !== null)
  79.         {
  80.             return true;
  81.         }
  82.         return false;
  83.     }
  84.     // Plan.io Task #4327
  85.     public function isActive_ClientAccountAuto(SocietyGroup $societyGroup)
  86.     {
  87.         $optionConfig $this->em->getRepository(OptionConfig::class)
  88.             ->findOneBy(array(
  89.                 'societyGroup'        =>    $societyGroup,
  90.                 'code'                =>    OptionConfig::CLIENT_ACCOUNT_AUTO_CODE,
  91.                 'value'                =>    1,
  92.             ));
  93.         if ($optionConfig !== null)
  94.         {
  95.             return true;
  96.         }
  97.         return false;
  98.     }
  99.     // Plan.io Task #4448
  100.     public function isActive_IkeaBP(SocietyGroup $societyGroup)
  101.     {
  102.         $optionConfig $this->em->getRepository(OptionConfig::class)
  103.             ->findOneBy(array(
  104.                 'societyGroup'        =>    $societyGroup,
  105.                 'code'                =>    OptionConfig::IKEA_BP_CODE,
  106.                 'value'                =>    1,
  107.             ));
  108.         if ($optionConfig !== null)
  109.         {
  110.             return true;
  111.         }
  112.         return false;
  113.     }
  114.     // Plan.io Task #4383
  115.     public function isActive_OnlineBooking(SocietyGroup $societyGroup)
  116.     {
  117.         $optionConfig $this->em->getRepository(OptionConfig::class)
  118.             ->findOneBy(array(
  119.                 'societyGroup'        =>    $societyGroup,
  120.                 'code'                =>    OptionConfig::ONLINE_BOOKING_CODE,
  121.                 'value'                =>    1,
  122.             ));
  123.         if ($optionConfig !== null)
  124.         {
  125.             return true;
  126.         }
  127.         return false;
  128.     }
  129.     // Plan.io Task #3891
  130.     public function isActive_InvoiceAutoAccount(SocietyGroup $societyGroup)
  131.     {
  132.         $optionConfig $this->em->getRepository(OptionConfig::class)
  133.             ->findOneBy(array(
  134.                 'societyGroup'        =>    $societyGroup,
  135.                 'code'                =>    OptionConfig::INVOICE_AUTO_ACCOUNT_CODE,
  136.                 'value'                =>    1,
  137.             ));
  138.         if ($optionConfig !== null)
  139.         {
  140.             return true;
  141.         }
  142.         return false;
  143.     }
  144.     // Plan.io Task #4653
  145.     public function isActive_InstallmentAutoAccount(SocietyGroup $societyGroup): bool
  146.     {
  147.         $optionConfig $this->em->getRepository(OptionConfig::class)
  148.             ->findOneBy(array(
  149.                 'societyGroup'        =>    $societyGroup,
  150.                 'code'                =>    OptionConfig::INSTALLMENT_AUTO_ACCOUNT_CODE,
  151.                 'value'                =>    1,
  152.             ));
  153.         if ($optionConfig !== null)
  154.         {
  155.             return true;
  156.         }
  157.         return false;
  158.     }
  159.     // Plan.io Task #4426
  160.     public function isActive_CostAutoAccount(SocietyGroup $societyGroup)
  161.     {
  162.         $optionConfig $this->em->getRepository(OptionConfig::class)
  163.             ->findOneBy(array(
  164.                 'societyGroup'        =>    $societyGroup,
  165.                 'code'                =>    OptionConfig::COST_AUTO_ACCOUNT_CODE,
  166.                 'value'                =>    1,
  167.             ));
  168.         if ($optionConfig !== null)
  169.         {
  170.             return true;
  171.         }
  172.         return false;
  173.     }
  174.     // Plan.io Task #3868
  175.     public function isActive_HRVars(SocietyGroup $societyGroup)
  176.     {
  177.         $optionConfig $this->em->getRepository(OptionConfig::class)
  178.             ->findOneBy(array(
  179.                 'societyGroup'        =>    $societyGroup,
  180.                 'code'                =>    OptionConfig::HR_VARS_CODE,
  181.                 'value'                =>    1,
  182.             ));
  183.         if ($optionConfig !== null)
  184.         {
  185.             return true;
  186.         }
  187.         return false;
  188.     }
  189.     // Plan.io Task #3664
  190.     public function isActive_IkeaDevisTemplate(SocietyGroup $societyGroup)
  191.     {
  192.         $optionConfig $this->em->getRepository(OptionConfig::class)
  193.             ->findOneBy(array(
  194.                 'societyGroup'        =>    $societyGroup,
  195.                 'code'                =>    OptionConfig::IKEA_DEVIS_TEMPLATE_CODE,
  196.                 'value'                =>    1,
  197.             ));
  198.         if ($optionConfig !== null)
  199.         {
  200.             return true;
  201.         }
  202.         return false;
  203.     }
  204.     // Plan.io Task #3605
  205.     public function isActive_GhostInvoicing(SocietyGroup $societyGroup)
  206.     {
  207.         $optionConfig $this->em->getRepository(OptionConfig::class)
  208.             ->findOneBy(array(
  209.                 'societyGroup'        =>    $societyGroup,
  210.                 'code'                =>    OptionConfig::GHOST_INVOICING_CODE,
  211.                 'value'                =>    1,
  212.             ));
  213.         if ($optionConfig !== null)
  214.         {
  215.             return true;
  216.         }
  217.         return false;
  218.     }
  219.     public function isActive_WebappMaker(SocietyGroup $societyGroup)
  220.     {
  221.         $optionConfig $this->em->getRepository(OptionConfig::class)
  222.             ->findOneBy(array(
  223.                 'societyGroup'        =>    $societyGroup,
  224.                 'code'                =>    OptionConfig::WEBAPP_MAKER_CODE,
  225.                 'value'                =>    1,
  226.             ));
  227.         if ($optionConfig !== null)
  228.         {
  229.             return true;
  230.         }
  231.         return false;
  232.     }
  233.     public function isActive_missionStatusChangeJcaf(SocietyGroup $societyGroup)
  234.     {
  235.         $optionConfig $this->em->getRepository(OptionConfig::class)
  236.             ->findOneBy(array(
  237.                 'societyGroup'        =>    $societyGroup,
  238.                 'code'                =>    OptionConfig::MISSION_STATUS_CHANGE_JCAF_CODE,
  239.                 'value'                =>    1,
  240.             ));
  241.         if ($optionConfig !== null)
  242.         {
  243.             return true;
  244.         }
  245.         return false;
  246.     }
  247.     public function isActive_helpTask(SocietyGroup $societyGroup)
  248.     {
  249.         $optionConfig $this->em->getRepository(OptionConfig::class)
  250.             ->findOneBy(array(
  251.                 'societyGroup'        =>    $societyGroup,
  252.                 'code'                =>    OptionConfig::HELP_TASK_CODE,
  253.                 'value'                =>    1,
  254.             ));
  255.         if ($optionConfig !== null)
  256.         {
  257.             return true;
  258.         }
  259.         return false;
  260.     }
  261.     // Plan.io Task #4330
  262.     public function isActive_planningOptimisation(SocietyGroup $societyGroup)
  263.     {
  264.         $optionConfig $this->em->getRepository(OptionConfig::class)
  265.             ->findOneBy(array(
  266.                 'societyGroup'        =>    $societyGroup,
  267.                 'code'                =>    OptionConfig::PLANNING_OPTIMISATION_CODE,
  268.                 'value'                =>    1,
  269.             ));
  270.         if ($optionConfig !== null)
  271.         {
  272.             return true;
  273.         }
  274.         return false;
  275.     }
  276.     public function isActive_webappKvisitReport(SocietyGroup $societyGroup)
  277.     {
  278.         $optionConfig $this->em->getRepository(OptionConfig::class)
  279.             ->findOneBy(array(
  280.                 'societyGroup'        =>    $societyGroup,
  281.                 'code'                =>    OptionConfig::WEBAPP_KVISIT_REPORT_CODE,
  282.                 'value'                =>    1,
  283.             ));
  284.         if ($optionConfig !== null)
  285.         {
  286.             return true;
  287.         }
  288.         return false;
  289.     }
  290.     public function isActive_individualTimelineDefault(SocietyGroup $societyGroup)
  291.     {
  292.         $optionConfig $this->em->getRepository(OptionConfig::class)
  293.             ->findOneBy(array(
  294.                 'societyGroup'        =>    $societyGroup,
  295.                 'code'                =>    OptionConfig::INDIVIDUAL_TIMELINE_DEFAULT_CODE,
  296.                 'value'                =>    1,
  297.             ));
  298.         if ($optionConfig !== null)
  299.         {
  300.             return true;
  301.         }
  302.         return false;
  303.     }
  304.     public function isActive_individualTimelineSortDefault(SocietyGroup $societyGroup)
  305.     {
  306.         $optionConfig $this->em->getRepository(OptionConfig::class)
  307.             ->findOneBy(array(
  308.                 'societyGroup'        =>    $societyGroup,
  309.                 'code'                =>    OptionConfig::INDIVIDUAL_TIMELINE_SORT_DEFAULT_CODE,
  310.                 'value'                =>    1,
  311.             ));
  312.         if ($optionConfig !== null)
  313.         {
  314.             return true;
  315.         }
  316.         return false;
  317.     }
  318.     public function isActive_autoTaskReminder(SocietyGroup $societyGroup)
  319.     {
  320.         $optionConfig $this->em->getRepository(OptionConfig::class)
  321.             ->findOneBy(array(
  322.                 'societyGroup'        =>    $societyGroup,
  323.                 'code'                =>    OptionConfig::AUTO_TASK_REMINDER_CODE,
  324.                 'value'                =>    1,
  325.             ));
  326.         if ($optionConfig !== null)
  327.         {
  328.             return true;
  329.         }
  330.         return false;
  331.     }
  332.     public function isActive_autoItaskGen(SocietyGroup $societyGroup)
  333.     {
  334.         $optionConfig $this->em->getRepository(OptionConfig::class)
  335.             ->findOneBy(array(
  336.                 'societyGroup'        =>    $societyGroup,
  337.                 'code'                =>    OptionConfig::AUTO_ITASK_GEN_CODE,
  338.                 'value'                =>    1,
  339.             ));
  340.         if ($optionConfig !== null)
  341.         {
  342.             return true;
  343.         }
  344.         return false;
  345.     }
  346.     public function isActive_autoInvoicingJcaf(SocietyGroup $societyGroup)
  347.     {
  348.         $optionConfig $this->em->getRepository(OptionConfig::class)
  349.             ->findOneBy(array(
  350.                 'societyGroup'        =>    $societyGroup,
  351.                 'code'                =>    OptionConfig::AUTO_INVOICING_JCAF_CODE,
  352.                 'value'                =>    1,
  353.             ));
  354.         if ($optionConfig !== null)
  355.         {
  356.             return true;
  357.         }
  358.         return false;
  359.     }
  360.     public function isActive_IkeaHotline(SocietyGroup $societyGroup)
  361.     {
  362.         $optionConfig $this->em->getRepository(OptionConfig::class)
  363.             ->findOneBy(array(
  364.                 'societyGroup'        =>    $societyGroup,
  365.                 'code'                =>    OptionConfig::IKEA_HOTLINE_CODE,
  366.                 'value'                =>    1,
  367.             ));
  368.         if ($optionConfig !== null)
  369.         {
  370.             return true;
  371.         }
  372.         return false;
  373.     }
  374.     public function isActive_MobileAppArtisan(SocietyGroup $societyGroup)
  375.     {
  376.         $optionConfig $this->em->getRepository(OptionConfig::class)
  377.             ->findOneBy(array(
  378.                 'societyGroup'        =>    $societyGroup,
  379.                 'code'                =>    OptionConfig::ARTISAN_TOOLS_MOBILE_APP_CODE,
  380.                 'value'                =>    1,
  381.             ));
  382.         if ($optionConfig !== null)
  383.         {
  384.             return true;
  385.         }
  386.         return false;
  387.     }
  388.     // Plan.io Task #4652
  389.     public function isActive_HandleSocietyGroupFav(SocietyGroup $societyGroup)
  390.     {
  391.         $optionConfig $this->em->getRepository(OptionConfig::class)
  392.             ->findOneBy(array(
  393.                 'societyGroup'        =>    $societyGroup,
  394.                 'code'                =>    OptionConfig::HANDLE_SOCIETY_GROUP_FAV_CODE,
  395.                 'value'                =>    1,
  396.             ));
  397.         if ($optionConfig !== null)
  398.         {
  399.             return true;
  400.         }
  401.         return false;
  402.     }
  403. }