src/Logging/Activity/GhostDevisLog.php line 24

Open in your IDE?
  1. <?php
  2. //----------------------------------------------------------------------
  3. // src/Logging/Activity/GhostDevisLog.php
  4. //----------------------------------------------------------------------
  5. namespace App\Logging\Activity;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use Symfony\Contracts\Translation\TranslatorInterface;
  8. use App\Logging\Tools;
  9. use App\Services\LogTools;
  10. use App\Entity\Platform\Devis\Devis;
  11. use App\Entity\Platform\Devis\GhostDevis;
  12. class GhostDevisLog
  13. {
  14.     private array $pendingLogArgs = [];
  15.     public function __construct(ManagerRegistry $doctrineTranslatorInterface $translatorLogTools $logToolsTools $tools)
  16.     {
  17.         $this->em $doctrine->getManager();
  18.         $this->logTools $logTools;
  19.         $this->tools $tools;
  20.         $this->translator $translator;
  21.     }
  22.     public function logCreation(GhostDevis $ghostDevis)
  23.     {
  24.         $pendingLogArgs = [];
  25.         return $pendingLogArgs;
  26.     }
  27.     public function logChanges(GhostDevis $ghostDevis$changes)
  28.     {
  29.         $pendingLogArgs = [];
  30.         $devis $ghostDevis->getDevis();
  31.         if ($devis === null) return $pendingLogArgs;
  32.         //----------------------------------------------------------------------
  33.         // Fetch eventual info skeletond in the object
  34.         $loggingData $this->logTools->handleLoggingData($ghostDevis);
  35.         $info $loggingData['info'];
  36.         $specialAuthor $loggingData['special_author'];
  37.         $ignore $loggingData['ignore'];
  38.         if ($ignore) return $pendingLogArgs;
  39.         //----------------------------------------------------------------------
  40.         // Init base log args (for Devis, not the GhostDevis)
  41.         // This does not contain action
  42.         $args $this->initArgs($devis$loggingData);
  43.         //----------------------------------------------------------------------
  44.         // Plan.io Task #4475 : I want to know if a devis changes algorithm
  45.         $action "ghost_devis_edit";
  46.         // See what changed and log (members first)
  47.         foreach ($changes as $key => $change)
  48.         {
  49.             // Something to skip ?
  50.             if ($key != "algo")
  51.             {
  52.                 continue;
  53.             }
  54.             $name $this->logTools->camelToSnakeCase($key);
  55.             $args["action"]    = $action."_".$name;
  56.             $before $change[0];
  57.             $after $change[1];
  58.             $args["old_value"] = $before;
  59.             $args["new_value"] = $after;
  60.             switch ($before)
  61.             {
  62.                 case GhostDevis::algo_original:
  63.                     $args["old_value"] = $this->translator->trans('ghost_devis_used_method_original')." "
  64.                                         .$this->translator->trans('ghost_devis_used_method_original_info');
  65.                     break;
  66.                 case GhostDevis::algo_makeover:
  67.                     $args["old_value"] = $this->translator->trans('ghost_devis_used_method_makeover')." "
  68.                                         .$this->translator->trans('ghost_devis_used_method_makeover_info');
  69.                     break;
  70.                 default:
  71.                     $args["old_value"] = $this->translator->trans('ghost_devis_used_method_unknown');
  72.                     break;
  73.             }
  74.             switch ($after)
  75.             {
  76.                 case GhostDevis::algo_original:
  77.                     $args["new_value"] = $this->translator->trans('ghost_devis_used_method_original')." "
  78.                                         .$this->translator->trans('ghost_devis_used_method_original_info');
  79.                     break;
  80.                 case GhostDevis::algo_makeover:
  81.                     $args["new_value"] = $this->translator->trans('ghost_devis_used_method_makeover')." "
  82.                                         .$this->translator->trans('ghost_devis_used_method_makeover_info');
  83.                     break;
  84.                 default:
  85.                     $args["new_value"] = $this->translator->trans('ghost_devis_used_method_unknown');
  86.                     break;
  87.             }
  88.             $pendingLogArgs[] = $args;
  89.         }
  90.         return $pendingLogArgs;
  91.     }
  92.     public function logRemoval(GhostDevis $ghostDevis)
  93.     {
  94.         $pendingLogArgs = [];
  95.         return $pendingLogArgs;
  96.     }
  97.     private function initArgs(Devis $devis$loggingData)
  98.     {
  99.         $receiver $devis->getReceiver();
  100.         $society $devis->getSociety();
  101.         $societyGroup $society->getSocietyGroup();
  102.         $mission $devis->getMission();
  103.         $args = array(
  104.             "object_id"                    =>    $devis->getId(),
  105.             "object_bundle"                =>    "Platform",
  106.             "object_entity"                =>    "Devis",
  107.             "object_display"            =>    $devis->display(),
  108.             "object_client_id"            =>    $receiver !== null $receiver->getId() : null,
  109.             "object_client_display"        =>    $receiver !== null $receiver->getName() : null,
  110.             "object_mission_id"            =>    $mission !== null $mission->getId() : null,
  111.             "object_mission_display"    =>    $mission !== null $mission->getRef() : null,
  112.             "society_group"                =>    $societyGroup,
  113.             "society"                    =>    $society,
  114.             "info"                        =>    $loggingData['info'],
  115.             "special_author"            =>    $loggingData['special_author'],
  116.         );
  117.         return $args;
  118.     }
  119. }