bundles/PfcImportBundle/EventListener/PfcListener.php line 24

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: ishwar
  5.  * Date: 4/16/19
  6.  * Time: 12:00 PM
  7.  */
  8. namespace PfcImportBundle\EventListener;
  9. use Pimcore\Event\Model\DataObjectEvent;
  10. use Pimcore\Event\Model\ElementEventInterface;
  11. use Pimcore\Model\DataObject;
  12. class PfcListener
  13. {
  14.     /**
  15.      * @param ElementEventInterface $event
  16.      * Set initial workflow state to sku_created to avoid further workflow on variant
  17.      * for model set workflow Product ready for migrated data
  18.      */
  19.     public function postAdd(ElementEventInterface $event): void
  20.     {
  21.         if ($event instanceof DataObjectEvent) {
  22.             $object $event->getObject();
  23.             if ($object instanceof DataObject\Product AND $object->gettype() == "variant") {
  24.                // This is done already in another event listener so no need to do it here.
  25. //                $skuObjectId = $object->getId();
  26. //
  27. //                $db = \Pimcore\Db::get();
  28. //              //  $db->query("INSERT element_workflow_state(cid, ctype, place, workflow) VALUES($skuObjectId, 'object', 'open_sku_creation,sku_created', 'Product_Workflow') ");
  29.             }
  30.             else {
  31.                 if ($object instanceof DataObject\Product) {
  32.                     $modelObjectId $object->getId();
  33.                     $db \Pimcore\Db::get();
  34.             //       $db->query("INSERT element_workflow_state(cid, ctype, place, workflow) VALUES($modelObjectId, 'object', 'open_sku_creation,sku_created,product_ready', 'Product_Workflow') ");
  35.                 }
  36.             }
  37.         }
  38.     }
  39.     /**
  40.      * @param $object
  41.      * Set inital workflow state to sku_created to avoid further workflow on variant
  42.      */
  43.     public function setSkuWorkFlowState($object)
  44.     {
  45.     }
  46.     /**
  47.      * @param ElementEventInterface $event
  48.      * @throws \Exception
  49.      */
  50.     public function onPreUpdate(ElementEventInterface $event): void
  51.     {
  52.         $this->updateProductModificationDate($event);
  53.     }
  54.     /**
  55.      * @param ElementEventInterface $event
  56.      * @throws \Exception
  57.      */
  58.     public function onPreDelete(ElementEventInterface $event): void
  59.     {
  60.         $this->updateProductModificationDate($event);
  61.     }
  62.     /**
  63.      * @param ElementEventInterface $event
  64.      * @throws \Exception
  65.      */
  66.     public function updateProductModificationDate(ElementEventInterface $event): void
  67.     {
  68.         if ($event instanceof DataObjectEvent) {
  69.             $objects $event->getObject();
  70.             if ($objects instanceof DataObject\MenuCategory) {
  71.                 $productObjects $objects->getProducts();
  72.                 foreach ($productObjects as $productObject) {
  73.                     $product DataObject::getById($productObject->getId());
  74.                     if ($product instanceof DataObject\Product) {
  75.                         /**
  76.                          * @TODO quickfix for now
  77.                          */
  78.                         $product->save(); // so that modified date changes; to track in incremental product export
  79.                     }
  80.                 }
  81.             }
  82.         }
  83.     }
  84. }