public function generate($params)
 {
     if ($this->isProduct()) {
         $objprecio = new PrecioProducto($this->objProducto, $params['objSectorCiudad'], $params['codigoPerfil']);
         $this->listBeneficios = $objprecio->getBeneficios();
         $this->priceUnit = $objprecio->getPrecio(Precio::PRECIO_UNIDAD, false);
         $this->priceFraction = $objprecio->getPrecio(Precio::PRECIO_FRACCION, false);
         $this->discountPriceUnit = $objprecio->getAhorro(Precio::PRECIO_UNIDAD);
         $this->discountPriceFraction = $objprecio->getAhorro(Precio::PRECIO_FRACCION);
         $this->tax = $this->objProducto->objImpuesto->porcentaje;
         $this->shipping = $objprecio->getFlete();
         $this->delivery = $objprecio->getTiempoEntrega();
     } else {
         if ($this->isCombo()) {
             $objprecio = new PrecioCombo($this->objCombo);
             $this->priceUnit = $objprecio->getPrecio();
         }
     }
 }
 public function actionSubtotalBodega()
 {
     $objSectorCiudad = null;
     if (isset(Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']])) {
         $objSectorCiudad = Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']];
     }
     if ($objSectorCiudad == null) {
         echo CJSON::encode(array('result' => 'error', 'response' => 'No se detecta ubicaciĆ³n'));
         Yii::app()->end();
     }
     $codigoProducto = Yii::app()->getRequest()->getPost('codigo');
     $cantidadBodega = Yii::app()->getRequest()->getPost('bodega');
     $cantidadUbicacion = Yii::app()->getRequest()->getPost('ubicacion');
     if ($codigoProducto == null) {
         echo CJSON::encode(array('result' => 'error', 'response' => 'No se detecta producto'));
         Yii::app()->end();
     }
     if ($cantidadBodega == null || $cantidadUbicacion == null) {
         echo CJSON::encode(array('result' => 'error', 'response' => 'No se detecta cantidad'));
         Yii::app()->end();
     }
     $objProducto = Producto::model()->find(array('with' => array('listSaldos' => array('condition' => '(listSaldos.codigoCiudad=:ciudad AND listSaldos.codigoSector=:sector) OR (listSaldos.saldoUnidad IS NULL AND listSaldos.codigoCiudad IS NULL AND listSaldos.codigoSector IS NULL)'), 'listPrecios' => array('condition' => '(listPrecios.codigoCiudad=:ciudad AND listPrecios.codigoSector=:sector) OR (listPrecios.codigoCiudad IS NULL AND listPrecios.codigoSector IS NULL)'), 'listSaldosTerceros' => array('condition' => '(listSaldosTerceros.codigoCiudad=:ciudad AND listSaldosTerceros.codigoSector=:sector) OR (listSaldosTerceros.codigoCiudad IS NULL AND listSaldosTerceros.codigoSector IS NULL)')), 'condition' => 't.ventaVirtual=:venta AND t.activo=:activo AND t.codigoProducto=:codigo AND ( (listSaldos.saldoUnidad IS NOT NULL AND listPrecios.codigoCiudad IS NOT NULL) OR listSaldosTerceros.codigoCiudad IS NOT NULL)', 'params' => array(':venta' => 1, ':activo' => 1, ':codigo' => $codigoProducto, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector)));
     if ($objProducto == null) {
         echo CJSON::encode(array('result' => 'error', 'response' => 'Producto no disponible.'));
         Yii::app()->end();
     }
     $codigoPerfil = Yii::app()->shoppingCart->getCodigoPerfil();
     $objPrecio = new PrecioProducto($objProducto, $objSectorCiudad, $codigoPerfil);
     $valorBodega = $objPrecio->getPrecio(Precio::PRECIO_UNIDAD) * $cantidadBodega;
     $valorUbicacion = $objPrecio->getPrecio(Precio::PRECIO_UNIDAD) * $cantidadUbicacion;
     $valorTotal = $valorBodega + $valorUbicacion;
     $valorBodegaFormato = Yii::app()->numberFormatter->format(Yii::app()->params->formatoMoneda['patron'], $valorBodega, Yii::app()->params->formatoMoneda['moneda']);
     $valorUbicacionFormato = Yii::app()->numberFormatter->format(Yii::app()->params->formatoMoneda['patron'], $valorUbicacion, Yii::app()->params->formatoMoneda['moneda']);
     $valorTotalFormato = Yii::app()->numberFormatter->format(Yii::app()->params->formatoMoneda['patron'], $valorTotal, Yii::app()->params->formatoMoneda['moneda']);
     echo CJSON::encode(array('result' => 'ok', 'response' => array('valorBodega' => $valorBodega, 'valorUbicacion' => $valorUbicacion, 'valorTotal' => $valorTotal, 'valorBodegaFormato' => $valorBodegaFormato, 'valorUbicacionFormato' => $valorUbicacionFormato, 'valorTotalFormato' => $valorTotalFormato)));
     Yii::app()->end();
 }