public function init()
 {
     $this->setAction('/administrador/confirmarventa')->setMethod('post');
     $model = new Application_Model_DbTable_CartaProductos();
     $productos = $model->getproductos();
     foreach ($productos as $val) {
         $this->addElement('hidden', $val->id_producto, array('required' => false, 'pimage' => '/images/carta/' . $val->imagen, 'pprice' => $val->precio, 'pdesc' => $val->descripcion, 'pcategory' => $val->nombre_tipo, 'pname' => $val->nombre, 'pid' => $val->id_producto, 'value' => '', 'disableLoadDefaultDecorators' => true, 'decorators' => parent::$_standardElementDecoratorClearLeft));
     }
 }
 public function getAll()
 {
     $modelo = new Application_Model_DbTable_CartaProductos();
     $this->view->menus = $modelo->listarmenus();
 }
 public function confirmarventaAction()
 {
     $form = new Application_Form_Buscarcliente();
     //recibe la lista de productos
     $listaproductos = $this->_getParam("products_selected");
     $model = new Application_Model_DbTable_CartaProductos();
     $puntos1 = $form->getValue('puntos');
     $productosbase = $model->getproductos();
     if ($this->getRequest()->isPost()) {
         //Calculo subtotal
         if ($form->isValid($this->_getAllParams())) {
             $sub_total = 0;
             $puntosventa = 0;
             foreach ($productosbase as $base) {
                 foreach ($listaproductos as $product) {
                     $chunks = explode('|', $product);
                     $product_id = $chunks[0];
                     if ($base->id_producto == $product_id) {
                         $product_qty = $chunks[1];
                         $product_price = $base->precio;
                         $puntosventa = $puntosventa + $base->puntos_producto * $product_qty;
                         $product_amount = $product_price * $product_qty;
                         $sub_total = $sub_total + $product_amount;
                     }
                 }
             }
             $fecha = new Zend_Db_Expr('NOW()');
             $id_usuario = $form->getvalue('cliente');
             $observacion = $form->getvalue('observacion');
             $mesa = $form->getvalue('mesa');
             $puntoscliente = $form->getvalue('puntos');
             $descuento = $form->getvalue('descuento');
             if ($puntoscliente >= 1000 && $descuento <= $puntoscliente && $sub_total >= $descuento) {
                 $descuento = $descuento;
                 //Descuento de puntos y venta
                 $sub_total = $sub_total - $descuento;
                 $puntoscliente = $puntoscliente - $descuento;
                 $puntosclientefinal = $puntoscliente + $puntosventa;
                 $modeluser = new Application_Model_DbTable_Usuarios();
                 $modeluser->editarpuntosacumulados($puntosclientefinal, $id_usuario);
             } else {
                 $descuento = 0;
                 $sub_total = $sub_total;
                 $puntosclientefinal = $puntoscliente + $puntosventa;
                 $modeluser = new Application_Model_DbTable_Usuarios();
                 $modeluser->editarpuntosacumulados($puntosclientefinal, $id_usuario);
             }
             $model = new Application_Model_DbTable_Ventas();
             //Agrego venta * validar
             $idventa = $model->crearventa($sub_total, $mesa, $fecha, $puntosventa, $descuento, $observacion, $id_usuario);
             //Integracion de productos a la tabla relacional ventas-productos
             foreach ($productosbase as $base) {
                 foreach ($listaproductos as $product) {
                     $chunks = explode('|', $product);
                     $product_id = $chunks[0];
                     if ($base->id_producto == $product_id) {
                         $product_qty = $chunks[1];
                         $modelorelacion = new Application_Model_DbTable_RelCartaVentas();
                         $modelorelacion->agregarProductosVenta($idventa, $product_id, $product_qty);
                     }
                 }
             }
             return $this->_redirect('/administrador');
         }
     }
     $this->view->element = $form;
     $this->view->punto = $puntos1;
     $this->view->productobase = $productosbase;
     $this->view->listaventa = $listaproductos;
 }