bundles/Jabber/GenericBundle/EventListener/SupplierData.php line 13

Open in your IDE?
  1. <?php
  2. namespace Jabber\GenericBundle\EventListener;
  3. use Carbon\Carbon;
  4. use Pimcore\Event\Model\DataObjectEvent;
  5. use Pimcore\Event\Model\ElementEventInterface;
  6. use Pimcore\Model\DataObject\Product;
  7. class SupplierData {
  8.     public function onPreUpdate (ElementEventInterface $e) {
  9.         if (!$e->hasArgument('isAutoSave')) {
  10.             if ($e instanceof DataObjectEvent) {
  11.                 // do something with the object
  12.                 $dataObject $e->getObject();
  13.                 
  14.                 if ($dataObject instanceof Product) {
  15.                     if ($dataObject->getType() == "variant" && $dataObject->getProductLevel() == "STYLE") {
  16.                         $dataObject $this->StoreDefaultDate($dataObject"WholesaleFabricSwatchDue");
  17.                         $dataObject $this->StoreDefaultDate($dataObject"DipsDue");
  18.                         $dataObject $this->StoreDefaultDate($dataObject"DipsApproved");
  19.                         $dataObject $this->StoreDefaultDate($dataObject"TrimDue");
  20.                         $dataObject $this->StoreDefaultDate($dataObject"TrimApproved");
  21.                         $dataObject $this->StoreDefaultDate($dataObject"FabricDue");
  22.                         $dataObject $this->StoreDefaultDate($dataObject"FabricApproved");
  23.                         $dataObject $this->StoreDefaultDate($dataObject"FirstSampleDue");
  24.                         $dataObject $this->StoreDefaultDate($dataObject"FirstSampleFitted");
  25.                         $dataObject $this->StoreDefaultDate($dataObject"SecondSampleDue");
  26.                         $dataObject $this->StoreDefaultDate($dataObject"SecondSampleFitted");
  27.                         $dataObject $this->StoreDefaultDate($dataObject"SealSampleDue");
  28.                         $dataObject $this->StoreDefaultDate($dataObject"SealApproved");
  29.                         $dataObject $this->StoreDefaultDate($dataObject"GradeSampleDue");
  30.                         $dataObject $this->StoreDefaultDate($dataObject"GradeSampleFitted");
  31.                         $dataObject $this->StoreDefaultDate($dataObject"ColourSampleDue");
  32.                         $dataObject $this->StoreDefaultDate($dataObject"CutDate");
  33.                         $dataObject $this->StoreDefaultDate($dataObject"GoldSealDue");
  34.                         $dataObject $this->StoreDefaultDate($dataObject"GoldSealApproved");
  35.                         $dataObject $this->StoreDefaultDate($dataObject"ExpectedFactoryShippingDate");
  36.                     }
  37.                 }
  38.             }
  39.         }
  40.     }
  41.     private function StoreDefaultDate(Product $dataObject$fieldName) {
  42.         $getterMethod "get".$fieldName;
  43.         $setterMethod "set".$fieldName;
  44.         if (method_exists($dataObject$getterMethod)) {
  45.             if ($dataObject->$getterMethod() == "1970-01-01 00:00:00") {
  46.                 $dataObject->$setterMethod(new Carbon("1970-01-01 01:00:00"));
  47.             } else if ($dataObject->$getterMethod() == "1970-01-00 00:00:00") {
  48.                 $dataObject->$setterMethod(null);
  49.             }
  50.         }
  51.         return $dataObject;
  52.     }
  53. }