public function process(AccountingEvent $accountingEvent, LedgerTransaction $ledgerTransaction)
 {
     $context = new TransactionContext($accountingEvent->getMemorandum(), $accountingEvent, $ledgerTransaction);
     $error = new ErrorCollection();
     $occuredDate = clone $accountingEvent->getOccuredDate();
     # filter rules for event occure date
 }
 /**
  *  Receive an accounting Event and store it
  *
  *  @access public
  *  @return void
  *
  */
 public function receive(AccountingEvent $event)
 {
     try {
         # fire the event received
         $this->eventDispatcher->dispatch(EventStoreEvents::EVENT_RECEIVED, new EventStoreEvent($event));
         $success = $this->eventGateway->insertQuery()->start()->addColumn('username', 'ausername')->end()->insert();
         # update entity with new id
         if ($success) {
             $event->setEventId($this->eventGateway->lastInsertId());
         }
         # dispatch event
         $this->eventDispatcher->dispatch(EventStoreEvents::EVENT_SAVED, new EventStoreEvent($event));
     } catch (DBALException $e) {
         $this->eventDispatcher->dispatch(EventStoreEvents::EVENT_ERROR, new EventStoreEvent($event), $e->getMessage());
         # throw exception
         throw new LedgerException($e->getMessage(), 0, $e);
     }
 }