src/Subscriber/GestionComerciale/ActiviteSubscriber.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\Subscriber\GestionComerciale;
  3. use App\Entity\GestionComerciale\Activite;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use App\Service\GestionComerciale\ActiviteService;
  8. use Symfony\Component\HttpKernel\Event\RequestEvent;
  9. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  10. use Symfony\Component\HttpKernel\HttpKernelInterface;
  11. use Symfony\Component\DependencyInjection\Container;
  12. use Doctrine\ORM\EntityManager;
  13. use Symfony\Component\HttpKernel\KernelEvents;
  14. use Symfony\Component\Security\Core\Security;
  15. class ActiviteSubscriber implements EventSubscriberInterface
  16. {
  17.     protected ActiviteService $activiteService;
  18.     private EntityManagerInterface $entityManager;
  19.     private string $filters '';
  20.     private Security $security;
  21.     public function __construct(EntityManagerInterface $entityManagerActiviteService $activiteServiceSecurity $security)
  22.     {
  23.         $this->entityManager   $entityManager;
  24.         $this->activiteService $activiteService;
  25.         $this->security        $security;
  26.     }
  27.     public static function getSubscribedEvents()
  28.     {
  29.         return [KernelEvents::RESPONSE => 'processActivite'];
  30.     }
  31.     public function processActivite(ResponseEvent $event)
  32.     {
  33.         if ( ! $event->isMainRequest() or $this->security->getUser() === null) {
  34.             return;
  35.         }
  36.         $repo_activite $this->entityManager->getRepository(Activite::class);
  37.         $tab_route = [
  38.             "dtc_liste_preparation_preparer_action"               => ["action" => "preparation""objet" => "Lp""identifiant" => "id"],
  39.             "dtc_liste_preparation_simplifie_scan_produit_action" => ["action" => "scan_emballage""objet" => "Lp""identifiant" => "id"],
  40.             "dtc_bon_preparation_simplifie_expedition_gls_action"        => ["action" => "emballage_etiquette""objet" => "Bp""identifiant" => "id"],
  41.             "dtc_bon_preparation_simplifie_expedition_tnt_action"        => ["action" => "emballage_etiquette""objet" => "Bp""identifiant" => "id"],
  42.             "dtc_bon_preparation_simplifie_expedition_colissimo_action"  => ["action" => "emballage_etiquette""objet" => "Bp""identifiant" => "id"],
  43.             "dtc_bon_preparation_simplifie_expedition_chronopost_action" => ["action" => "emballage_etiquette""objet" => "Bp""identifiant" => "id"],
  44.             "dtc_bon_preparation_simplifie_emballer_action" => ["action" => "emballage""objet" => "Bp""identifiant" => "id"],
  45.             "dtc_bon_preparation_simplifie_preparer_action" => ["action" => "preparation""objet" => "Bp""identifiant" => "id"],
  46.             "dtc_fabrication_simplifie_reception"           => ["action" => "reception""objet" => "Fabrication""identifiant" => "id"],
  47.             "dtc_commande_fournisseur_simplifie_reception"  => ["action" => "reception""objet" => "CommandeFournisseur""identifiant" => "id"],
  48.             "dtc_facture_fournisseur_modifier"      => ["action" => "modifier""objet" => "FactureFournisseur""identifiant" => "id"],
  49.             "dtc_commande_fournisseur_modifier"     => ["action" => "modifier""objet" => "CommandeFournisseur""identifiant" => "id"],
  50.             "dtc_facture_afficher"                  => ["action" => "modifier""objet" => "Facture""identifiant" => "id"],
  51.             "dtc_commande_modifier"                 => ["action" => "modifier""objet" => "Commande""identifiant" => "id"],
  52.             "dtc_bon_preparation_modifier"          => ["action" => "modifier""objet" => "Bp""identifiant" => "id"],
  53.             "dtc_devis_modifier"                    => ["action" => "modifier""objet" => "Devis""identifiant" => "id"],
  54.             "dtc_avoir_modifier"                    => ["action" => "modifier""objet" => "Avoir""identifiant" => "id"],
  55.             "dtc_article_type_modifier"             => ["action" => "modifier""objet" => "TypeArticle""identifiant" => "id"],
  56.             "dtc_article_modifier"                  => ["action" => "modifier""objet" => "Article""identifiant" => "id"],
  57.             "dtc_transporteur_modifier"             => ["action" => "modifier""objet" => "Transporteur""identifiant" => "id"],
  58.             "dtc_remise_modifier"                   => ["action" => "modifier""objet" => "Remise""identifiant" => "id"],
  59.             "dtc_marque_modifier"                   => ["action" => "modifier""objet" => "Marque""identifiant" => "id"],
  60.             "dtc_categorie_modifier"                => ["action" => "modifier""objet" => "CategorieArticle""identifiant" => "id"],
  61.             "dtc_bon_livraison_modifier"            => ["action" => "modifier""objet" => "BonLivraison""identifiant" => "id"],
  62.             "dtc_fabrication_multiple_modifier"     => ["action" => "modifier""objet" => "Ofm""identifiant" => "id"],
  63.             "dtc_fabrication_modifier"              => ["action" => "modifier""objet" => "Fabrication""identifiant" => "id"],
  64.             "dtc_client_modifier"                   => ["action" => "modifier""objet" => "Client""identifiant" => "id"],
  65.             "dtc_fournisseur_modifier"              => ["action" => "modifier""objet" => "Fournisseur""identifiant" => "id"],
  66.             "dtc_societe_modifier"                  => ["action" => "modifier""objet" => "Societe""identifiant" => "id"],
  67.             "dtc_utilisateur_modifier"              => ["action" => "modifier""objet" => "Utilisateur""identifiant" => "id"],
  68.             "dtc_tranche_poids_modifier"            => ["action" => "modifier""objet" => "TranchePoids""identifiant" => "id"],
  69.             "dtc_pays_modifier"                     => ["action" => "modifier""objet" => "Pays""identifiant" => "id"],
  70.             "dtc_region_modifier"                   => ["action" => "modifier""objet" => "Region""identifiant" => "id"],
  71.             "dtc_departement_modifier"              => ["action" => "modifier""objet" => "Departement""identifiant" => "id"],
  72.             "dtc_ville_modifier"                    => ["action" => "modifier""objet" => "Ville""identifiant" => "id"],
  73.             "dtc_zone_livraison_modifier"           => ["action" => "modifier""objet" => "ZoneLivraison""identifiant" => "id"],
  74.             "dtc_article_attribut_article_modifier" => ["action" => "modifier""objet" => "AttributArticle""identifiant" => "id"],
  75.             "dtc_unite_mesure_modifier"             => ["action" => "modifier""objet" => "UniteMesure""identifiant" => "id"],
  76.             "dtc_article_famille_compta_modifier"   => ["action" => "modifier""objet" => "FamilleCompta""identifiant" => "id"],
  77.             "dtc_compta_modifier"                   => ["action" => "modifier""objet" => "EntreeComptable""identifiant" => "id"],
  78.             "dtc_taxe_modifier"                     => ["action" => "modifier""objet" => "Tva""identifiant" => "id"],
  79.             "dtc_regle_taxe_modifier"               => ["action" => "modifier""objet" => "RegleTaxe""identifiant" => "id"],
  80.             "dtc_mode_reglement_modifier"           => ["action" => "modifier""objet" => "ModeReglement""identifiant" => "id"],
  81.             "dtc_statut_paiement_modifier"          => ["action" => "modifier""objet" => "StatutPaiement""identifiant" => "id"],
  82.             "dtc_delai_paiement_modifier"           => ["action" => "modifier""objet" => "DelaiPaiement""identifiant" => "id"],
  83.             "dtc_type_reglement_modifier"           => ["action" => "modifier""objet" => "TypeReglement""identifiant" => "id"],
  84.             "dtc_mode_encaissement_modifier"        => ["action" => "modifier""objet" => "ModeEncaissement""identifiant" => "id"],
  85.             "dtc_type_mouvement_caisse_modifier"    => ["action" => "modifier""objet" => "TypeMouvementCaisse""identifiant" => "id"],
  86.             "dtc_categorie_note_modifier"           => ["action" => "modifier""objet" => "CategorieNote""identifiant" => "id"],
  87.             "dtc_devise_modifier"                   => ["action" => "modifier""objet" => "Devise""identifiant" => "id"],
  88.             "dtc_numerotation_document_modifier"    => ["action" => "modifier""objet" => "RegleNumerotation""identifiant" => "id"],
  89.             "dtc_civilite_modifier"                 => ["action" => "modifier""objet" => "Civilite""identifiant" => "id"],
  90.             "dtc_contact_service_modifier"          => ["action" => "modifier""objet" => "Service""identifiant" => "id"],
  91.             "dtc_classification_modifier"           => ["action" => "modifier""objet" => "ClassificationClient""identifiant" => "id"],
  92.             "dtc_parametrage_modifier"              => ["action" => "modifier""objet" => "Parametrage""identifiant" => "id"],
  93.             "dtc_type_utilisateur_modifier"         => ["action" => "modifier""objet" => "TypeUtilisateur""identifiant" => "id"],
  94.             "dtc_etiquette_modifier"                => ["action" => "modifier""objet" => "Etiquette""identifiant" => "id"],
  95.             "dtc_inventaire_modifier"               => ["action" => "modifier""objet" => "Inventaire""identifiant" => "id"],
  96.             //"dtc_article_automatique_modifier"=>array("action"=>"modifier","objet"=>"ArticleAutomatique","identifiant"=>"id"),
  97.         ];
  98.         $user $this->security->getUser();
  99.         $request $event->getRequest();
  100.         $_route  $request->attributes->get('_route');
  101.         $params  $request->attributes->get('_route_params');
  102.         if (array_key_exists($_route$tab_route) && is_object($user)) {
  103.             $objet  "";
  104.             $action "";
  105.             $id     "";
  106.             $action $tab_route[$_route]["action"];
  107.             $objet  $tab_route[$_route]["objet"];
  108.             $id     $params[$tab_route[$_route]["identifiant"]];
  109.             $ecriture true;
  110.             $totalUtilisateursPage $repo_activite->getTotalUtilisateursPage($user$objet$action$id);
  111.             if ($totalUtilisateursPage["total"] > 0) {
  112.                 $ecriture false;
  113.             }
  114.             $idActivite "";
  115.             $activite = new Activite();
  116.             $activite->setUtilisateur($user);
  117.             $activite->setObjet($objet);
  118.             $activite->setAction($action);
  119.             $activite->setIdObjet($id);
  120.             $activite->setEcriture($ecriture);
  121.             $this->entityManager->persist($activite);
  122.             $this->entityManager->flush();
  123.             $this->entityManager->refresh($activite);
  124.             $response $this->activiteService->injecterIdActivite($event->getResponse(), $activite);
  125.             $event->setResponse($response);
  126.         }
  127.     }
  128. }