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'])); }
public function tieneRelacionados() { $sql = "SELECT COUNT(*) FROM " . ProductosRelacionados::model()->tableName() . " WHERE codigoProducto={$this->codigoProducto}"; $numRelacionados = Yii::app()->db->createCommand($sql)->queryScalar(); return $numRelacionados > 0; }