public function actionFinalizarPedido() { $this->layout = 'sitio'; if (isset($_SESSION['Cliente'])) { if (count($_SESSION['carro']) > 0) { $pedido = new Pedido(); $direccion = Direccion::model()->with('comuna')->findByPk($_POST['Pedido']['direcciones']); $formaPago = FormaPago::model()->findByPk($_POST['Pedido']['formaPago']); $tipoDocumento = TipoDocumento::model()->findByPk($_POST['Pedido']['tiposDocumento']); $pedido->pedido_fecha = new CDbExpression('NOW()'); $pedido->pedido_cliente_nombre = $_SESSION['Cliente']['cliente_nombre']; $pedido->pedido_cliente_direccion = $direccion->direccion_descripcion; $pedido->pedido_cliente_comuna = $direccion->comuna->comuna_nombre; $pedido->pedido_cliente_telefono = $_SESSION['Cliente']['cliente_telefono']; $pedido->pedido_cliente_telefono_movil = $_SESSION['Cliente']['cliente_telefono_movil']; $pedido->pedido_total = $_SESSION['total_carro']; $pedido->cliente_id = $_SESSION['Cliente']['cliente_id']; $pedido->forma_pago_id = $formaPago->forma_pago_id; $pedido->tipo_documento_id = $tipoDocumento->tipo_documento_id; if ($pedido->save()) { Yii::app()->user->setFlash('pedidoRealizadoCorrecto', "¡Gracias por comprar!<br/>Tu pedido es el número: #" . str_pad($pedido->pedido_id, 10, "0", STR_PAD_LEFT) . "<br />Recibirás un e-mail con los detalles de tu pedido."); foreach ($_SESSION['carro'] as $key => $producto) { $pedidoDetalle = new PedidoDetalle(); $pedidoDetalle->producto_codigo = $producto['producto_codigo']; $pedidoDetalle->pedido_detalle_descripcion = $producto['producto_nombre']; $pedidoDetalle->pedido_detalle_precio = $producto['producto_precio']; $pedidoDetalle->pedido_detalle_cantidad = $producto['producto_cantidad']; $pedidoDetalle->pedido_detalle_total = $producto['producto_precio'] * $producto['producto_cantidad']; $pedidoDetalle->pedido_id = $pedido->pedido_id; $pedidoDetalle->producto_id = $producto['producto_id']; $pedidoDetalle->save(); } unset($_SESSION['carro']); $_SESSION['carro'] = array(); } else { //echo "<pre>"; print_r($pedido->getErrors()); echo "</pre>"; Yii::app()->user->setFlash('pedidoRealizadoError', "No es posible realizar tu pedido en este momento, favor intenta más tarde."); } } else { Yii::app()->user->setFlash('pedidoCarroVacio', "No es posible realizar tu pedido en este momento, agrega productos a tu carro."); } } $this->render('finalizarPedido'); }
<?php echo $form->hiddenField($model, 'GastosEnvio', array('value' => $model->GastosEnvio)); ?> <?php echo $form->hiddenField($model, 'Pagado', array('value' => $model->Pagado)); ?> <?php echo $form->hiddenField($model, 'IdEstado', array('value' => $model->IdEstado)); ?> <div class="row"> <?php echo $form->labelEx($model, 'IdPago'); ?> <?php echo $form->dropDownList($model, 'IdPago', CHtml::listData(FormaPago::model()->findAll(array('order' => 'Nombre')), 'IdPago', 'Nombre'), array('prompt' => 'Seleccione una Forma de Pago')); ?> <?php //echo $form->textField($model,'IdPago'); ?> <?php echo $form->error($model, 'IdPago'); ?> </div> <div class="row"> <br/> <?php echo "<label>Si no ha introducido ninguna dirección de facturación se asignará, como tal, la dirección de envio que introduzca a continuación</label>"; ?> <br/>
}); $('#fechaPago').html('Fecha: '+backFecha($('#fecha').val())); function format(nStr) { nStr += ''; var x = nStr.split(','); var x1 = x[0]; var x2 = x.length > 1 ? ',' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + '.' + '$2'); } return x1 + x2; } var formas = Array(); <?php $formas = FormaPago::model()->findAll(); foreach ($formas as $forma) { echo 'formas[' . $forma->id . ']="' . $forma->nombre . '";'; } ?> function formatPago(formaPago){ return formas[formaPago]; } function backFecha(fecha){ var fechaArr = fecha.split('-'); if(fechaArr.length == 3){ return fechaArr[2]+"/"+fechaArr[1]+"/"+fechaArr[0]; } } $('#mail').click(function(e){ $('#pagos').empty();
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 actionPagoexpress() { $objSectorCiudad = null; if (isset(Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']])) { $objSectorCiudad = Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']]; } if ($objSectorCiudad === null) { Yii::app()->user->setFlash('error', "Seleccionar ubicación."); $this->redirect($this->createUrl('/sitio/ubicacion')); } $objPagoExpress = PagoExpress::model()->find(array('with' => array('objDireccionDespacho' => array('condition' => 'objDireccionDespacho.codigoCiudad=:ciudad AND objDireccionDespacho.codigoSector=:sector')), 'condition' => 't.identificacionUsuario=:cedula AND t.activo=:activo', 'params' => array(':cedula' => Yii::app()->user->name, ':activo' => 1, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector))); if ($objPagoExpress === null) { $objPagoExpress = new PagoExpress(); $objPagoExpress->identificacionUsuario = Yii::app()->user->name; } if (isset($_POST['Submit'])) { if (isset($_POST['PagoExpress'])) { $objPagoExpress->attributes = $_POST['PagoExpress']; } if ($_POST['Submit'] == 1) { $objPagoExpress->activo = 1; } else { $objPagoExpress->activo = 0; } if ($objPagoExpress->validate()) { $objPagoExpress->save(); //Yii::app()->user->setFlash('success', "Información actualizada."); } } if (!$objPagoExpress->isNewRecord && $objPagoExpress->activo == 0) { $objPagoExpress = new PagoExpress(); } $listDirecciones = DireccionesDespacho::model()->findAll(array('condition' => 'identificacionUsuario=:cedula AND codigoCiudad=:ciudad AND codigoSector=:sector AND activo=:activo', 'params' => array(':cedula' => Yii::app()->user->name, ':activo' => 1, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector))); $listFormaPago = FormaPago::model()->findAll(array('order' => 'formaPago', 'condition' => 'estadoFormaPago=:estado', 'params' => array(':estado' => 1))); $this->render('pagoExpress', array('listDirecciones' => $listDirecciones, 'listFormaPago' => $listFormaPago, 'objPagoExpress' => $objPagoExpress)); }
<div class="span5"> <?php echo $form->labelEx($model, 'detalle'); ?> <?php echo $form->textField($model, 'detalle', array('size' => 100, 'maxlength' => 200, 'style' => 'width:410px !important;')); echo $form->error($model, 'detalle'); ?> </div> <div class="span2"> <?php echo $form->labelEx($model, 'forma_pago_id'); ?> <?php echo $form->dropDownList($model, 'forma_pago_id', CHtml::listData(FormaPago::model()->findAll(), 'id', 'nombre'), array('empty' => 'Selecione Forma Pago')); ?> <?php echo $form->error($model, 'forma_pago_id'); ?> </div> <div class="clearfix"></div> <br> <div class="span2 buttons"> <?php echo CHtml::submitButton($model->isNewRecord ? 'Crear' : 'Guardar', array('class' => 'btn')); ?> </div> <div class="clearfix"></div> <?php