mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
added order preparation event and method to processor.
This commit is contained in:
parent
3b86f5e582
commit
6380f9fe67
4 changed files with 32 additions and 10 deletions
|
|
@ -35,6 +35,9 @@ class OrderController extends ContainerAware
|
|||
$form = $this->container->get('form.factory')->create($this->container->get('sylius_sales.form.type.order'));
|
||||
$form->setData($order);
|
||||
|
||||
$this->container->get('event_dispatcher')->dispatch(SyliusSalesEvents::ORDER_PREPARE, new FilterOrderEvent($order));
|
||||
$this->container->get('sylius_sales.processor')->prepare($order);
|
||||
|
||||
if ('POST' == $request->getMethod()) {
|
||||
$form->bindRequest($request);
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,14 @@ namespace Sylius\Bundle\SalesBundle\EventDispatcher;
|
|||
*/
|
||||
final class SyliusSalesEvents
|
||||
{
|
||||
const ORDER_CREATE = 'sylius_sales.event.order.create';
|
||||
const ORDER_UPDATE = 'sylius_sales.event.order.update';
|
||||
const ORDER_DELETE = 'sylius_sales.event.order.delete';
|
||||
const ORDER_CLOSE = 'sylius_sales.event.order.close';
|
||||
const ORDER_OPEN = 'sylius_sales.event.order.close';
|
||||
const ORDER_CONFIRM = 'sylius_sales.event.order.confirm';
|
||||
const ORDER_PROCESS = 'sylius_sales.event.order.process';
|
||||
const ORDER_PLACE = 'sylius_sales.event.order.place';
|
||||
const ORDER_CREATE = 'sylius_sales.event.order.create';
|
||||
const ORDER_UPDATE = 'sylius_sales.event.order.update';
|
||||
const ORDER_DELETE = 'sylius_sales.event.order.delete';
|
||||
const ORDER_CLOSE = 'sylius_sales.event.order.close';
|
||||
const ORDER_OPEN = 'sylius_sales.event.order.close';
|
||||
const ORDER_CONFIRM = 'sylius_sales.event.order.confirm';
|
||||
const ORDER_PREPARE = 'sylius_sales.event.order.prepare';
|
||||
const ORDER_PROCESS = 'sylius_sales.event.order.process';
|
||||
const ORDER_PLACE = 'sylius_sales.event.order.place';
|
||||
const ORDER_STATUS = 'sylius_sales.event.order.status';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,13 @@ use Sylius\Bundle\SalesBundle\Model\OrderInterface;
|
|||
*/
|
||||
interface OperationInterface
|
||||
{
|
||||
/**
|
||||
* Prepares order for processing.
|
||||
*
|
||||
* @param OrderInterface $order
|
||||
*/
|
||||
function prepare(OrderInterface $order);
|
||||
|
||||
/**
|
||||
* Processes order.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -28,6 +28,19 @@ class Processor
|
|||
*/
|
||||
private $operations = array();
|
||||
|
||||
/**
|
||||
* Prepares order for processing.
|
||||
* Calls all operations.
|
||||
*
|
||||
* @param OrderInterface $order
|
||||
*/
|
||||
public function process(OrderInterface $order)
|
||||
{
|
||||
foreach ($this->operations as $operation) {
|
||||
$operation->prepare($order);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes order. Calls all operations.
|
||||
*
|
||||
|
|
@ -38,8 +51,6 @@ class Processor
|
|||
foreach ($this->operations as $operation) {
|
||||
$operation->process($order);
|
||||
}
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue