本文整理汇总了PHP中Combo::model方法的典型用法代码示例。如果您正苦于以下问题:PHP Combo::model方法的具体用法?PHP Combo::model怎么用?PHP Combo::model使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Combo
的用法示例。
在下文中一共展示了Combo::model方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: actualizarCombo
public function actualizarCombo($combo, $cantidad)
{
$listItems = ComprasItems::model()->findAll(array('condition' => 'idCompra=:compra AND idCombo=:combo', 'params' => array(':compra' => $this->idCompra, ':combo' => $combo)));
if (empty($listItems)) {
throw new Exception('Combos de compra no existentes.');
}
$cantDiff = $cantidad - $listItems[0]->unidades;
//igual
if ($cantDiff == 0) {
echo CJSON::encode(array('result' => 'error', 'response' => 'Actualización exitosa.'));
Yii::app()->end();
}
if ($cantDiff > 0) {
$objCombo = Combo::model()->find(array('with' => array('listComboSectorCiudad'), 'condition' => 't.idCombo=:combo AND t.estadoCombo=:estado AND listComboSectorCiudad.saldo>:saldo AND listComboSectorCiudad.codigoCiudad=:ciudad AND listComboSectorCiudad.codigoSector=:sector', 'params' => array(':combo' => $combo, ':estado' => 1, ':saldo' => 0, ':ciudad' => $this->codigoCiudad, ':sector' => $this->codigoSector)));
if ($objCombo === null) {
throw new Exception("La cantidad solicitada no está disponible en este momento. No hay unidades disponibles");
}
$objSaldo = $objCombo->getSaldo($this->codigoCiudad, $this->codigoSector);
if ($objSaldo === null) {
throw new Exception("La cantidad solicitada no está disponible en este momento. No hay unidades disponibles");
}
if ($cantDiff > $objSaldo->saldo) {
throw new Exception("La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldo} unidades");
}
}
$transaction = Yii::app()->db->beginTransaction();
foreach ($listItems as $objItem) {
$precioTotal = $objItem->precioBaseUnidad - $objItem->descuentoUnidad;
$precioDiff = $precioTotal * $cantDiff;
$objItem->unidades += $cantDiff;
$objItem->precioTotalUnidad += $precioDiff;
$objItem->idEstadoItem = Yii::app()->params->callcenter['estadoItem']['estado']['modificado'];
$objItem->idOperador = Yii::app()->controller->module->user->id;
$this->subtotalCompra += $precioDiff;
$this->totalCompra += $precioDiff;
if (!$objItem->save()) {
try {
$transaction->rollBack();
} catch (Exception $txexc) {
Yii::log($txexc->getMessage() . "\n" . $txexc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
}
throw new Exception('Error de actualización item: ' . $objItem->validateErrorsResponse());
}
}
if (!$this->save()) {
try {
$transaction->rollBack();
} catch (Exception $txexc) {
Yii::log($txexc->getMessage() . "\n" . $txexc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
}
throw new Exception('Error de actualización compra: ' . $this->validateErrorsResponse());
}
$transaction->commit();
}
示例2: actionMasvistos
public function actionMasvistos()
{
$sql = "SELECT codigoProducto FROM t_ProductosVistos";
$fecha = new DateTime();
$listIdsProductos = Yii::app()->db->createCommand($sql)->queryColumn();
$objSectorCiudad = null;
if (isset(Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']])) {
$objSectorCiudad = Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']];
}
$codigoPerfil = Yii::app()->shoppingCart->getCodigoPerfil();
$listCombos = array();
if (empty($listIdsProductos)) {
$this->render('listaProductos', array('listProductos' => array(), 'listCombos' => array(), 'msgCodigoEspecial' => array(), 'listCodigoEspecial' => array(), 'imagenBusqueda' => Yii::app()->params->busqueda['imagen']['noExito'], 'objSectorCiudad' => $objSectorCiudad, 'codigoPerfil' => $codigoPerfil, 'nombreBusqueda' => "Más vistos"));
Yii::app()->end();
}
$listIdsProductos = implode(",", $listIdsProductos);
$criteria = new CDbCriteria();
$criteria->order = "t.orden";
//$criteria->limit = 100;
$criteria->with = array('listImagenes', 'objCodigoEspecial', 'listCalificaciones');
$criteria->condition = "t.activo=:activo AND t.codigoProducto IN ({$listIdsProductos})";
$criteria->params = array(':activo' => 1);
if ($objSectorCiudad != null) {
$criteria->with['listSaldos'] = array('condition' => '(listSaldos.saldoUnidad>:saldo AND listSaldos.codigoCiudad=:ciudad AND listSaldos.codigoSector=:sector) OR (listSaldos.saldoUnidad IS NULL AND listSaldos.codigoCiudad IS NULL AND listSaldos.codigoSector IS NULL)');
$criteria->with['listPrecios'] = array('condition' => '(listPrecios.codigoCiudad=:ciudad AND listPrecios.codigoSector=:sector) OR (listPrecios.codigoCiudad IS NULL AND listPrecios.codigoSector IS NULL)');
$criteria->with['listSaldosTerceros'] = array('condition' => '(listSaldosTerceros.codigoCiudad=:ciudad AND listSaldosTerceros.codigoSector=:sector) OR (listSaldosTerceros.codigoCiudad IS NULL AND listSaldosTerceros.codigoSector IS NULL)');
$criteria->condition .= ' AND ( (listSaldos.saldoUnidad IS NOT NULL AND listPrecios.codigoCiudad IS NOT NULL) OR listSaldosTerceros.codigoCiudad IS NOT NULL)';
$criteria->params[':saldo'] = 0;
$criteria->params[':ciudad'] = $objSectorCiudad->codigoCiudad;
$criteria->params[':sector'] = $objSectorCiudad->codigoSector;
if (!empty($listIdsProductos)) {
$listCombos = Combo::model()->findAll(array('with' => array('listComboSectorCiudad', 'listProductos' => array('condition' => 'listProductos.codigoProducto IN (' . $listIdsProductos . ')')), 'condition' => '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(':estado' => 1, ':fecha' => $fecha->format('Y-m-d H:i:s'), 'saldo' => 0, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector)));
}
}
//$criteria->condition .= " AND t.codigoProducto IN (" . $listIdsProductos . ")";
$listProductos = Producto::model()->findAll($criteria);
$listCodigoEspecial = CodigoEspecial::model()->findAll(array('condition' => 'codigoEspecial<>0'));
$msgCodigoEspecial = array();
foreach ($listProductos as $objProducto) {
if ($objProducto->codigoEspecial != null && $objProducto->codigoEspecial != 0) {
$msgCodigoEspecial[$objProducto->codigoEspecial] = $objProducto->objCodigoEspecial;
}
}
$imagenBusqueda = null;
if (empty($listProductos)) {
$imagenBusqueda = Yii::app()->params->busqueda['imagen']['noExito'];
try {
Busquedas::registrarBusqueda(array('idenficacionUsuario' => Yii::app()->user->isGuest ? null : Yii::app()->user->name, 'tipoBusqueda' => Yii::app()->params->busqueda['tipo']['categoria'], 'msgBusqueda' => "Mas Vistos", 'codigoCiudad' => $objSectorCiudad == null ? null : $objSectorCiudad->codigoCiudad, 'codigoSector' => $objSectorCiudad == null ? null : $objSectorCiudad->codigoSector));
} catch (Exception $exc) {
Yii::log($exc->getMessage() . "\n" . $exc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
}
}
$parametrosVista = array('listProductos' => $listProductos, 'listCombos' => $listCombos, 'msgCodigoEspecial' => $msgCodigoEspecial, 'listCodigoEspecial' => $listCodigoEspecial, 'objSectorCiudad' => $objSectorCiudad, 'codigoPerfil' => $codigoPerfil, 'tipoBusqueda' => Yii::app()->params->busqueda['tipo']['categoria'], 'nombreBusqueda' => "Más vistos");
$parametrosVista['imagenBusqueda'] = $imagenBusqueda;
$this->render('listaProductos', $parametrosVista);
}
示例3: modificarCombo
private function modificarCombo($position, $objSectorCiudad)
{
$cantidad = Yii::app()->getRequest()->getPost('cantidad', null);
if ($cantidad === null || $cantidad < 0) {
echo CJSON::encode(array('result' => 'error', 'response' => array('message' => 'Solicitud inválida, no se detectan datos', 'carroHTML' => $this->renderPartial('carro', null, true))));
Yii::app()->end();
}
$fecha = new DateTime();
$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' => $position->objCombo->idCombo, ':estado' => 1, ':fecha' => $fecha->format('Y-m-d H:i:s'), 'saldo' => $cantidad, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector)));
if ($objCombo === null) {
echo CJSON::encode(array('result' => 'error', 'response' => array('message' => "La cantidad solicitada no está disponible en este momento. No hay combos disponibles", 'carroHTML' => $this->renderPartial('carro', null, true))));
Yii::app()->end();
}
Yii::app()->shoppingCart->update($position, false, $cantidad);
echo CJSON::encode(array('result' => 'ok', 'response' => array('canastaHTML' => $this->renderPartial('canasta', null, true), 'carroHTML' => $this->renderPartial('carro', null, true))));
Yii::app()->end();
}
示例4: agregarCombo
private function agregarCombo(Compras &$objCompra)
{
$combo = Yii::app()->getRequest()->getPost('combo', null);
$cantidad = Yii::app()->getRequest()->getPost('cantidad', null);
if ($combo === null || $cantidad === null) {
echo CJSON::encode(array('result' => 'error', 'response' => 'Solicitud inválida, no se detectan datos'));
Yii::app()->end();
}
if ($cantidad < 1) {
echo CJSON::encode(array('result' => 'error', 'response' => 'Cantidad no válida'));
Yii::app()->end();
}
$fecha = new DateTime();
$objCombo = Combo::model()->find(array('with' => array('listProductosCombo'), 'condition' => 't.idCombo=:combo AND t.estadoCombo=:estado AND t.fechaInicio<=:fecha AND t.fechaFin>=:fecha', 'params' => array(':combo' => $combo, ':estado' => 1, ':fecha' => $fecha->format('Y-m-d H:i:s'))));
if ($objCombo === null) {
echo CJSON::encode(array('result' => 'error', 'response' => 'Producto no disponible'));
Yii::app()->end();
}
$objSaldo = ComboSectorCiudad::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector AND idCombo=:combo', 'params' => array(':ciudad' => $objCompra->codigoCiudad, ':sector' => $objCompra->codigoSector, ':combo' => $combo)));
if ($objSaldo === null) {
echo CJSON::encode(array('result' => 'error', 'response' => 'Producto no disponible'));
Yii::app()->end();
}
if ($cantidad > $objSaldo->saldo) {
echo CJSON::encode(array('result' => 'error', 'response' => "La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldo} unidades"));
Yii::app()->end();
}
$position = new ProductoCarro($objCombo);
$position->generate(array('objSectorCiudad' => $objCompra->objSectorCiudad, 'codigoPerfil' => $objCompra->codigoPerfil));
$position->setQuantity($cantidad, false);
$transaction = Yii::app()->db->beginTransaction();
try {
$objSaldo->saldo = $objSaldo->saldo - $position->getQuantity();
$objSaldo->save();
foreach ($objCombo->listProductosCombo as $productoCombo) {
$objItem = new ComprasItems();
$objItem->idCompra = $objCompra->idCompra;
$objItem->idCombo = $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 = 0;
$objItem->unidades = $position->getQuantity();
$objItem->fracciones = 0;
$objItem->unidadesCedi = 0;
$objItem->codigoImpuesto = $productoCombo->objProducto->codigoImpuesto;
$objItem->idEstadoItem = Yii::app()->params->callcenter['estadoItem']['estado']['adicionado'];
$objItem->idOperador = Yii::app()->controller->module->user->id;
//$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());
}
}
$objCompra->subtotalCompra += $position->getSumPrice();
$objCompra->totalCompra += $position->getTotalPrice();
$objCompra->flete += $position->getShipping();
$objCompra->impuestosCompra += ceil($position->getTaxPrice(true));
if (!$objCompra->save()) {
throw new Exception("Error al guardar compra" . $objCompra->validateErrorsResponse());
}
$transaction->commit();
echo CJSON::encode(array('result' => 'ok', 'response' => array('msg' => 'Pedido actualizado.', 'htmlDetalle' => $this->renderPartial('/admin/_adminPedido', array('objCompra' => $objCompra), true, false), 'htmlEncabezado' => $this->renderPartial('/admin/_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();
}
}