public function actionCorreo()
 {
     try {
         sendHtmlEmail("pruebaeñe@gmail.com", "Prueba envio 1", "Esto es una prueba");
         echo "Enviado";
     } catch (Exception $exc) {
         echo "Error: " . $exc->getMessage() . "<br/><br/>";
         echo $exc->getTraceAsString();
     }
 }
 public function actionEmail_for_reset()
 {
     if (isset($_POST['EmailForm'])) {
         $user_email = $_POST['EmailForm']['email'];
         $criteria = new CDbCriteria();
         $criteria->condition = 'email=:email';
         $criteria->params = array(':email' => $user_email);
         $user = User::model()->find($criteria);
         if (!$user) {
             $errormsg = Yii::t('passwordreset', 'No user with this email in our records');
             Yii::app()->user->setFlash('danger', $errormsg);
             $this->refresh();
         }
         $key = $user->generate_activation_key();
         $user->reset_token = $key;
         $reset_url = $this->createAbsoluteUrl('/site/password_reset', array('key' => $key, 'email' => $user_email));
         $user->save();
         if (sendHtmlEmail($user->email, Yii::app()->name . ' Administrator', null, Yii::t('reset', 'Password reset.'), array('username' => $user->username, 'reset_url' => $reset_url), 'pwd_reset', 'main')) {
             $infomsg = Yii::t('passwordreset', 'We have sent you a reset link,please check your email inbox.');
             Yii::app()->user->setFlash('info', $infomsg);
             $this->refresh();
         } else {
             $errormsg = Yii::t('passwordreset', 'We could not email you the password reset link');
             Yii::app()->user->setFlash('danger', $errormsg);
             $this->refresh();
         }
     }
     $model = new EmailForm();
     $this->render('email_for_reset', array('model' => $model));
 }
 private function procesoCompra(FormaPagoForm $modelPago, $tipoEntrega)
 {
     $categoriasCompra = array();
     $productosCompra = array();
     $transaction = Yii::app()->db->beginTransaction();
     try {
         //registrar compra compra
         $objCompra = new Compras();
         $objCompra->identificacionUsuario = $modelPago->identificacionUsuario;
         $objCompra->tipoEntrega = $tipoEntrega;
         //if($tipoEntrega==Yii::app()->params->entrega['tipo']['domicilio']){
         $objCompra->fechaEntrega = $modelPago->fechaEntrega;
         $objCompra->observacion = $modelPago->comentario;
         //}
         if ($tipoEntrega == Yii::app()->params->entrega['tipo']['presencial']) {
             $puntoVenta = $modelPago->listPuntosVenta[1][$modelPago->indicePuntoVenta];
             $objCompra->idComercial = $puntoVenta[1];
         }
         if ($modelPago->idFormaPago == Yii::app()->params->formaPago['pasarela']['idPasarela']) {
             $objCompra->idEstadoCompra = Yii::app()->params->callcenter['estadoCompra']['estado']['pendientePasarela'];
         } else {
             $objCompra->idEstadoCompra = Yii::app()->params->callcenter['estadoCompra']['estado']['pendiente'];
         }
         $objCompra->idTipoVenta = 1;
         $objCompra->activa = 1;
         $objCompra->invitado = $modelPago->pagoInvitado ? 1 : 0;
         $objCompra->codigoPerfil = Yii::app()->shoppingCart->getCodigoPerfil();
         $objCompra->codigoCiudad = Yii::app()->shoppingCart->getCodigoCiudad();
         $objCompra->codigoSector = Yii::app()->shoppingCart->getCodigoSector();
         if ($tipoEntrega == Yii::app()->params->entrega['tipo']['domicilio']) {
             $objCompra->tiempoDomicilioCedi = Yii::app()->shoppingCart->getDeliveryStored();
             $objCompra->valorDomicilioCedi = Yii::app()->shoppingCart->getShippingStored();
             $objCompra->codigoCedi = Yii::app()->shoppingCart->objSectorCiudad->objCiudad->codigoSucursal;
         } else {
             if ($tipoEntrega == Yii::app()->params->entrega['tipo']['presencial']) {
                 $objCompra->tiempoDomicilioCedi = 0;
                 $objCompra->valorDomicilioCedi = 0;
                 $objCompra->codigoCedi = 0;
             }
         }
         $objCompra->subtotalCompra = Yii::app()->shoppingCart->getCost();
         $objCompra->impuestosCompra = Yii::app()->shoppingCart->getTaxPrice();
         $objCompra->baseImpuestosCompra = Yii::app()->shoppingCart->getBaseTaxPrice();
         $objCompra->domicilio = Yii::app()->shoppingCart->getShipping();
         $objCompra->flete = Yii::app()->shoppingCart->getExtraShipping();
         $objCompra->totalCompra = Yii::app()->shoppingCart->getTotalCost();
         if (!$objCompra->save()) {
             throw new Exception("Error al guardar compra" . $objCompra->validateErrorsResponse());
         }
         if ($tipoEntrega == Yii::app()->params->entrega['tipo']['presencial']) {
             $puntoVenta = $modelPago->listPuntosVenta[1][$modelPago->indicePuntoVenta];
             $objEstadoCompra = new ComprasEstados();
             $objEstadoCompra->idCompra = $objCompra->idCompra;
             $objEstadoCompra->idEstadoCompra = Yii::app()->params->callcenter['estadoCompra']['estado']['asignado'];
             $objEstadoCompra->idOperador = 38;
             if (!$objEstadoCompra->save()) {
                 throw new Exception("Error al guardar traza de estado: " . $objEstadoCompra->validateErrorsResponse());
             }
             $objObservacion = new ComprasObservaciones();
             $objObservacion->idCompra = $objCompra->idCompra;
             $objObservacion->observacion = "Cambio de Estado: Asignado PDV. " . $puntoVenta[2];
             $objObservacion->idOperador = 38;
             $objObservacion->notificarCliente = 0;
             if (!$objObservacion->save()) {
                 throw new Exception("Error al guardar observación" . $objObservacion->validateErrorsResponse());
             }
             $objEstadoCompra2 = new ComprasEstados();
             $objEstadoCompra2->idCompra = $objCompra->idCompra;
             $objEstadoCompra2->idEstadoCompra = Yii::app()->params->callcenter['estadoCompra']['estado']['pendiente'];
             $objEstadoCompra2->idOperador = 38;
             if (!$objEstadoCompra2->save()) {
                 throw new Exception("Error al guardar traza de estado: " . $objEstadoCompra2->validateErrorsResponse());
             }
             $objObservacion2 = new ComprasObservaciones();
             $objObservacion2->idCompra = $objCompra->idCompra;
             $objObservacion2->observacion = "Cambio de Estado: Pendiente de entrega a cliente en PDV. " . $puntoVenta[2];
             $objObservacion2->idOperador = 38;
             $objObservacion2->notificarCliente = 0;
             if (!$objObservacion2->save()) {
                 throw new Exception("Error al guardar observación" . $objObservacion2->validateErrorsResponse());
             }
         }
         if ($modelPago->bono !== null && $modelPago->usoBono == 1) {
             Yii::app()->shoppingCart->setBono($modelPago->bono['valor']);
         }
         $objFormasPago = new FormasPago();
         //FormaPago::model()->findByPk($modelPago->idFormaPago);
         $objFormasPago->idCompra = $objCompra->idCompra;
         $objFormasPago->valor = Yii::app()->shoppingCart->getTotalCost();
         $objFormasPago->numeroTarjeta = $modelPago->numeroTarjeta;
         $objFormasPago->cuotasTarjeta = $modelPago->cuotasTarjeta;
         $objFormasPago->idFormaPago = $modelPago->idFormaPago;
         $objFormasPago->valorBono = Yii::app()->shoppingCart->getBono();
         /* if ($modelPago->bono !== null && $modelPago->usoBono == 1) {
                $objFormasPago->valorBono = $modelPago->bono['valor'];
            } */
         /*if($objFormasPago->valorBono>0){
                             try{
                                 $clientBono = new SoapClient(null, array(
                                     'location' => Yii::app()->params->webServiceUrl['crmLrv'],
                                     'uri' => "",
                                     'trace' => 1
                                 ));
                                 $resultBono = $clientBono->__soapCall("ActualizarBono", array('identificacion' => $objCompra->identificacionUsuario));
         
                                 if (empty($resultBono) || $resultBono[0]->ESTADO == 0) {
                                     throw new Exception("Error al actualizar bono");
                                 }
                             }catch(SoapFault $soapExc){
                                 throw new Exception("Error al actualizar bono");
                             }
                         }*/
         if (!$objFormasPago->save()) {
             throw new Exception("Error al guardar forma de pago" . $objFormasPago->validateErrorsResponse());
         }
         $objCompraDireccion = new ComprasDireccionesDespacho();
         if ($tipoEntrega == Yii::app()->params->entrega['tipo']['domicilio']) {
             if ($modelPago->pagoInvitado) {
                 $objCompraDireccion->idCompra = $objCompra->idCompra;
                 $objCompraDireccion->descripcion = $modelPago->descripcion;
                 $objCompraDireccion->nombre = $modelPago->nombre;
                 $objCompraDireccion->direccion = $modelPago->direccion;
                 $objCompraDireccion->barrio = $modelPago->barrio;
                 $objCompraDireccion->telefono = $modelPago->telefono;
                 $objCompraDireccion->celular = $modelPago->celular;
                 $objCompraDireccion->codigoCiudad = Yii::app()->shoppingCart->getCodigoCiudad();
                 $objCompraDireccion->codigoSector = Yii::app()->shoppingCart->getCodigoSector();
             } else {
                 $objDireccion = DireccionesDespacho::model()->findByPk($modelPago->idDireccionDespacho);
                 $objCompraDireccion->idCompra = $objCompra->idCompra;
                 $objCompraDireccion->descripcion = $objDireccion->descripcion;
                 $objCompraDireccion->nombre = $objDireccion->nombre;
                 $objCompraDireccion->direccion = $objDireccion->direccion;
                 $objCompraDireccion->barrio = $objDireccion->barrio;
                 $objCompraDireccion->telefono = $objDireccion->telefono;
                 $objCompraDireccion->celular = $objDireccion->celular;
                 $objCompraDireccion->codigoCiudad = $objDireccion->codigoCiudad;
                 $objCompraDireccion->codigoSector = $objDireccion->codigoSector;
                 $objCompraDireccion->pdvAsignado = $objDireccion->pdvAsignado;
                 if ($objDireccion->codigoSector == 0 && Yii::app()->shoppingCart->getCodigoSector() != 0) {
                     $objDireccion->codigoSector = Yii::app()->shoppingCart->getCodigoSector();
                     $objDireccion->save();
                 }
             }
         } else {
             if ($tipoEntrega == Yii::app()->params->entrega['tipo']['presencial']) {
                 $objCompraDireccion = new ComprasDireccionesDespacho();
                 $objCompraDireccion->idCompra = $objCompra->idCompra;
                 $objCompraDireccion->descripcion = "NA";
                 $objCompraDireccion->nombre = "NA";
                 $objCompraDireccion->direccion = "NA";
                 $objCompraDireccion->barrio = "NA";
                 $objCompraDireccion->telefono = $modelPago->telefonoContacto;
             }
         }
         if (!$objCompraDireccion->save()) {
             throw new Exception("Error al guardar dirección de compra" . $objCompraDireccion->validateErrorsResponse());
         }
         //generar puntos //--
         $listPuntosCompra = array();
         if (!$modelPago->pagoInvitado) {
             $fecha = new DateTime();
             $parametrosPuntos = array(Yii::app()->params->puntos['categoria'] => Yii::app()->shoppingCart->getCategorias(), Yii::app()->params->puntos['marca'] => Yii::app()->shoppingCart->getMarcas(), Yii::app()->params->puntos['proveedor'] => Yii::app()->shoppingCart->getProveedores(), Yii::app()->params->puntos['producto'] => Yii::app()->shoppingCart->getProductosCantidad(), Yii::app()->params->puntos['monto'] => $objCompra->subtotalCompra, Yii::app()->params->puntos['cedula'] => array('identificacionUsuario' => Yii::app()->user->name, 'valor' => $objCompra->subtotalCompra), Yii::app()->params->puntos['rango'] => array('fecha' => $fecha, 'valor' => $objCompra->subtotalCompra), Yii::app()->params->puntos['cumpleanhos'] => array('fechaNacimiento' => Yii::app()->session[Yii::app()->params->usuario['sesion']]->objUsuarioExtendida->fechaNacimiento, 'valor' => $objCompra->subtotalCompra), Yii::app()->params->puntos['clientefielCompra'] => $objCompra->subtotalCompra);
             $listPuntosCompra = ComprasPuntos::generarPuntos($fecha, Yii::app()->session[Yii::app()->params->usuario['sesion']], $parametrosPuntos);
         }
         //-- generar puntos
         // guardar puntos  //--
         foreach ($listPuntosCompra as $objPuntoCompra) {
             $objPuntoCompra->idCompra = $objCompra->idCompra;
             if (!$objPuntoCompra->save()) {
                 throw new Exception("Error al guardar punto de compra {$objPuntoCompra->idPunto}. " . $objPuntoCompra->validateErrorsResponse());
             }
         }
         //-- guardar puntos //--
         //items de compra
         $positions = Yii::app()->shoppingCart->getPositions();
         foreach ($positions as $position) {
             if ($position->isProduct()) {
                 //actualizar saldo producto //--
                 $objSaldo = null;
                 if ($position->objProducto->tercero == 1) {
                     $objSaldo = ProductosSaldosTerceros::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND codigoProducto=:producto', 'params' => array(':ciudad' => Yii::app()->shoppingCart->getCodigoCiudad(), ':sector' => Yii::app()->shoppingCart->getCodigoSector(), ':producto' => $position->objProducto->codigoProducto)));
                 } else {
                     $objSaldo = ProductosSaldos::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND codigoProducto=:producto', 'params' => array(':ciudad' => Yii::app()->shoppingCart->getCodigoCiudad(), ':sector' => Yii::app()->shoppingCart->getCodigoSector(), ':producto' => $position->objProducto->codigoProducto)));
                 }
                 if ($objSaldo == null) {
                     throw new Exception("Producto " . $position->objProducto->codigoProducto . " no disponible");
                 }
                 if ($objSaldo->saldoUnidad < $position->getQuantityUnit()) {
                     throw new Exception("Producto " . $position->objProducto->codigoProducto . ". La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoUnidad} unidades");
                 }
                 if ($objSaldo->saldoFraccion < $position->getQuantity(true)) {
                     throw new Exception("Producto " . $position->objProducto->codigoProducto . ". La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoFraccion} fracciones");
                 }
                 $objSaldo->saldoUnidad = $objSaldo->saldoUnidad - $position->getQuantityUnit();
                 $objSaldo->saldoFraccion = $objSaldo->saldoFraccion - $position->getQuantity(true);
                 $objSaldo->save();
                 //-- actualizar saldo producto
                 //actualizar saldo bodega //--
                 if ($position->getQuantityStored() > 0) {
                     $objSaldoBodega = ProductosSaldosCedi::model()->find(array('condition' => 'codigoCedi=:cedi AND codigoProducto=:producto', 'params' => array(':cedi' => Yii::app()->shoppingCart->getObjCiudad()->codigoSucursal, ':producto' => $position->objProducto->codigoProducto)));
                     if ($objSaldoBodega == null) {
                         throw new Exception("Producto " . $position->objProducto->codigoProducto . " no disponible en bodega");
                     }
                     if ($objSaldoBodega->saldoUnidad < $position->getQuantityStored()) {
                         throw new Exception("Producto " . $position->objProducto->codigoProducto . ". La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldoBodega->saldoUnidad} unidades");
                     }
                     $objSaldoBodega->saldoUnidad = $objSaldoBodega->saldoUnidad - $position->getQuantityStored();
                     $objSaldoBodega->save();
                 }
                 //-- actualizar saldo bodega
                 $objItem = new ComprasItems();
                 $objItem->idCompra = $objCompra->idCompra;
                 $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->idEstadoItem = Yii::app()->params->callcenter['estadoItem']['estado']['activo'];
                 //$objItem->idEstadoItemTercero = null;
                 $objItem->flete = $position->getShipping();
                 $objItem->disponible = 1;
                 if ($objCompra->identificacionUsuario !== null) {
                     $categoriasCompra[] = "('" . $objCompra->identificacionUsuario . "','" . $position->objProducto->idCategoriaBI . "')";
                 }
                 $productosCompra[] = "('" . $position->objProducto->codigoProducto . "')";
                 if (!$objItem->save()) {
                     throw new Exception("Error al guardar item de compra {$objItem->codigoProducto}. " . $objItem->validateErrorsResponse());
                 }
                 //beneficios
                 foreach ($position->getBeneficios() as $objBeneficio) {
                     $objBeneficioItem = new BeneficiosComprasItems();
                     $objBeneficioItem->idBeneficio = $objBeneficio->idBeneficio;
                     $objBeneficioItem->idBeneficioSincronizado = $objBeneficio->idBeneficioSincronizado;
                     $objBeneficioItem->idCompraItem = $objItem->idCompraItem;
                     $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 compra {$objBeneficioItem->idCompraItem}. " . $objBeneficioItem->validateErrorsResponse());
                     }
                 }
             } else {
                 if ($position->isCombo()) {
                     $objSaldo = ComboSectorCiudad::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND idCombo=:combo', 'params' => array(':ciudad' => Yii::app()->shoppingCart->getCodigoCiudad(), ':sector' => Yii::app()->shoppingCart->getCodigoSector(), ':combo' => $position->objCombo->idCombo)));
                     if ($objSaldo == null) {
                         throw new Exception("Combo " . $position->objCombo->getCodigo() . " no disponible");
                     }
                     if ($objSaldo->saldo < $position->getQuantity()) {
                         throw new Exception("Combo " . $position->objCombo->getCodigo() . "La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldo} unidades");
                     }
                     $objSaldo->saldo = $objSaldo->saldo - $position->getQuantity();
                     $objSaldo->save();
                     foreach ($position->objCombo->listProductosCombo as $productoCombo) {
                         $objItem = new ComprasItems();
                         $objItem->idCompra = $objCompra->idCompra;
                         $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->idEstadoItem = Yii::app()->params->callcenter['estadoItem']['estado']['activo'];
                         //$objItem->idEstadoItemTercero = null;
                         $objItem->flete = $position->getShipping();
                         $objItem->disponible = 1;
                         if (!$objItem->save()) {
                             throw new Exception("Error al guardar item de compra {$objItem->codigoProducto}. " . $objItem->validateErrorsResponse());
                         }
                         if ($objCompra->identificacionUsuario !== null) {
                             $categoriasCompra[] = "('" . $objCompra->identificacionUsuario . "','" . $productoCombo->objProducto->idCategoriaBI . "')";
                         }
                         $productosCompra[] = "('" . $productoCombo->objProducto->codigoProducto . "')";
                     }
                 }
             }
         }
         $objUsuario = Yii::app()->session[Yii::app()->params->usuario['sesion']];
         $objPasarelaEnvio = null;
         $asuntoCorreo = Yii::app()->params->asunto['pedidoRealizado'];
         if ($modelPago->idFormaPago == Yii::app()->params->formaPago['pasarela']['idPasarela']) {
             $asuntoCorreo = Yii::app()->params->asunto['pedidoRealizadoPasarela'];
             $objPasarelaEnvio = new PasarelaEnvios();
             $objPasarelaEnvio->idCompra = $objCompra->idCompra;
             $objPasarelaEnvio->valor = $objCompra->totalCompra;
             $objPasarelaEnvio->iva = $objCompra->impuestosCompra;
             $objPasarelaEnvio->baseIva = $objCompra->baseImpuestosCompra;
             $objPasarelaEnvio->moneda = "COP";
             $objPasarelaEnvio->nombre = $objUsuario->getNombreCompleto();
             $objPasarelaEnvio->identificacionUsuario = $objCompra->identificacionUsuario;
             $objPasarelaEnvio->tipoDocumento = 1;
             $objPasarelaEnvio->correoElectronico = $objUsuario->correoElectronico;
             if (!$objPasarelaEnvio->save()) {
                 throw new Exception("Error al guardar registro de pasarela. " . $objPasarelaEnvio->validateErrorsResponse());
             }
         }
         if (count($categoriasCompra) > 0) {
             $sql = "INSERT INTO t_ComprasUsuariosCategorias(identificacionUsuario, idCategoriaBI) VALUES " . implode(",", $categoriasCompra) . " ON DUPLICATE KEY UPDATE cantidad=cantidad+1";
             Yii::app()->db->createCommand($sql)->execute();
         }
         if (count($productosCompra) > 0) {
             $sql = "INSERT INTO t_ProductosVendidos(codigoProducto) VALUES " . implode(",", $productosCompra) . " ON DUPLICATE KEY UPDATE cantidad=cantidad+1";
             Yii::app()->db->createCommand($sql)->execute();
         }
         $objFormaPago = FormaPago::model()->findByPk($modelPago->idFormaPago);
         $contenidoCorreo = $this->renderPartial('compraCorreo', array('objCompra' => $objCompra, 'modelPago' => $modelPago, 'objCompraDireccion' => $objCompraDireccion, 'objFormaPago' => $objFormaPago, 'objFormasPago' => $objFormasPago, 'objUsuario' => $objUsuario), true, true);
         $htmlCorreo = $this->renderPartial('/usuario/_correo', array('contenido' => $contenidoCorreo), true, true);
         sendHtmlEmail($objUsuario->correoElectronico, $asuntoCorreo, $htmlCorreo);
         $transaction->commit();
         return array('result' => 1, 'response' => array('objCompra' => $objCompra, 'modelPago' => $modelPago, 'objCompraDireccion' => $objCompraDireccion, 'objFormaPago' => $objFormaPago, 'objFormasPago' => $objFormasPago, 'objPasarelaEnvio' => $objPasarelaEnvio));
     } 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');
         }
         return array('result' => 0, 'response' => $exc->getMessage());
     }
 }
 public function actionRecordar()
 {
     $this->showSeeker = false;
     $this->fixedFooter = true;
     $model = new RecordarForm();
     if (isset($_POST['RecordarForm'])) {
         $model->attributes = $_POST['RecordarForm'];
         if ($model->validate()) {
             try {
                 $objUsuarioExtendida = $model->usuario->objUsuarioExtendida;
                 $fecha = new DateTime();
                 $fecha->modify('+1 day');
                 $objUsuarioExtendida->recuperacionFecha = $fecha->format('Y-m-d H:i:s');
                 $objUsuarioExtendida->recuperacionCodigo = md5($objUsuarioExtendida->identificacionUsuario) . md5($fecha->format('YmdHis'));
                 $objUsuarioExtendida->recuperacionCodigo = md5($objUsuarioExtendida->recuperacionCodigo);
                 $objUsuarioExtendida->save();
                 $model->usuario->objUsuarioExtendida = $objUsuarioExtendida;
                 $contenido = $this->renderPartial('_correoRecordar', array('objUsuario' => $model->usuario), true, true);
                 $htmlCorreo = $this->renderPartial('_correo', array('contenido' => $contenido), true, true);
                 sendHtmlEmail($model->correoElectronico, Yii::app()->params->asuntoRecordatorioClave, $htmlCorreo);
                 Yii::app()->user->setFlash('success', "Se ha enviado a su correo los datos de restauración de clave");
                 //$usuario->save();
                 //$this->render('_recordarexito', array('url' => Yii::app()->homeUrl));
             } catch (Exception $exc) {
                 Yii::log($exc->getMessage() . "\n" . $exc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
                 Yii::app()->user->setFlash('error', "Error: " . $exc->getMessage());
                 $this->render('recordar', array('model' => $model));
                 Yii::app()->end();
             }
         }
     }
     $this->render('recordar', array('model' => $model));
 }
/**
* Send an email to the administrator
* @return boolean
* @param string Name of the sender
* @param string Email of the sender
* @param string Name of the receiver
* @param string Email of the receiver
* @param string Email subject
* @param string Email HTML content
* @desc Send an email from the sender email to the admin email
*/
function sendHtmlEmailToAdmin($nameSender, $emailSender, $subject, $htmlContent)
{
    return sendHtmlEmail($nameSender, $emailSender, $GLOBALS['adminName'], $GLOBALS['adminEmail'], $subject, $htmlContent);
}
 public function actionObservacionpedido()
 {
     if (isset($_POST['ObservacionForm'])) {
         $model = new ObservacionForm();
         $model->attributes = $_POST['ObservacionForm'];
         if ($model->validate()) {
             $objCompra = Compras::model()->findByPk($model->idCompra);
             if ($objCompra === null) {
                 echo CJSON::encode(array('result' => 'error', 'response' => 'Compra no existente'));
                 Yii::app()->end();
             }
             $objObservacion = new ComprasObservaciones();
             $objObservacion->idCompra = $model->idCompra;
             $objObservacion->observacion = $model->observacion;
             $objObservacion->idOperador = Yii::app()->controller->module->user->id;
             $objObservacion->notificarCliente = 0;
             $objObservacion->idTipoObservacion = $model->tipoObservacion;
             if ($model->estado != null) {
                 $transaction = Yii::app()->db->beginTransaction();
                 try {
                     $estadoCompra = EstadoCompra::model()->findByPk($model->estado);
                     if ($estadoCompra == null) {
                         throw new Exception('Estado inválido');
                     }
                     $objObservacion->observacion = "<b>Cambio de estado: " . $estadoCompra->compraEstado . ".</b> " . $objObservacion->observacion;
                     if (!$objObservacion->save()) {
                         throw new Exception('Error al actualizar estado: ' . $objObservacion->validateErrorsResponse());
                     }
                     $objCompra->idEstadoCompra = $model->estado;
                     if ($model->estado == Yii::app()->params->callcenter['estadoCompra']['estado']['devolucion']) {
                         $objCompra->generarDocumentoCruce(Yii::app()->controller->module->user->id);
                     }
                     if (!$objCompra->save()) {
                         throw new Exception('Error al actualizar estado: ' . $objCompra->validateErrorsResponse());
                     }
                     //$objCompraEstado
                     $objCompraEstado = new ComprasEstados();
                     $objCompraEstado->idCompra = $objCompra->idCompra;
                     $objCompraEstado->idEstadoCompra = $model->estado;
                     $objCompraEstado->idOperador = Yii::app()->controller->module->user->id;
                     if (!$objCompraEstado->save()) {
                         throw new Exception("Error al guardar traza de estado: " . $objCompraEstado->validateErrorsResponse());
                     }
                     $transaction->commit();
                     echo CJSON::encode(array('result' => 'ok', 'response' => array('msg' => 'Observación registrada.', 'htmlObservaciones' => $this->renderPartial('_observaciones', array('objCompra' => $objCompra), true, false), 'htmlEncabezado' => $this->renderPartial('_encabezadoPedido', array('objCompra' => $objCompra), true, false))));
                     Yii::app()->end();
                 } 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()));
                     Yii::app()->end();
                 }
             } else {
                 if (!$objObservacion->save()) {
                     echo CJSON::encode(array('result' => 'error', 'response' => 'Error al actualizar estado: ' . $objObservacion->validateErrorsResponse()));
                     Yii::app()->end();
                 }
                 echo CJSON::encode(array('result' => 'ok', 'response' => array('msg' => 'Observación registrada.', 'htmlObservaciones' => $this->renderPartial('_observaciones', array('objCompra' => $objCompra), true, false))));
                 Yii::app()->end();
             }
         } else {
             echo CActiveForm::validate($model);
         }
     } else {
         if (isset($_POST['NotificacionForm'])) {
             $model = new NotificacionForm();
             $model->attributes = $_POST['NotificacionForm'];
             if ($model->validate()) {
                 $objCompra = Compras::model()->findByPk($model->idCompra);
                 if ($objCompra === null) {
                     echo CJSON::encode(array('result' => 'error', 'response' => 'Compra no existente'));
                     Yii::app()->end();
                 }
                 $objObservacion = new ComprasObservaciones();
                 $objObservacion->idCompra = $model->idCompra;
                 $objObservacion->observacion = $model->observacion;
                 $objObservacion->idOperador = Yii::app()->controller->module->user->id;
                 $objObservacion->notificarCliente = 1;
                 if (!$objObservacion->save()) {
                     echo CJSON::encode(array('result' => 'error', 'response' => 'Error al actualizar estado: ' . $objObservacion->validateErrorsResponse()));
                     Yii::app()->end();
                 }
                 try {
                     $contenido = $this->renderPartial('//common/mensajeHtml', array('mensaje' => $objObservacion->observacion), true, true);
                     $htmlCorreo = $this->renderPartial('//common/correo', array('contenido' => $contenido), true, true);
                     sendHtmlEmail($objCompra->objUsuario->correoElectronico, Yii::app()->params->callcenter['observacion']['asuntoMensaje'], $htmlCorreo);
                 } catch (Exception $exc) {
                 }
                 echo CJSON::encode(array('result' => 'ok', 'response' => array('msg' => 'Observación registrada.', 'htmlObservaciones' => $this->renderPartial('_observaciones', array('objCompra' => $objCompra), true, false))));
                 Yii::app()->end();
             } else {
                 echo CActiveForm::validate($model);
             }
         } else {
             throw new CHttpException(404, 'Solicitud invalida.');
         }
     }
 }
 protected function correo($tipo_correo = 1, $nombre = "", $numeroPedido = 0, $valorCompra = 0, $correoCliente = "", $menEstado = "")
 {
     switch ($tipo_correo) {
         case 1:
             // TRANSACCION APROBADA.
             $contenido = $this->renderPartial('correoAprobada', array('nombre' => $nombre, 'numeroPedido' => $numeroPedido, 'valorCompra' => $valorCompra), true);
             try {
                 sendHtmlEmail($correoCliente, "La Rebaja Virtual: Informacion Transaccion", $contenido);
             } catch (Exception $exc) {
             }
             break;
         case 2:
             // TRANSACCION RECHAZADA.
             $contenido = $this->renderPartial('correoRechazada', array('nombre' => $nombre, 'numeroPedido' => $numeroPedido, 'valorCompra' => $valorCompra), true);
             try {
                 sendHtmlEmail($correoCliente, "La Rebaja Virtual: Informacion Transaccion", $contenido);
             } catch (Exception $exc) {
             }
             break;
         case 3:
             //VERIFICACION CALL CENTER.
             $contenido = $this->renderPartial('correoCentroContacto', array('estado' => $menEstado, 'numeroPedido' => $numeroPedido, 'valorCompra' => $valorCompra), true);
             try {
                 sendHtmlEmail(Yii::app()->params->callcenter['correo'], "La Rebaja Virtual: Verificacion Transaccion", $contenido);
             } catch (Exception $exc) {
             }
             break;
         case 4:
             //CORREO PARA REVISION DEL CALL CENETR
             try {
                 sendHtmlEmail(Yii::app()->params->callcenter['correo'], "La Rebaja Virtual: Verificacion Transaccion", $menEstado);
             } catch (Exception $exc) {
             }
             break;
     }
 }
