local/modules/TracabilitePP/Actions/Tracabilite.php line 35
<?php
/*************************************************************************************/
/* This file is part of the Thelia package. */
/* */
/* Copyright (c) OpenStudio */
/* email : dev@thelia.net */
/* web : http://www.thelia.net */
/* */
/* For the full copyright and license information, please view the LICENSE.txt */
/* file that was distributed with this source code. */
/*************************************************************************************/
namespace TracabilitePP\Actions;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use TracabilitePP\Model\TracabiliteQuery;
use TracabilitePP\Events\TracabilitePPCreateEvent;
use TracabilitePP\Events\TracabilitePPUpdateEvent;
use TracabilitePP\Model\Tracabilite as ModelTracabilite;
use Thelia\Log\Tlog;
use TracabilitePP\Events\TracabilitePPEvents;
use TracabilitePP\Events\TracabilitePPDeleteEvent;
/**
* Class Tracabilite
*
* @package TracabilitePP\Actions
* @author François Carfantan <f.carfantan@orange.fr>
*/
class Tracabilite implements EventSubscriberInterface
{
public function create(TracabilitePPCreateEvent $event, $eventName, EventDispatcherInterface $dispatcher)
{
$tracabilite = new ModelTracabilite();
$tracabilite
->setLotCode($event->getLotCode())
->setInitialStock($event->getInitialStock())
->setDirectStock($event->getDirectStock())
->setOnlineStock($event->getOnlineStock())
->setDirectSaleCount(0)
->setOnlineSaleCount(0)
->setStartDate($event->getstartDate())
->setProductId($event->getProduct())
->save();
$event->stopPropagation();
$event->setTracabilite($tracabilite);
}
/**
* process update tracabilite
*
* @param TracabilitePPUpdateEvent $event
* @param $eventName
* @param EventDispatcherInterface $dispatcher
*/
public function update(TracabilitePPUpdateEvent $event)
{
if (null !== $tracabilite = TracabiliteQuery::create()->findPk($event->getTracabiliteId())) {
$tracabilite
->setDirectSaleCount($event->getDirectSaleCount())
->setDirectStock($event->getDirectStock())
->setOnlineStock($event->getOnlineStock())
->setEndDate($event->getEndDate())
->save();
$event->setTracabilite($tracabilite);
}
}
public function delete(TracabilitePPDeleteEvent $event)
{
if (null !== $tracabilite = TracabiliteQuery::create()->findPk($event->getTracabiliteID())) {
$tracabilite->delete();
}
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return array(
TracabilitePPEvents::TRACABILITE_CREATE => array('create', 128),
TracabilitePPEvents::TRACABILITE_UPDATE => array('update', 128),
TracabilitePPEvents::TRACABILITE_DELETE => array('delete', 128)
);
}
}