src/Logging/HR/Equipment/MileageLog.php line 21

Open in your IDE?
  1. <?php
  2. //----------------------------------------------------------------------
  3. // src/Logging/HR/Equipment/MileageLog.php
  4. //----------------------------------------------------------------------
  5. namespace App\Logging\HR\Equipment;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use App\Entity\Equipment\Mileage;
  8. use App\Logging\Tools;
  9. use App\Services\LogTools;
  10. class MileageLog
  11. {
  12.     private array $pendingLogArgs = [];
  13.     public function __construct(ManagerRegistry $doctrineLogTools $logToolsTools $tools)
  14.     {
  15.         $this->em $doctrine->getManager();
  16.         $this->logTools $logTools;
  17.         $this->tools $tools;
  18.     }
  19.     public function logCreation(Mileage $mileage)
  20.     {
  21.         $pendingLogArgs = [];
  22.         if ($mileage->getVehicle() === null)
  23.         {
  24.             return $pendingLogArgs;
  25.         }
  26.         //----------------------------------------------------------------------
  27.         // Fetch eventual info stored in the object
  28.         $loggingData $this->logTools->handleLoggingData($mileage);
  29.         $info $loggingData['info'];
  30.         $specialAuthor $loggingData['special_author'];
  31.         $ignore $loggingData['ignore'];
  32.         if ($ignore) return $pendingLogArgs;
  33.         //----------------------------------------------------------------------
  34.         // Init base log args
  35.         // This does not contain action
  36.         $args $this->initArgs($mileage$loggingData);
  37.         //----------------------------------------------------------------------
  38.         $action "vehicle_edit_mileage";
  39.         $args["action"] = $action;
  40.         $lastMileage $this->em->getRepository(Mileage::class)->findOneBy(
  41.             array('vehicle' => $mileage->getVehicle()),
  42.             array('creationDate' => 'DESC')
  43.         );
  44.         if ($lastMileage !== null)
  45.         {
  46.             $args['old_value'] = $lastMileage->getKm();
  47.             $args['new_value'] = $mileage->getKm();
  48.         }
  49.         $pendingLogArgs[] = $args;
  50.         return $pendingLogArgs;
  51.     }
  52.     public function logChanges(Mileage $mileage$changes)
  53.     {
  54.         $pendingLogArgs = [];
  55.         return $pendingLogArgs;
  56.     }
  57.     public function logRemoval(Mileage $mileage)
  58.     {
  59.         $pendingLogArgs = [];
  60.         return $pendingLogArgs;
  61.     }
  62.     private function initArgs(Mileage $mileage$loggingData)
  63.     {
  64.         $vehicle $mileage->getVehicle();
  65.         $society $vehicle->getSociety();
  66.         $societyGroup $vehicle->getSocietyGroup();
  67.         $args = array(
  68.             "object_id"                    =>    $vehicle->getId(),
  69.             "object_bundle"                =>    "Equipment",
  70.             "object_entity"                =>    "Vehicle",
  71.             "object_display"            =>    $vehicle->display(),
  72.             "society_group"                =>    $societyGroup,
  73.             "society"                    =>    $society,
  74.             "info"                        =>    $loggingData['info'],
  75.             "special_author"            =>    $loggingData['special_author'],
  76.         );
  77.         return $args;
  78.     }
  79. }