Example #8
0
function sendBeenDispute($email, $uid1, $player1, $claim1, $uid2, $player2, $claim2, $disputeId)
{
    $subject = 'There has been a dispute';
    $body = <<<END_OF_BODY
<p>{$player1} has a dispute with {$player2}</p>

{$player1} claims that:
<p>{$claim1}</p>

{$player2} claims that:
<p>{$claim2}</p>

Who do you think is right?
<form action="http://stanfordassassins.com/gameserver.php" method="get">
\t<input type="hidden" name="cmd" value="dispute-judge"/>
\t<input type="hidden" name="disputeId" value="{$disputeId}"/>
\t<input type="hidden" name="vote" value="{$uid1}"/>
\t<input type="submit" value="{$player1} is right" />
</form>
<form action="http://stanfordassassins.com/gameserver.php" method="get">
\t<input type="hidden" name="cmd" value="dispute-judge"/>
\t<input type="hidden" name="disputeId" value="{$disputeId}"/>
\t<input type="hidden" name="vote" value="{$uid2}"/>
\t<input type="submit" value="{$player2} is right" />
</form>
<form action="http://stanfordassassins.com/gameserver.php" method="get">
\t<input type="hidden" name="cmd" value="dispute-judge"/>
\t<input type="hidden" name="disputeId" value="{$disputeId}"/>
\t<input type="hidden" name="vote" value="0"/>
\t<input type="submit" value="Flip a coin!" />
</form>
END_OF_BODY;
    return sendHtmlEmail($email, $subject, $body);
}