public function actionAgregarcotizacion() { $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' => 'Seleccionar ubicación.')); Yii::app()->end(); } $cotizacion = Yii::app()->getRequest()->getPost('cotizacion', null); if ($cotizacion === null) { echo CJSON::encode(array('result' => 'error', 'response' => 'Solicitud inválida, no se detectan datos')); Yii::app()->end(); } $fecha = new DateTime(); $dias = Yii::app()->params->cotizaciones['diasVisualizar']; $fecha->modify("-{$dias} days"); $objCotizacion = Cotizaciones::model()->find(array('condition' => 'idCotizacion=:cotizacion AND identificacionUsuario=:usuario AND fechaCotizacion>=:fecha AND codigoCiudad=:ciudad AND codigoSector=:sector', 'params' => array(':cotizacion' => $cotizacion, ':usuario' => Yii::app()->user->name, ':fecha' => $fecha->format('Y-m-d H:i:s'), ':ciudad' => Yii::app()->shoppingCart->getCodigoCiudad(), ':sector' => Yii::app()->shoppingCart->getCodigoSector()))); if ($objCotizacion === null) { echo CJSON::encode(array('result' => 'error', 'response' => 'Cotización no existente o vencida')); Yii::app()->end(); } $idCombos = array(); $fecha = new DateTime(); $agregadoCompleto = true; $agregadoItem = false; $nUnidadesCompra = 0; $nUnidadesCarro = 0; foreach ($objCotizacion->listCotizacionItems as $objItem) { $agregadoItem = false; if ($objItem->idCombo != null) { if (!isset($idCombos[$objItem->idCombo])) { $nUnidadesCompra += $objItem->unidades; $objCombo = Combo::model()->find(array('with' => array('listProductos', 'listProductosCombo', 'listComboSectorCiudad'), 'condition' => 't.idCombo=:combo AND t.estadoCombo=:estado AND t.fechaInicio<=:fecha AND t.fechaFin>=:fecha AND listComboSectorCiudad.saldo>:saldo AND listComboSectorCiudad.codigoCiudad=:ciudad AND listComboSectorCiudad.codigoSector=:sector', 'params' => array(':combo' => $objItem->idCombo, ':estado' => 1, ':fecha' => $fecha->format('Y-m-d H:i:s'), ':saldo' => 0, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector))); if ($objCombo === null) { $agregadoCompleto = false; continue; } $objSaldo = $objCombo->getSaldo($objSectorCiudad->codigoCiudad, $objSectorCiudad->codigoSector); if ($objSaldo === null) { $agregadoCompleto = false; continue; } $cantidadCarroUnidad = 0; $position = Yii::app()->shoppingCart->itemAt($objCombo->getcodigo()); if ($position !== null) { $cantidadCarroUnidad = $position->getQuantity(); } if ($cantidadCarroUnidad + $objItem->unidades <= $objSaldo->saldo) { $objProductoCarro = new ProductoCarro($objCombo); Yii::app()->shoppingCart->put($objProductoCarro, false, $objItem->unidades); //calcular precio combo $precioCombo = 0; foreach ($objCotizacion->listCotizacionItems as $objItemAux) { if ($objItem->idCombo == $objItemAux->idCombo) { $precioCombo += $objItemAux->precioBaseUnidad; } } $objProductoCarro->setPriceUnit($precioCombo); Yii::app()->shoppingCart->updatePosition($objProductoCarro); $agregadoItem = true; $nUnidadesCarro += $objItem->unidades; } else { $agregadoCompleto = false; } } //identificar combos $idCombos[$objItem->idCombo] = $objItem->unidades; } else { $nUnidadesCompra += $objItem->unidades; $nUnidadesCompra += $objItem->fracciones; $nUnidadesCompra += $objItem->unidadesCedi; //agregar productos $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.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' => $objItem->codigoProducto, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector))); if ($objProducto === null) { $agregadoCompleto = false; continue; } $objSaldo = $objProducto->getSaldo($objSectorCiudad->codigoCiudad, $objSectorCiudad->codigoSector); if ($objSaldo === null) { $agregadoCompleto = false; continue; } $position = Yii::app()->shoppingCart->itemAt($objItem->codigoProducto); $objProductoCarro = new ProductoCarro($objProducto); if ($objItem->unidades > 0) { $cantidadCarroUnidad = 0; if ($position !== null) { $cantidadCarroUnidad = $position->getQuantityUnit(); } //si hay saldo, agrega a carro if ($cantidadCarroUnidad + $objItem->unidades <= $objSaldo->saldoUnidad) { Yii::app()->shoppingCart->put($objProductoCarro, false, $objItem->unidades); $agregadoItem = true; $nUnidadesCarro += $objItem->unidades; } else { $agregadoCompleto = false; } } if ($objItem->fracciones > 0) { $cantidadCarroFraccion = 0; if ($position !== null) { $cantidadCarroFraccion = $position->getQuantity(true); } //si hay saldo, agrega a carro if ($cantidadCarroFraccion + $objItem->fracciones <= $objSaldo->saldoFraccion) { Yii::app()->shoppingCart->put($objProductoCarro, true, $objItem->fracciones); $agregadoItem = true; $nUnidadesCarro += $objItem->fracciones; } else { $agregadoCompleto = false; } } if ($objItem->unidadesCedi > 0) { $cantidadCarroBodega = 0; if ($position !== null) { $cantidadCarroBodega = $position->getQuantityStored(); } $objSaldoBodega = ProductosSaldosCedi::model()->find(array('condition' => 'codigoProducto=:producto AND codigoCedi=:cedi AND saldoUnidad>=:saldo', 'params' => array(':producto' => $objItem->codigoProducto, ':cedi' => $objCotizacion->objCiudad->codigoSucursal, ':saldo' => $objItem->unidadesCedi + $cantidadCarroBodega))); if ($objSaldoBodega === null) { $agregadoCompleto = false; } else { Yii::app()->shoppingCart->putStored($objProductoCarro, $objItem->unidadesCedi); $agregadoItem = true; $nUnidadesCarro += $objItem->unidadesCedi; } if ($agregadoItem) { $objProductoCarro->setPriceUnit($objItem->precioBaseUnidad); $objProductoCarro->setPriceFraction($objItem->precioBaseFraccion); $objProductoCarro->setDiscountPriceUnit($objItem->descuentoUnidad); $objProductoCarro->setDiscountPriceFraction($objItem->descuentoFraccion); $objProductoCarro->setTax($objItem->porcentajeImpuesto); $objProductoCarro->setDelivery($objItem->tiempoEntrega); $objProductoCarro->setShipping($objItem->flete); /*$listBeneficios = array(); foreach($objItem->listBeneficios as $objBeneficio){ }*/ $objProductoCarro->setBeneficios($objItem->listBeneficios); Yii::app()->shoppingCart->updatePosition($objProductoCarro); } } } //$position->setPriceUnit(1000); //Yii::app()->shoppingCart->updatePosition($position); } if ($nUnidadesCarro == 0) { echo CJSON::encode(array('result' => 'error', 'response' => 'Productos no disponibles')); Yii::app()->end(); } $porcentajeCarro = floor(100 * ($nUnidadesCarro / $nUnidadesCompra)); echo CJSON::encode(array('result' => 'ok', 'response' => array('canastaHTML' => $this->renderPartial('canasta', null, true), 'mensajeHTML' => $this->renderPartial('/common/mensajeHtml', array('mensaje' => "{$porcentajeCarro}% de lista agregada"), true)))); Yii::app()->end(); }
public function actionCotizacionpdf($cotizacion) { $fecha = new DateTime(); $dias = Yii::app()->params->cotizaciones['diasVisualizar']; $fecha->modify("-{$dias} days"); $objCotizacion = Cotizaciones::model()->find(array('condition' => 'idCotizacion=:cotizacion AND identificacionUsuario=:usuario AND fechaCotizacion>=:fecha AND codigoCiudad=:ciudad AND codigoSector=:sector', 'params' => array(':cotizacion' => $cotizacion, ':usuario' => Yii::app()->user->name, ':fecha' => $fecha->format('Y-m-d H:i:s'), ':ciudad' => Yii::app()->shoppingCart->getCodigoCiudad(), ':sector' => Yii::app()->shoppingCart->getCodigoSector()))); $mPDF1 = Yii::app()->ePdf->mpdf('utf-8', 'Letter'); //Letter, Legal, A4 $mPDF1->SetTitle("La Rebaja Virtual - Cotizacion"); $mPDF1->SetAuthor("Copservir"); //$styleBootstrap = file_get_contents(Yii::getPathOfAlias('bootstrap.assets') . '/css/bootstrap.css'); //$styleCustom1 = file_get_contents(Yii::getPathOfAlias('webroot') . '/libs/jquerymobile/css/themes/default/jquery.mobile-1.4.5.min.css'); //$styleCustom = file_get_contents(Yii::getPathOfAlias('webroot.css') . '/mobile.css'); //$mPDF1->WriteHTML($styleCustom1, 1); //$mPDF1->WriteHTML($styleCustom, 1); //$mPDF1->WriteHTML($this->renderPartial('_solicitudCredito', array('model' => $model), true)); if ($objCotizacion === null) { $mPDF1->WriteHTML("<strong>Error, no se detecta cotización</strong>"); } else { $mPDF1->WriteHTML($this->renderPartial('cotizacionPDF', array('objCotizacion' => $objCotizacion), true)); } $filename = 'LaRebajaVirtual_' . date('YmdHis') . '.pdf'; $mPDF1->Output($filename, 'D'); $this->render('cotizacion', array('objCotizacion' => $objCotizacion)); }