/**
  * @return array
  */
 public function generateInvoices()
 {
     $orders = $this->orderRepository->getUninvoicedOrders();
     $invoices = [];
     foreach ($orders as $order) {
         $invoices[] = $this->invoiceFactory->createFromOrder($order);
     }
     return $invoices;
 }
 /**
  * Hydrate $object with the provided $data.
  *
  * @param  array $data
  * @param  object $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     $order = null;
     if (isset($data['order'])) {
         $order = $this->wrappedHydrator->hydrate($data['order'], new Order());
         unset($data['order']);
     }
     if (isset($data['order_id'])) {
         $order = $this->orderRepository->getById($data['order_id']);
     }
     $object = $this->wrappedHydrator->hydrate($data, $object);
     if ($object) {
         $object->setOrder($order);
     }
     return $object;
 }
 /**
  * @return ViewModel
  */
 public function newAction()
 {
     $viewModel = new ViewModel();
     $order = new Order();
     if ($this->getRequest()->isPost()) {
         $this->orderInputFilter->setData($this->params()->fromPost());
         if ($this->orderInputFilter->isValid()) {
             $order = $this->hydrator->hydrate($this->orderInputFilter->getValues(), $order);
             $this->orders->begin()->persist($order)->commit();
             $this->flashMessenger()->addSuccessMessage('Order Created');
             $this->redirect()->toUrl('/orders/view/' . $order->getId());
         } else {
             $this->hydrator->hydrate($this->params()->fromPost(), $order);
             $viewModel->setVariable('errors', $this->orderInputFilter->getMessages());
         }
     }
     $viewModel->setVariable('customers', $this->customerRepository->getAll());
     $viewModel->setVariable('order', $order);
     return $viewModel;
 }
 /**
  * @param Request $request
  * @return \Illuminate\View\View|RedirectResponse
  */
 public function newAction(Request $request)
 {
     $viewModel = [];
     $order = new Order();
     if ($request->getMethod() == 'POST') {
         $this->inputFilter->setData($request->request->all());
         if ($this->inputFilter->isValid()) {
             $order = $this->hydrator->hydrate($this->inputFilter->getValues(), $order);
             $this->orderRepository->begin()->persist($order)->commit();
             Session::flash('success', 'Order Saved');
             return new RedirectResponse('/orders/view/' . $order->getId());
         } else {
             $this->hydrator->hydrate($request->request->all(), $order);
             $viewModel['error'] = $this->inputFilter->getMessages();
         }
     }
     $viewModel['customers'] = $this->customerRepository->getAll();
     $viewModel['order'] = $order;
     return view('orders/new', $viewModel);
 }
 /**
  * @return \Illuminate\View\View
  */
 public function newAction()
 {
     return view('invoices/new', ['orders' => $this->orderRepository->getUninvoicedOrders()]);
 }
 /**
  * @return array
  */
 public function generateAction()
 {
     return ['orders' => $this->orders->getUninvoicedOrders()];
 }