public function actionPuntos() { echo "categorias<br>"; CVarDumper::dump(Yii::app()->shoppingCart->getCategorias(), 10, true); echo "<br><br>marcas<br>"; CVarDumper::dump(Yii::app()->shoppingCart->getMarcas(), 10, true); echo "<br><br>proveedores<br>"; CVarDumper::dump(Yii::app()->shoppingCart->getProveedores(), 10, true); echo "<br><br>productos<br>"; CVarDumper::dump(Yii::app()->shoppingCart->getProductosCantidad(), 10, true); exit; $fecha = new DateTime(); $categorias = array(476); /* $listPuntos = Puntos::model()->findAll(array( 'with' => array('listPuntosCategorias' => array('condition'=>'listPuntosCategorias.idCategoriaBI IN (' . implode(",", $categorias) . ')')), 'condition' => 'codigoPunto=:tipo AND activo=:activo AND fechaInicio<=:fecha AND fechaFin>=:fecha', 'params' => array( ':tipo' => Yii::app()->params->puntos['categoria'], ':activo' => 1, ':fecha' => $fecha->format('Y-m-d H:i:s') ) )); */ $productos = Yii::app()->shoppingCart->getProductosCantidad(); $listPuntos = Puntos::generarPuntosTipo($fecha, Yii::app()->params->puntos['producto'], $productos); //Yii::app()->params->puntos['producto'] => Yii::app()->shoppingCart->getProductosCantidad() //CVarDumper::dump($listPuntos); foreach ($listPuntos as $objPunto) { echo "id: {$objPunto->idPunto}, tipoValor: {$objPunto->tipoValor}, valor: {$objPunto->valor}<br>"; } }
<?php include_once "includes.php"; $puntos = new Puntos(); $json = new JSON(); $accion = isset($_POST['accion']) ? $_POST['accion'] : null; switch ($accion) { case "editar": $id_barrio = $_POST['id_barrio']; $old_punto = $_POST['old_punto']; $punto = $_POST['punto']; $editar = $puntos->editar($id_barrio, $old_punto, $punto); if ($editar->error) { switch ($editar->desc) { case "error_existe": $res = "Ya existe el punto " . $punto . " para este barrio"; break; case "error_sql": $res = "Error en la consulta"; break; } } else { $res = "Punto editado correctamente"; } echo $res; break; case "getContenidos": $id_barrio = $_POST['id_barrio']; $punto = $_POST['punto']; $data = $puntos->getContenidos($id_barrio, $punto); $res = $json->serialize($data);
private static function generarPuntosPorCumpleanhos(DateTime $fecha, $parametro) { if ($parametro['valor'] < Yii::app()->params->clienteFiel['montoCompra']) { return array(); } $fechaCumpleanho = $parametro['fechaNacimiento']; if ($fechaCumpleanho == null || !is_string($fechaCumpleanho)) { return array(); } $fechaCumpleanho = trim($fechaCumpleanho); if (empty($fechaCumpleanho)) { return array(); } $arr = explode("-", $fechaCumpleanho); if (!isset($arr[1]) || !isset($arr[2])) { return array(); } if ($fecha->format('m') == $arr[1] && $fecha->format('d') == $arr[2]) { $listPuntos = Puntos::model()->findAll(array('condition' => 'codigoPunto=:tipo AND activo=:activo AND fechaInicio<=:fecha AND fechaFin>=:fecha', 'params' => array(':tipo' => Yii::app()->params->puntos['cumpleanhos'], ':activo' => 1, ':fecha' => $fecha->format('Y-m-d H:i:s')))); $listPuntosCompra = array(); foreach ($listPuntos as $objPunto) { $objPuntoCompra = new ComprasPuntos(); $objPuntoCompra->idPunto = $objPunto->idPunto; $objPuntoCompra->codigoPunto = $objPunto->codigoPunto; //$objPuntoCompra->idCompra = $objCompra->idCompra; $objPuntoCompra->fechaInicio = $objPunto->fechaInicio; $objPuntoCompra->fechaFin = $objPunto->fechaFin; $objPuntoCompra->fechaCreacion = $objPunto->fechaCreacion; $objPuntoCompra->fechaActualizacion = $objPunto->fechaActualizacion; $objPuntoCompra->activo = $objPunto->activo; $objPuntoCompra->tipoValor = $objPunto->tipoValor; $objPuntoCompra->valor = $objPunto->valor; $objPuntoCompra->cantidadPuntos = self::calcularTotalPuntos($objPunto->tipoValor, $objPunto->valor, $parametro['valor']); $listPuntosCompra[] = $objPuntoCompra; } return $listPuntosCompra; } else { return array(); } }
function __construct(Producto $objProducto, $objCiudadSector, $codigoPerfil, $consultaPrecio = false) { $fecha = new DateTime(); if ($objCiudadSector != null) { if ($objProducto->tercero == 1) { $listSaldosTerceros = array(); if ($consultaPrecio) { $listSaldosTerceros = ProductosSaldosTerceros::model()->findAll(array('condition' => '(codigoProducto=:producto AND codigoCiudad=:ciudad AND codigoSector=:sector)', 'params' => array(':producto' => $objProducto->codigoProducto, ':ciudad' => $objCiudadSector->codigoCiudad, ':sector' => $objCiudadSector->codigoSector))); } else { $listSaldosTerceros = $objProducto->listSaldosTerceros; } foreach ($listSaldosTerceros as $objProductoSaldoTercero) { if ($objProductoSaldoTercero->codigoCiudad == $objCiudadSector->codigoCiudad && $objProductoSaldoTercero->codigoSector == $objCiudadSector->codigoSector) { $this->precioUnidad = $objProductoSaldoTercero->precioUnidad; $this->precioFraccion = $objProductoSaldoTercero->precioFraccion; $this->unidadFraccionamiento = $objProducto->unidadFraccionamiento; $this->flete = $objProductoSaldoTercero->flete; $this->tiempoEntrega = $objProductoSaldoTercero->tiempoDomicilio; break; } } } else { $listPrecios = array(); if ($consultaPrecio) { $listPrecios = ProductosPrecios::model()->findAll(array('condition' => '(codigoProducto=:producto AND codigoCiudad=:ciudad AND codigoSector=:sector)', 'params' => array(':producto' => $objProducto->codigoProducto, ':ciudad' => $objCiudadSector->codigoCiudad, ':sector' => $objCiudadSector->codigoSector))); } else { $listPrecios = $objProducto->listPrecios; } foreach ($listPrecios as $objProductoPrecio) { if ($objProductoPrecio->codigoCiudad == $objCiudadSector->codigoCiudad && $objProductoPrecio->codigoSector == $objCiudadSector->codigoSector) { $this->precioUnidad = $objProductoPrecio->precioUnidad; $this->precioFraccion = $objProductoPrecio->precioFraccion; $this->unidadFraccionamiento = $objProducto->unidadFraccionamiento; break; } } } $objDescuentoEspecial = ProductosDescuentosEspeciales::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND codigoProducto=:producto AND codigoPerfil=:perfil AND fechaInicio<=:fecha AND fechaFin>=:fecha ', 'params' => array(':ciudad' => $objCiudadSector->codigoCiudad, ':sector' => $objCiudadSector->codigoSector, ':perfil' => $codigoPerfil, ':producto' => $objProducto->codigoProducto, ':fecha' => $fecha->format('Y-m-d H:i:s')))); if ($objDescuentoEspecial === null) { $objDescuentoEspecial = ProductosDescuentosEspeciales::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND codigoProducto=:producto AND codigoPerfil=:perfil AND fechaInicio<=:fecha AND fechaFin>=:fecha ', 'params' => array(':ciudad' => $objCiudadSector->codigoCiudad, ':sector' => Yii::app()->params->sector['*'], ':perfil' => $codigoPerfil, ':producto' => $objProducto->codigoProducto, ':fecha' => $fecha->format('Y-m-d H:i:s')))); } if ($objDescuentoEspecial === null) { $objDescuentoEspecial = ProductosDescuentosEspeciales::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND codigoProducto=:producto AND codigoPerfil=:perfil AND fechaInicio<=:fecha AND fechaFin>=:fecha ', 'params' => array(':ciudad' => Yii::app()->params->ciudad['*'], ':sector' => Yii::app()->params->sector['*'], ':perfil' => $codigoPerfil, ':producto' => $objProducto->codigoProducto, ':fecha' => $fecha->format('Y-m-d H:i:s')))); } if ($objDescuentoEspecial === null) { $objDescuentoEspecial = ProductosDescuentosEspeciales::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND codigoProducto=:producto AND codigoPerfil=:perfil AND fechaInicio<=:fecha AND fechaFin>=:fecha ', 'params' => array(':ciudad' => Yii::app()->params->ciudad['*'], ':sector' => Yii::app()->params->sector['*'], ':perfil' => Yii::app()->params->perfil['*'], ':producto' => $objProducto->codigoProducto, ':fecha' => $fecha->format('Y-m-d H:i:s')))); } if ($objDescuentoEspecial !== null) { $this->porcentajeDescuentoPerfil = $objDescuentoEspecial->descuentoPerfil; } else { $objDescuentoPerfil = ProductosDescuentosPerfiles::model()->find(array('condition' => 'codigoProducto=:producto AND codigoPerfil=:perfil', 'params' => array(':perfil' => $codigoPerfil, ':producto' => $objProducto->codigoProducto))); if ($objDescuentoPerfil !== null) { $this->porcentajeDescuentoPerfil = $objDescuentoPerfil->descuentoPerfil; } } //consultar beneficios del producto //$fecha = new DateTime; $condition = 't.fechaIni<=:fecha AND t.fechaFin>=:fecha AND t.tipo IN (' . implode(",", Yii::app()->params->beneficios['lrv']) . ')'; $params = array(':fecha' => $fecha->format('Y-m-d'), ':ciudad' => $objCiudadSector->codigoCiudad, ':producto' => $objProducto->codigoProducto); if (Yii::app()->shoppingCart->getEsClienteFiel()) { $condition .= " AND (swobligaCli=0 || swobligaCli=2)"; } else { $condition .= " AND swobligaCli=0"; } $this->listBeneficios = Beneficios::model()->findAll(array('with' => array('listPuntosVenta' => array('condition' => 'listPuntosVenta.codigoCiudad=:ciudad'), 'listBeneficiosProductos' => array('condition' => 'listBeneficiosProductos.codigoProducto=:producto')), 'condition' => $condition, 'params' => $params)); $this->porcentajeDescuentoBeneficio = 0; foreach ($this->listBeneficios as $objBeneficio) { $this->porcentajeDescuentoBeneficio += $objBeneficio->dsctoUnid; } //restriccion de maximo de beneficio if ($this->porcentajeDescuentoBeneficio > Yii::app()->params->beneficios['porcentajeMaximo']) { $this->porcentajeDescuentoBeneficio = 0; $this->listBeneficios = array(); } $this->precioFraccionTotal = $this->precioFraccion * $this->unidadFraccionamiento; $this->precioUnidad = self::redondear($this->precioUnidad, 1); $this->precioFraccionTotal = self::redondear($this->precioFraccionTotal, 1); $this->ahorroUnidad = floor($this->precioUnidad * ($this->getPorcentajeDescuento() / 100)); //$this->ahorroFraccion= floor($this->precioFraccionTotal * ($this->getPorcentajeDescuento() / 100)); $this->ahorroUnidad = self::redondear($this->ahorroUnidad, 1); //$this->ahorroFraccion = self::redondear($this->ahorroFraccion, 1); $this->inicializado = true; } $this->listPuntos = Puntos::model()->findAll(array('with' => array('listPuntosProductos' => array('condition' => 'listPuntosProductos.codigoProducto=:producto AND listPuntosProductos.cantidad=:cantidad')), 'condition' => 'codigoPunto=:tipo AND activo=:activo AND fechaInicio<=:fecha AND fechaFin>=:fecha', 'params' => array(':tipo' => Yii::app()->params->puntos['producto'], ':activo' => 1, ':fecha' => $fecha->format('Y-m-d H:i:s'), ':producto' => $objProducto->codigoProducto, ':cantidad' => 1))); }