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>";
     }
 }
Example #2
0
<?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)));
 }