public function actionCrearcotizacion() { $transaction = Yii::app()->db->beginTransaction(); try { //registrar cotizacion $objCotizacion = new Cotizaciones(); $objCotizacion->identificacionUsuario = Yii::app()->user->name; $objCotizacion->codigoPerfil = Yii::app()->shoppingCart->getCodigoPerfil(); $objCotizacion->codigoCiudad = Yii::app()->shoppingCart->getCodigoCiudad(); $objCotizacion->codigoSector = Yii::app()->shoppingCart->getCodigoSector(); $objCotizacion->tiempoDomicilioCedi = Yii::app()->shoppingCart->getDeliveryStored(); $objCotizacion->valorDomicilioCedi = Yii::app()->shoppingCart->getShippingStored(); $objCotizacion->codigoCedi = Yii::app()->shoppingCart->objSectorCiudad->objCiudad->codigoSucursal; $objCotizacion->subtotalCompra = Yii::app()->shoppingCart->getCost(); $objCotizacion->impuestosCompra = Yii::app()->shoppingCart->getTaxPrice(); $objCotizacion->baseImpuestosCompra = Yii::app()->shoppingCart->getBaseTaxPrice(); $objCotizacion->domicilio = Yii::app()->shoppingCart->getShipping(); $objCotizacion->flete = Yii::app()->shoppingCart->getExtraShipping(); $objCotizacion->totalCompra = Yii::app()->shoppingCart->getTotalCost(); if (!$objCotizacion->save()) { throw new Exception("Error al guardar cotizacion" . $objCotizacion->validateErrorsResponse()); } //items de compra $positions = Yii::app()->shoppingCart->getPositions(); foreach ($positions as $position) { if ($position->isProduct()) { $objItem = new CotizacionesItems(); $objItem->idCotizacion = $objCotizacion->idCotizacion; $objItem->codigoProducto = $position->objProducto->codigoProducto; $objItem->descripcion = $position->objProducto->descripcionProducto; $objItem->presentacion = $position->objProducto->presentacionProducto; $objItem->precioBaseUnidad = $position->getPrice(false, false); $objItem->precioBaseFraccion = $position->getPrice(true, false); $objItem->descuentoUnidad = $position->getDiscountPrice(); $objItem->descuentoFraccion = $position->getDiscountPrice(true); $objItem->precioTotalUnidad = $position->getSumPriceUnit(); $objItem->precioTotalFraccion = $position->getSumPriceFraction(true); $objItem->terceros = $position->objProducto->tercero; $objItem->unidades = $position->getQuantityUnit(); $objItem->fracciones = $position->getQuantity(true); $objItem->unidadesCedi = $position->getQuantityStored(); $objItem->codigoImpuesto = $position->objProducto->codigoImpuesto; $objItem->impuestosItem = $position->getTaxPrice(true); $objItem->porcentajeImpuesto = $position->getTax(); $objItem->baseImpuestos = $position->getBaseTaxPrice(true); $objItem->flete = $position->getShipping(); $objItem->tiempoEntrega = $position->getDelivery(); if (!$objItem->save()) { throw new Exception("Error al guardar item de cotizacion {$objItem->codigoProducto}. " . $objItem->validateErrorsResponse()); } //beneficios foreach ($position->getBeneficios() as $objBeneficio) { $objBeneficioItem = new BeneficiosCotizacionesItems(); $objBeneficioItem->idBeneficio = $objBeneficio->idBeneficio; $objBeneficioItem->idBeneficioSincronizado = $objBeneficio->idBeneficioSincronizado; $objBeneficioItem->idCotizacionItem = $objItem->idCotizacionItem; $objBeneficioItem->tipo = $objBeneficio->tipo; $objBeneficioItem->fechaIni = $objBeneficio->fechaIni; $objBeneficioItem->fechaFin = $objBeneficio->fechaFin; $objBeneficioItem->dsctoUnid = $objBeneficio->dsctoUnid; $objBeneficioItem->dsctoFrac = $objBeneficio->dsctoFrac; $objBeneficioItem->vtaUnid = $objBeneficio->vtaUnid; $objBeneficioItem->vtaFrac = $objBeneficio->vtaFrac; $objBeneficioItem->pagoUnid = $objBeneficio->pagoUnid; $objBeneficioItem->pagoFrac = $objBeneficio->pagoFrac; $objBeneficioItem->cuentaCop = $objBeneficio->cuentaCop; $objBeneficioItem->nitCop = $objBeneficio->nitCop; $objBeneficioItem->porcCop = $objBeneficio->porcCop; $objBeneficioItem->cuentaProv = $objBeneficio->cuentaProv; $objBeneficioItem->nitProv = $objBeneficio->nitProv; $objBeneficioItem->porcProv = $objBeneficio->porcProv; $objBeneficioItem->promoFiel = $objBeneficio->promoFiel; $objBeneficioItem->mensaje = $objBeneficio->mensaje; $objBeneficioItem->swobligaCli = $objBeneficio->swobligaCli; $objBeneficioItem->fechaCreacionBeneficio = $objBeneficio->fechaCreacionBeneficio; if (!$objBeneficioItem->save()) { throw new Exception("Error al guardar beneficio de cotizacion {$objBeneficioItem->idCotizacionItem}. " . $objBeneficioItem->validateErrorsResponse()); } } } else { if ($position->isCombo()) { foreach ($position->objCombo->listProductosCombo as $productoCombo) { $objItem = new CotizacionesItems(); $objItem->idCotizacion = $objCotizacion->idCotizacion; $objItem->idCombo = $position->objCombo->idCombo; $objItem->codigoProducto = $productoCombo->objProducto->codigoProducto; $objItem->descripcion = $productoCombo->objProducto->descripcionProducto; $objItem->descripcionCombo = $position->objCombo->descripcionCombo; $objItem->presentacion = $productoCombo->objProducto->presentacionProducto; $objItem->precioBaseUnidad = $productoCombo->precio; $objItem->precioBaseFraccion = 0; $objItem->descuentoUnidad = 0; $objItem->descuentoFraccion = 0; $objItem->precioTotalUnidad = $productoCombo->precio * $position->getQuantity(); $objItem->precioTotalFraccion = 0; $objItem->terceros = $productoCombo->objProducto->tercero; $objItem->unidades = $position->getQuantity(); $objItem->fracciones = 0; $objItem->unidadesCedi = 0; $objItem->codigoImpuesto = $productoCombo->objProducto->codigoImpuesto; $objItem->impuestosItem = $position->getTaxPrice(true); $objItem->porcentajeImpuesto = $position->getTax(); $objItem->baseImpuestos = $position->getBaseTaxPrice(true); $objItem->flete = $position->getShipping(); if (!$objItem->save()) { throw new Exception("Error al guardar item de cotizacion {$objItem->codigoProducto}. " . $objItem->validateErrorsResponse()); } } } } } $transaction->commit(); echo CJSON::encode(array('result' => 'ok', 'response' => 'Cotización creada')); } catch (Exception $exc) { Yii::log($exc->getMessage() . "\n" . $exc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application'); try { $transaction->rollBack(); } catch (Exception $txexc) { Yii::log($txexc->getMessage() . "\n" . $txexc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application'); } echo CJSON::encode(array('result' => 'error', 'response' => $exc->getMessage())); } }
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)); }