public function actionProducto($producto)
 {
     $objSectorCiudad = null;
     if (isset(Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']])) {
         $objSectorCiudad = Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']];
     }
     if ($objSectorCiudad == null) {
         $objProducto = Producto::model()->find(array('with' => array('listImagenes', 'objDetalle', 'objCodigoEspecial', 'listCalificaciones' => array('with' => 'objUsuario')), 'condition' => 't.activo=:activo AND t.codigoProducto=:codigo', 'params' => array(':activo' => 1, ':codigo' => $producto)));
     } else {
         $objProducto = Producto::model()->find(array('with' => array('listImagenes', 'objDetalle', 'objCodigoEspecial', 'listCalificaciones' => array('with' => 'objUsuario'), 'listSaldos' => array('condition' => '(listSaldos.saldoUnidad>:saldo AND 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.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(':activo' => 1, ':codigo' => $producto, ':saldo' => 0, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector)));
     }
     if ($objProducto == null) {
         throw new CHttpException(404, 'Producto no existe.');
     }
     $codigoPerfil = Yii::app()->shoppingCart->getCodigoPerfil();
     $objCalificacion = null;
     if (!Yii::app()->user->isGuest) {
         $fecha = new DateTime();
         $fecha->modify("-1 day");
         $objCalificacion = ProductosCalificaciones::model()->find(array('condition' => 'codigoProducto=:producto AND identificacionUsuario=:usuario AND fecha>=:fecha', 'params' => array(':producto' => $producto, ':usuario' => Yii::app()->user->name, ':fecha' => $fecha->format('Y-m-d H:i:s'))));
     }
     $listaPuntoVenta = array();
     if ($objProducto->ventaVirtual == 0 && $objSectorCiudad != null) {
         $listaPuntoVenta = PuntoVenta::model()->findAll(array('with' => array('listServicios' => array('condition' => 'listServicios.idTipoServicio=:servicio')), 'condition' => 'codigoCiudad=:ciudad AND idSectorLRV=:sector AND estado=:estado', 'params' => array(':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector, ':estado' => 1, ':servicio' => Yii::app()->params->servicioVentaControlada)));
     }
     $listRelacionados = ProductosRelacionados::model()->findAll(array('with' => 'objProductoRelacionado', 'order' => 't.orden', 'condition' => 't.codigoProducto=:producto', 'params' => array(':producto' => $producto)));
     try {
         $sql = "INSERT INTO t_ProductosVistos(codigoProducto) VALUES ({$producto}) ON DUPLICATE KEY UPDATE cantidad=cantidad+1";
         Yii::app()->db->createCommand($sql)->execute();
     } catch (Exception $ex) {
     }
     $this->render('productoDetalle', array('objProducto' => $objProducto, 'objPrecio' => new PrecioProducto($objProducto, $objSectorCiudad, $codigoPerfil), 'objSectorCiudad' => $objSectorCiudad, 'codigoPerfil' => $codigoPerfil, 'listaPuntoVenta' => $listaPuntoVenta, 'objCalificacion' => $objCalificacion, 'listaPuntoVenta' => $listaPuntoVenta, 'listRelacionados' => $listRelacionados, 'tipoBusqueda' => Yii::app()->params->busqueda['tipo']['buscador']));
 }
예제 #2
0
 public function tieneRelacionados()
 {
     $sql = "SELECT COUNT(*) FROM " . ProductosRelacionados::model()->tableName() . " WHERE codigoProducto={$this->codigoProducto}";
     $numRelacionados = Yii::app()->db->createCommand($sql)->queryScalar();
     return $numRelacionados > 0;
 }