public function productos($mozos = null)
 {
     $recordFinder = new AsyncRecordFinder('Buscar Producto', Restaurant::getInstance()->productos());
     $recordFinder->addSearchFieldFree('codigo', 'Codigo');
     $recordFinder->addSearchFieldFree('nombre', 'Nombre');
     $recordFinder->addTitleField('codigo', 'Codigo');
     $recordFinder->addTitleField('nombre', 'Nombre');
     return $recordFinder->generateXmlConfiguration();
 }
 /**
  * abre la mesa y setea el mozo
  * @param Mozo $mozo
  */
 public function abrir($mozo)
 {
     //$this->getPedido()->vaciar();
     if (!$this->getEstado()->equals(EstadoMesa::abierta())) {
         $this->setFechaAbierta(DateUtil::formatAsTimeStamp(time()));
         $this->setearMozoYEstado($mozo, EstadoMesa::abierta());
         $pedido = new Pedido();
         //$pedido->setNumero(21);//clase aca
         //$pedido->setFecha($this->getFechaAbierta());
         $restaurant = Restaurant::getInstance()->agregarPedido($pedido);
         $pedido->save();
         $this->setPedido($pedido);
         return true;
     }
     return false;
 }
 public function construct()
 {
     if ($this->isNew()) {
         try {
             parent::construct();
             $this->setEstado(EstadoPedido::pendiente());
             $this->setFecha(DateUtil::formatAsTimeStamp(time()));
             $this->setNumero(Restaurant::getInstance()->pedidos()->count() + 1);
         } catch (Exception $e) {
             /**
              * This try/catch clause is necessary to prevent the Doctrine data loader command from
              * failing.
              *
              */
         }
     }
 }
 /**
  * busca por codigo y devuelve el estado "cerrada"
  *
  * @return string
  */
 public static function cerrada()
 {
     return Restaurant::getInstance()->estadosCaja()->findByProperty('codigo', self::CERRADA);
 }
 public function executeAsyncCambiarCantidadDetalle(sfWebRequest $request)
 {
     $numeroPedido = $request->getParameter('numeroPedido');
     $idProducto = $request->getParameter('idProducto');
     $cantidad = $request->getParameter('cantidad');
     $pedido = Restaurant::getInstance()->buscarPedidoPorNumero($numeroPedido);
     if ($pedido == null) {
         //titat excep
     } else {
         $producto = Restaurant::getInstance()->buscarProductoPorId($idProducto);
         if ($producto == null) {
             //tirar excep
         } else {
             $detalle = $pedido->buscarProducto($producto);
             if ($detalle != null) {
                 $detalle->setCantidad($cantidad);
                 $detalle->save();
             }
             $json = $pedido->getJson();
             return $this->renderText($json->getString());
         }
     }
 }
 public function executeAsyncMozos()
 {
     $mozos = Restaurant::getInstance()->mozos();
     $json = $mozos->getJson();
     return $this->renderText($json->getString());
 }
 /**
  * busca por codigo y devuelve el estado "cerrada"
  *
  * @return string
  */
 public static function entregado()
 {
     return Restaurant::getInstance()->estadosPedido()->findByProperty('codigo', self::ENTREGADO);
 }