<?php
namespace Estoque\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Estoque\Entity\Produto;
class IndexController extends AbstractActionController {
public function indexAction() {
$entityManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$repositorio = $entityManager->getRepository('Estoque\Entity\Produto');
$produtos = $repositorio->findAll();
$view_params = array(
'produtos' => $produtos
);
return new ViewModel($view_params);
}
public function cadastrarAction() {
if ($this->request->isPost()) {
$nome = $this->request->getPost('nome');
$preco = $this->request->getPost('preco');
$descricao = $this->request->getPost('descricao');
$produto = new Produto();
$produto->setNome($nome);
$produto->setPreco($preco);
$produto->setDescricao($descricao);
$entityManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$entityManager->persist($produto);
$entityManager->flush();
return $this->redirect()->toUrl('\estoque');
}
return new ViewModel();
}
public function removerAction() {
$id = $this->request->getPost('id');
if (is_null($id)) {
$id = $this->params()->fromRoute('id');
}
$entityManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$repositorio = $entityManager->getRepository('Estoque\Entity\Produto');
$produto = $repositorio->find($id);
if ($this->request->isPost()) {
$entityManager->remove($produto);
$entityManager->flush();
$this->redirect("\estoque");
}
return new ViewModel(array('produto' => $produto));
}
public function editarAction() {
$id = $this->params()->fromRoute('id');
$entityManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$repositorio = $entityManager->getRepository('Estoque\Entity\Produto');
$produto = $repositorio->find($id);
if ($this->request->isPost()) {
$nome = $this->request->getPost('nome');
$preco = $this->request->getPost('preco');
$descricao = $this->request->getPost('descricao');
$produto->setNome($nome);
$produto->setPreco($preco);
$produto->setDescricao($descricao);
$entityManager->persist($produto);
$entityManager->flush();
$this->redirect("\estoque");
}
return new ViewModel(array('produto' => $produto));
}
}