public function actionObtenerProductos($idcategoria) { $this->selectdb(); $resp = Producto::model()->findAllByAttributes(array('idcategoria' => $idcategoria)); header("Content-type: application/json"); echo CJSON::encode($resp); }
public function actionAgregarProductoCarro($id) { $vProducto = Producto::model()->findByPk($id); if (isset($vProducto)) { if (isset($id, $_SESSION['carro'][$id])) { $_SESSION['carro'][$id]['producto_cantidad'] = $_SESSION['carro'][$id]['producto_cantidad'] + 1; } else { $producto = Producto::model()->with('categoria', 'unidadVenta', 'imagen')->findByPk($id); $_SESSION['carro'][$id]['producto_id'] = $producto->producto_id; $_SESSION['carro'][$id]['producto_codigo'] = $producto->producto_codigo; $_SESSION['carro'][$id]['producto_nombre'] = $producto->producto_nombre; $_SESSION['carro'][$id]['producto_descripcion'] = $producto->producto_descripcion; $_SESSION['carro'][$id]['producto_precio'] = $producto->producto_precio; $_SESSION['carro'][$id]['producto_cantidad'] = 1; $_SESSION['carro'][$id]['categoria_nombre'] = $producto->categoria->categoria_nombre; $_SESSION['carro'][$id]['unidad_venta_nombre'] = $producto->unidadVenta->unidad_venta_nombre; $_SESSION['carro'][$id]['imagen_nombre'] = $producto->imagen[0]->imagen_nombre; } Yii::app()->user->setFlash('productoAgregadoCarro', "El producto se ha agregado correctamente."); } else { Yii::app()->user->setFlash('productoCarroNoExiste', "El producto seleccionado no existe."); } $_SESSION['total_carro'] = $this->getTotalCarro(); $this->redirect(array('listarProductosCarro')); }
public function actionIndex() { // para efectos de DEMO es necesario apuntar la base de datos // al archivo demo1.db, para tu propio caso puedes eliminar estas lineas: DemoSetup::usar('demo1'); $dataProviderProductos = new CActiveDataProvider(Producto::model(), array('keyAttribute' => 'idproducto', 'criteria' => array('condition' => 'idcategoria=-1'))); if (Yii::app()->request->isAjaxRequest) { // el update del CGridView Productos hecho en Ajax produce un ajaxRequest sobre el mismo // action que lo invoco por primera vez y el argumento fue pasado mediante {data: xxx} al // momento de hacer el update al CGridView con id 'productos' $idcategoria = $_GET[0]; Yii::log("\nAJAX_REQUEST\nPROVOCADO_POR_EL_UPDATE_AL_CGRIDVIEW_PRODUCTOS" . "\nidcategoria seleccionada es=" . $idcategoria, "info"); // actualizas el criteria del data provider para ajustarlo a lo que se pide: $dataProviderProductos->criteria = array('condition' => 'idcategoria=' . $idcategoria); // para responderle al request ajax debes hacer un ECHO con el JSON del dataprovider echo CJSON::encode($dataProviderProductos); } /* creacion del dataProvider */ $dataProvider = new CActiveDataProvider(Categoria::model(), array('keyAttribute' => 'idcategoria', 'criteria' => array(), 'pagination' => array('pageSize' => 20), 'sort' => array('defaultOrder' => array('nombre' => true)))); $this->render('index', array('dataProvider' => $dataProvider, 'dataProviderProductos' => $dataProviderProductos)); }
<?php /** @var CompraController $this */ /** @var Compra $model */ $this->breadcrumbs = array('Compras' => array('index'), $model->id_compra); $this->menu = array(array('label' => Yii::t('AweCrud.app', 'Create') . ' ' . Compra::label(), 'icon' => 'plus', 'url' => array('create')), array('label' => Yii::t('AweCrud.app', 'Update'), 'icon' => 'pencil', 'url' => array('update', 'id' => $model->id_compra)), array('label' => Yii::t('AweCrud.app', 'Delete'), 'icon' => 'trash', 'url' => '#', 'linkOptions' => array('submit' => array('delete', 'id' => $model->id_compra), 'confirm' => Yii::t('AweCrud.app', 'Are you sure you want to delete this item?'))), array('label' => Yii::t('AweCrud.app', 'Manage'), 'icon' => 'list-alt', 'url' => array('admin')), array('label' => Yii::t('AweCrud.app', 'Productos'), 'icon' => 'list-alt', 'url' => Yii::app()->createUrl('SistenAdmin/DetalleCompra/create', array('id_compra' => $model->id_compra)))); ?> <fieldset> <legend><?php echo Yii::t('AweCrud.app', 'View') . ' ' . Compra::label(); ?> <?php echo CHtml::encode($model); ?> </legend> <?php $this->widget('bootstrap.widgets.TbDetailView', array('data' => $model, 'attributes' => array('id_compra', array('name' => 'id_proveedor', 'value' => $model->idProveedor !== null ? CHtml::link($model->idProveedor, array('/proveedor/view', 'id_proveedor' => $model->idProveedor->id_proveedor)) . ' ' : null, 'type' => 'html'), array('name' => 'id_usuario', 'value' => $model->idUsuario !== null ? CHtml::link($model->idUsuario, array('/usuario/view', 'id_usuario' => $model->idUsuario->id_usuario)) . ' ' : null, 'type' => 'html'), 'total_compra', 'fecha_compra', 'observaciones'))); ?> </fieldset> <?php $modelDetalle = DetalleCompra::model(); $modelDetalle->id_compra = $model->id_compra; $this->widget('bootstrap.widgets.TbGridView', array('id' => 'detalle-compra-grid', 'type' => 'striped condensed', 'dataProvider' => $modelDetalle->search(), 'filter' => $modelDetalle, 'columns' => array('id_detalle', array('name' => 'id_compra', 'value' => 'isset($data->idCompra) ? $data->idCompra : null', 'filter' => CHtml::listData(Compra::model()->findAll(), 'id_compra', Compra::representingColumn())), array('name' => 'id_producto', 'value' => 'isset($data->idProducto) ? $data->idProducto : null', 'filter' => CHtml::listData(Producto::model()->findAll(), 'id_producto', Producto::representingColumn())), 'valor_unidad', 'cantidad', 'valor_total')));
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); }
<?php $this->breadcrumbs = array(Yii::t('app', 'Administrar')); $this->menu = array(array('label' => Yii::t('app', 'Crear') . ' ' . $model->label(), 'url' => array('crear'))); Yii::app()->clientScript->registerScript('search', "\r\n\$('.search-button').click(function(){\r\n\t\$('.search-form').slideToggle();\r\n\treturn false;\r\n});\r\n\$('.search-form form').submit(function(){\r\n\t\$.fn.yiiGridView.update('pedido-grid', {\r\n\t\tdata: \$(this).serialize()\r\n\t});\r\n\treturn false;\r\n});\r\n"); ?> <h1><?php echo Yii::t('app', 'Administrar') . ' ' . GxHtml::encode($model->label(2)); ?> </h1> <p> <?php echo Yii::t('app', 'Busqueda Avanzada'); ?> </p> <?php $this->widget('bootstrap.widgets.TbMenu', array('type' => 'pills', 'items' => array(array('label' => Yii::t('app', 'Buscar'), 'icon' => 'icon-search', 'url' => '#', 'linkOptions' => array('class' => 'search-button')), array('label' => Yii::t('app', 'Exportar a Excel'), 'icon' => 'icon-download', 'url' => Yii::app()->controller->createUrl('GenerateExcel'), 'linkOptions' => array('target' => '_blank'), 'visible' => true)))); ?> <div class="search-form"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('bootstrap.widgets.TbGridView', array('id' => 'pedido-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'type' => 'striped bordered condensed', 'template' => "{summary}{items}{pager}", 'columns' => array('id', array('name' => 'user_id', 'value' => 'GxHtml::valueEx($data->user)', 'filter' => GxHtml::listDataEx(User::model()->findAllAttributes(null, true))), array('name' => 'producto_id', 'value' => 'GxHtml::valueEx($data->producto)', 'filter' => GxHtml::listDataEx(Producto::model()->findAllAttributes(null, true))), 'cantidad', 'total', 'estado', array('class' => 'bootstrap.widgets.TbButtonColumn', 'htmlOptions' => array('style' => 'width: 50px'), 'template' => '{view} {update} {delete}', 'buttons' => array('view' => array('label' => 'Ver Pedido', 'url' => 'Yii::app()->createUrl("pedido/ver", array("id"=>$data->id))'), 'update' => array('label' => 'Actualizar Pedido', 'url' => 'Yii::app()->createUrl("pedido/actualizar", array("id"=>$data->id))'), 'delete' => array('label' => 'Eliminar Pedido', 'url' => 'Yii::app()->createUrl("pedido/eliminar", array("id"=>$data->id))'))))));
<?php /* @var $this StockController */ /* @var $model Stock */ $this->breadcrumbs = array('Stocks' => array('index'), 'Administrar'); $this->menu = array(array('label' => 'Listar', 'url' => array('index')), array('label' => 'Crear', 'url' => array('create')), array('label' => 'MENU', 'url' => array('Menup/index'))); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$('#stock-grid').yiiGridView('update', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <h1>Administrar Stocks</h1> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'stock-grid', 'itemsCssClass' => 'table table-striped', 'pager' => array('htmlOptions' => array('class' => 'pagination')), 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array('id', 'unidades', 'preciounidad', array('name' => 'producto_id', 'value' => '$data->producto->nombre', 'header' => 'Producto', 'filter' => CHtml::listData(Producto::model()->findAll(), 'id', 'nombre')), 'stockcol', array('class' => 'CButtonColumn'))));
public function actionGeneratePdf() { $session = new CHttpSession(); $session->open(); if (isset($session['Producto_model_search'])) { $model = $session['Producto_model_search']; $model = Producto::model()->findAll($model->search()->criteria); } else { $model = Producto::model()->findAll(); } $this->toExcel($model, array('id', 'nombre', 'precio', 'descripcion'), date('Y-m-d-H-i-s'), array(), 'PDF'); }
public function getMenuProductos() { return CHtml::listData(Producto::model()->findAll(), "id", "nombre"); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Producto the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Producto::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
private function modificarProducto($position, $objSectorCiudad) { $cantidadU = Yii::app()->getRequest()->getPost('cantidadU', null); $cantidadF = Yii::app()->getRequest()->getPost('cantidadF', null); if ($cantidadU === null || $cantidadF === null) { echo CJSON::encode(array('result' => 'error', 'response' => 'Solicitud inválida, no se detectan datos')); Yii::app()->end(); } if ($cantidadF < 0 && $cantidadU < 0) { echo CJSON::encode(array('result' => 'error', 'response' => 'Cantidad no válida')); Yii::app()->end(); } $objProducto = Producto::model()->find(array('with' => array('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)'), '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' => $position->objProducto->codigoProducto, ':saldo' => 0, ':ciudad' => $objSectorCiudad->codigoCiudad, ':sector' => $objSectorCiudad->codigoSector))); if ($objProducto === null) { echo CJSON::encode(array('result' => 'error', 'response' => array('message' => 'Producto no disponible', 'carroHTML' => $this->renderPartial('carro', null, true)))); Yii::app()->end(); } $objSaldo = $objProducto->getSaldo($objSectorCiudad->codigoCiudad, $objSectorCiudad->codigoSector); if ($objSaldo === null) { echo CJSON::encode(array('result' => 'error', 'response' => array('message' => 'Producto no disponible', 'carroHTML' => $this->renderPartial('carro', null, true)))); Yii::app()->end(); } $agregarU = false; $agregarF = false; if ($cantidadU >= 0) { //si hay saldo, agrega a carro, sino consulta bodega if ($cantidadU <= $objSaldo->saldoUnidad) { $agregarU = true; } else { if (Yii::app()->session[Yii::app()->params->sesion['tipoEntrega']] == Yii::app()->params->entrega['tipo']['presencial']) { echo CJSON::encode(array('result' => 'error', 'response' => array('message' => "La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoUnidad} unidades", 'carroHTML' => $this->renderPartial('carro', null, true)))); Yii::app()->end(); } $cantidadBodega = $cantidadU - $objSaldo->saldoUnidad; $cantidadUbicacion = $cantidadU - $cantidadBodega - $position->getQuantityUnit(); //si hay en bodegas, mensaje para ver detalle bodega, sino, mensaje error $objSaldoBodega = ProductosSaldosCedi::model()->find(array('condition' => 'codigoProducto=:producto AND codigoCedi=:cedi AND saldoUnidad>=:saldo', 'params' => array(':producto' => $position->objProducto->codigoProducto, ':cedi' => $objSectorCiudad->objCiudad->codigoSucursal, ':saldo' => $cantidadBodega))); if ($objSaldoBodega === null) { echo CJSON::encode(array('result' => 'error', 'response' => array('message' => "La cantidad solicitada no está disponible en este momento. No hay unidades disponibles", 'carroHTML' => $this->renderPartial('carro', null, true)))); Yii::app()->end(); } echo CJSON::encode(array('result' => 'ok', 'response' => array('carroHTML' => $this->renderPartial('carro', null, true), 'dialogoHTML' => $this->renderPartial('_carroBodega', array('objSaldo' => $objSaldo, 'objProducto' => $objProducto, 'cantidadUbicacion' => $cantidadUbicacion, 'cantidadBodega' => $cantidadBodega), true)))); Yii::app()->end(); } } if ($cantidadF >= 0) { if ($cantidadF <= $objSaldo->saldoFraccion) { $agregarF = true; } else { echo CJSON::encode(array('result' => 'error', 'response' => array('message' => "La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoFraccion} fracciones", 'carroHTML' => $this->renderPartial('carro', null, true)))); Yii::app()->end(); } } if ($agregarU) { Yii::app()->shoppingCart->update($position, false, $cantidadU); } if ($agregarF) { Yii::app()->shoppingCart->update($position, true, $cantidadF); } echo CJSON::encode(array('result' => 'ok', 'response' => array('canastaHTML' => $this->renderPartial('canasta', null, true), 'carroHTML' => $this->renderPartial('carro', null, true)))); Yii::app()->end(); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. */ public function loadModel() { if ($this->_model === null) { if (isset($_GET['id'])) { $this->_model = Producto::model()->findbyPk($_GET['id']); } if ($this->_model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } } return $this->_model; }
<?php echo Yii::t('app', 'Fields with'); ?> <span class="required">*</span> <?php echo Yii::t('app', 'are required'); ?>. </p> <?php echo $form->errorSummary($model); ?> <div class="row"> <?php echo $form->labelEx($model,'categoria_id'); ?> <?php echo $form->dropDownList($model, 'categoria_id', GxHtml::listDataEx(Categoria::model()->findAllAttributes(null, true))); ?> <?php echo $form->error($model,'categoria_id'); ?> </div><!-- row --> <div class="row"> <?php echo $form->labelEx($model,'nombre'); ?> <?php echo $form->textField($model, 'nombre', array('maxlength' => 45)); ?> <?php echo $form->error($model,'nombre'); ?> </div><!-- row --> <div class="row"> <?php echo $form->labelEx($model,'descripcion'); ?> <?php echo $form->textField($model, 'descripcion', array('maxlength' => 200)); ?> <?php echo $form->error($model,'descripcion'); ?> </div><!-- row --> <label><?php echo GxHtml::encode($model->getRelationLabel('categorias')); ?></label> <?php echo $form->checkBoxList($model, 'categorias', GxHtml::encodeEx(GxHtml::listDataEx(Categoria::model()->findAllAttributes(null, true)), false, true)); ?> <label><?php echo GxHtml::encode($model->getRelationLabel('productos')); ?></label> <?php echo $form->checkBoxList($model, 'productos', GxHtml::encodeEx(GxHtml::listDataEx(Producto::model()->findAllAttributes(null, true)), false, true)); ?> <?php echo GxHtml::submitButton(Yii::t('app', 'Save')); $this->endWidget(); ?> </div><!-- form -->
private function agregarProducto(Compras &$objCompra) { $producto = Yii::app()->getRequest()->getPost('producto'); $cantidadU = Yii::app()->getRequest()->getPost('cantidadU'); $cantidadF = Yii::app()->getRequest()->getPost('cantidadF'); if ($producto === null || $cantidadU === null || $cantidadF === null) { echo CJSON::encode(array('result' => 'error', 'response' => 'Solicitud inválida, no se detectan datos')); Yii::app()->end(); } if ($cantidadF < 1 && $cantidadU < 1) { echo CJSON::encode(array('result' => 'error', 'response' => 'Cantidad no válida')); Yii::app()->end(); } $objProducto = Producto::model()->find(array('with' => array('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)'), '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' => $producto, ':saldo' => 0, ':ciudad' => $objCompra->codigoCiudad, ':sector' => $objCompra->codigoSector))); if ($objProducto === null) { echo CJSON::encode(array('result' => 'error', 'response' => 'Producto no disponible')); Yii::app()->end(); } $objSaldo = $objProducto->getSaldo($objCompra->codigoCiudad, $objCompra->codigoSector); if ($objSaldo === null) { echo CJSON::encode(array('result' => 'error', 'response' => "La cantidad solicitada no está disponible en este momento. No hay unidades disponibles")); Yii::app()->end(); } $position = new ProductoCarro($objProducto); $position->generate(array('objSectorCiudad' => $objCompra->objSectorCiudad, 'codigoPerfil' => $objCompra->codigoPerfil)); if ($cantidadU > 0) { if ($cantidadU <= $objSaldo->saldoUnidad) { $position->setQuantity($cantidadU, false); } else { echo CJSON::encode(array('result' => 'error', 'response' => "La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoUnidad} unidades")); Yii::app()->end(); } } if ($cantidadF > 0) { if ($cantidadF <= $objSaldo->saldoFraccion) { $position->setQuantity($cantidadF, true); } else { echo CJSON::encode(array('result' => 'error', 'response' => "La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoFraccion} fracciones")); Yii::app()->end(); } } $transaction = Yii::app()->db->beginTransaction(); try { $objSaldo->saldoUnidad = $objSaldo->saldoUnidad - ($position->getQuantity() - $position->getQuantityStored()); $objSaldo->saldoFraccion = $objSaldo->saldoFraccion - $position->getQuantity(true); $objSaldo->save(); $objItem = new ComprasItems(); $objItem->idCompra = $objCompra->idCompra; $objItem->codigoProducto = $objProducto->codigoProducto; $objItem->descripcion = $objProducto->descripcionProducto; $objItem->presentacion = $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 = 0; $objItem->unidades = $position->getQuantity() - $position->getQuantityStored(); $objItem->fracciones = $position->getQuantity(true); $objItem->unidadesCedi = $position->getQuantityStored(); $objItem->codigoImpuesto = $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()); } //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()); } } $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(); } }
public function actionAutoComplete() { $criteria = new CDbCriteria(); $criteria->compare('LOWER(Descripcion)', strtolower($_GET['term']), true); // $criteria->compare('LOWER(CodProducto)', strtolower($_GET['term']), true, 'OR'); $criteria->order = 'Descripcion'; $criteria->limit = 30; $data = Producto::model()->findAll($criteria); if (!empty($data)) { $arr = array(); foreach ($data as $item) { $arr[] = array('id' => $item->CodProducto, 'value' => $item->Descripcion, 'precio' => $item->PreCompra, 'label' => $item->Descripcion, 'saldo' => $item->CanExistencia, 'unidad' => $item->UniMedida); } } else { $arr = array(); $arr[] = array('id' => '', 'value' => 'No se han encontrado resultados para su búsqueda', 'label' => 'No se han encontrado resultados para su búsqueda'); } echo CJSON::encode($arr); }
public function actionAjaxEliminarProducto() { $idProducto = $_POST['idProducto']; $respuesta = Producto::model()->eliminarProducto($idProducto); header('Content-Type: application/json; charset="UTF-8"'); echo CJSON::encode(array('output' => $respuesta)); }
public function actionListarProductosPorCategoria($id) { $this->layout = 'sitio'; $categorias = Categoria::model()->findAll(); $nombreCategoria = Categoria::model()->findByPk($id)->categoria_nombre; $productos = Producto::model()->with('categoria', 'unidadVenta', 'imagen')->findAll(array('order' => 'producto_nombre', 'condition' => 'categoria.categoria_id = ' . $id)); $this->render('listarProductosPorCategoria', array('productos' => $productos, 'categorias' => $categorias, 'nombreCategoria' => $nombreCategoria)); }
public function actualizarFracciones($cantidad) { $cantDiff = $cantidad - $this->fracciones; //igual if ($cantDiff == 0) { echo CJSON::encode(array('result' => 'error', 'response' => 'Actualización exitosa.')); Yii::app()->end(); } //aumentar if ($cantDiff > 0) { $objProducto = Producto::model()->find(array('with' => array('listSaldos' => array('condition' => '(listSaldos.saldoFraccion>:saldo AND listSaldos.codigoCiudad=:ciudad AND listSaldos.codigoSector=:sector) OR (listSaldos.saldoFraccion 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' => $this->codigoProducto, ':saldo' => 0, ':ciudad' => $this->objCompra->codigoCiudad, ':sector' => $this->objCompra->codigoSector))); if ($objProducto === null) { throw new Exception('Producto no disponible.'); } $objSaldo = $objProducto->getSaldo($this->objCompra->codigoCiudad, $this->objCompra->codigoSector); if ($objSaldo === null) { throw new Exception("La cantidad solicitada no está disponible en este momento. No hay unidades disponibles"); } if ($cantDiff > $objSaldo->saldoFraccion) { throw new Exception("La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoFraccion} fracciones"); } } $precioTotal = $this->precioBaseFraccion - $this->descuentoFraccion; $precioDiff = $precioTotal * $cantDiff; $this->fracciones += $cantDiff; $this->precioTotalFraccion += $precioDiff; $this->idEstadoItem = Yii::app()->params->callcenter['estadoItem']['estado']['modificado']; $this->idOperador = Yii::app()->controller->module->user->id; $objCompra = $this->objCompra; $objCompra->subtotalCompra += $precioDiff; $objCompra->impuestosCompra += round(Precio::calcularImpuesto($precioDiff, $this->objImpuesto->porcentaje)); $objCompra->baseImpuestosCompra += round(Precio::calcularBaseImpuesto($precioDiff, $this->objImpuesto->porcentaje)); $objCompra->totalCompra += $precioDiff; if ($this->unidades + $this->fracciones == 0) { $objCompra->flete -= $this->flete; } $transaction = Yii::app()->db->beginTransaction(); 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 item: ' . $this->validateErrorsResponse()); } if ($objCompra->totalCompra < 0) { try { $transaction->rollBack(); } catch (Exception $txexc) { Yii::log($txexc->getMessage() . "\n" . $txexc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application'); } throw new Exception('Total compra no puede ser negativo'); } if (!$objCompra->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: ' . $objCompra->validateErrorsResponse()); } $transaction->commit(); }
public function actionAjaxListarProductos() { $productos = Producto::model()->listarProductos(); Util::renderJSON($productos); }
echo $form->dropDownList($model, 'dpprod_dpto_id', CHtml::listData(Departamento::model()->findAll(), 'dpto_id', 'dpto_nombre')); ?> <?php //echo $form->textField($model,'dpprod_dpto_id'); ?> <?php echo $form->error($model, 'dpprod_dpto_id'); ?> </div> <div class="row"> <?php echo $form->labelEx($model, 'dpprod_prod_id'); ?> <?php echo $form->dropDownList($model, 'dpprod_prod_id', CHtml::listData(Producto::model()->findAll(), 'prod_id', 'prod_nombre')); ?> <?php //echo $form->textField($model,'dpprod_prod_id'); ?> <?php echo $form->error($model, 'dpprod_prod_id'); ?> </div> <div class="row buttons"> <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?> </div>
</div> <div class="span8"> <table class="table table-striped"> <thead> <tr> <td>Producto</td> <td>Valor Unitario</td> <td>Cantidad</td> <td>Valor Total</td> </tr> </thead> <tbody id="productos"> <tr class="productoRow"> <td> <?php echo $form->dropDownList(DetalleCompra::model(), 'id_producto', CHtml::listData(Producto::model()->findAll(), 'id_producto', Producto::representingColumn()), array('prompt' => Yii::t('AweApp', 'None'), 'class' => 'inputProducto', 'name' => 'DetalleCompra_1[id_producto]')); ?> </td> <td> <input class="span12 inputValorU" name="DetalleCompra_1[valor_unidad]" id="DetalleCompra_valor_unidad" type="number"> </td> <td> <input class="span12 inputCant" name="DetalleCompra_1[cantidad]" id="DetalleCompra_cantidad" type="number"> </td> <td> <input class="span12 inputValorT" name="DetalleCompra_1[valor_total]" id="DetalleCompra_valor_total" type="number"> </td> <td> <a href="" class="btn btn-mini btn-primary" id="add">+</a> <!-- <a href="" class="btn btn-mini btn-danger">x</a> --> </td>
/** @var DetalleCompraController $this */ /** @var AweActiveForm $form */ $form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array('action' => Yii::app()->createUrl($this->route), 'method' => 'get')); ?> <?php echo $form->textFieldRow($model, 'id_detalle', array('class' => 'span5')); ?> <?php echo $form->dropDownListRow($model, 'id_compra', CHtml::listData(Compra::model()->findAll(), 'id_compra', Compra::representingColumn()), array('prompt' => Yii::t('AweApp', 'None'))); ?> <?php echo $form->dropDownListRow($model, 'id_producto', CHtml::listData(Producto::model()->findAll(), 'id_producto', Producto::representingColumn()), array('prompt' => Yii::t('AweApp', 'None'))); ?> <?php echo $form->textFieldRow($model, 'valor_unidad', array('class' => 'span5')); ?> <?php echo $form->textFieldRow($model, 'cantidad', array('class' => 'span5')); ?> <?php echo $form->textFieldRow($model, 'valor_total', array('class' => 'span5')); ?> <div class="form-actions">
public function actionCopiar() { ini_set('max_execution_time', 600); $copiar = "95048.png"; $carpetaGrande = Yii::getPathOfAlias('webroot') . Yii::app()->params->carpetaImagen['productos'][2]; $carpetaMini = Yii::getPathOfAlias('webroot') . Yii::app()->params->carpetaImagen['productos'][1]; $imgGrande = $carpetaGrande . $copiar; $imgMini = $carpetaMini . $copiar; $productos = Producto::model()->findAll(array('condition' => 'codigoProducto<>:codigo LIMIT 20000,5000', 'params' => array(':codigo' => 30282800))); foreach ($productos as $producto) { copy($imgGrande, $carpetaGrande . $producto->codigoProducto . ".png"); copy($imgMini, $carpetaMini . $producto->codigoProducto . ".png"); } }
<?php echo $form->labelEx($model, 'user_id'); ?> <?php echo $form->dropDownList($model, 'user_id', GxHtml::listDataEx(User::model()->findAllAttributes(null, true))); ?> <?php echo $form->error($model, 'user_id'); ?> </div><!-- row --> <div class="row"> <?php echo $form->labelEx($model, 'producto_id'); ?> <?php echo $form->dropDownList($model, 'producto_id', GxHtml::listDataEx(Producto::model()->findAllAttributes(null, true))); ?> <?php echo $form->error($model, 'producto_id'); ?> </div><!-- row --> <div class="row"> <?php echo $form->labelEx($model, 'cantidad'); ?> <?php echo $form->textField($model, 'cantidad'); ?> <?php echo $form->error($model, 'cantidad'); ?>
/** @var PublicacionController $this */ /** @var Publicacion $model */ $this->breadcrumbs = array('Publicacions' => array('index'), Yii::t('AweCrud.app', 'Manage')); $this->menu = array(array('label' => Yii::t('AweCrud.app', 'List') . ' ' . Publicacion::label(2), 'icon' => 'list', 'url' => array('index')), array('label' => Yii::t('AweCrud.app', 'Create') . ' ' . Publicacion::label(), 'icon' => 'plus', 'url' => array('create'))); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$.fn.yiiGridView.update('publicacion-grid', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <fieldset> <legend> <?php echo Yii::t('AweCrud.app', 'Manage'); ?> <?php echo Publicacion::label(2); ?> </legend> <?php echo CHtml::link('<i class="icon-search"></i> ' . Yii::t('AweCrud.app', 'Advanced Search'), '#', array('class' => 'search-button btn')); ?> <div class="search-form" style="display:none"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('bootstrap.widgets.TbGridView', array('id' => 'publicacion-grid', 'type' => 'striped condensed', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array('id_publicacion', 'nombre_publicacion', 'titulo_publicacion', 'descripcion_publicacion', array('name' => 'id_producto', 'value' => 'isset($data->idProducto) ? $data->idProducto : null', 'filter' => CHtml::listData(Producto::model()->findAll(), 'id_producto', Producto::representingColumn())), 'precio_publicacion', array('class' => 'bootstrap.widgets.TbButtonColumn')))); ?> </fieldset>
<?php $this->breadcrumbs = array($model->label(2) => array('index'), Yii::t('app', 'Manage')); $this->menu = array(array('label' => Yii::t('app', 'List') . ' ' . $model->label(2), 'url' => array('index')), array('label' => Yii::t('app', 'Create') . ' ' . $model->label(), 'url' => array('create'))); Yii::app()->clientScript->registerScript('search', "\r\n\$('.search-button').click(function(){\r\n\t\$('.search-form').slideToggle();\r\n\treturn false;\r\n});\r\n\$('.search-form form').submit(function(){\r\n\t\$.fn.yiiGridView.update('pedido-grid', {\r\n\t\tdata: \$(this).serialize()\r\n\t});\r\n\treturn false;\r\n});\r\n"); ?> <h1><?php echo Yii::t('app', 'Manage') . ' ' . GxHtml::encode($model->label(2)); ?> </h1> <p> <?php echo Yii::t('app', 'Text Option Search'); ?> </p> <?php $this->widget('bootstrap.widgets.TbMenu', array('type' => 'pills', 'items' => array(array('label' => Yii::t('app', 'Search'), 'icon' => 'icon-search', 'url' => '#', 'linkOptions' => array('class' => 'search-button')), array('label' => Yii::t('app', 'Export to Excel'), 'icon' => 'icon-download', 'url' => Yii::app()->controller->createUrl('GenerateExcel'), 'linkOptions' => array('target' => '_blank'), 'visible' => true)))); ?> <div class="search-form"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('bootstrap.widgets.TbGridView', array('id' => 'pedido-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'type' => 'striped bordered condensed', 'template' => "{summary}{items}{pager}", 'columns' => array('id', array('name' => 'user_id', 'value' => 'GxHtml::valueEx($data->user)', 'filter' => GxHtml::listDataEx(User::model()->findAllAttributes(null, true))), array('name' => 'producto_id', 'value' => 'GxHtml::valueEx($data->producto)', 'filter' => GxHtml::listDataEx(Producto::model()->findAllAttributes(null, true))), 'cantidad', 'total', 'estado', array('class' => 'bootstrap.widgets.TbButtonColumn', 'htmlOptions' => array('style' => 'min-width: 50px')))));
<div class="row"> <?php echo $form->label($model, 'user_id'); ?> <?php echo $form->dropDownList($model, 'user_id', GxHtml::listDataEx(User::model()->findAllAttributes(null, true)), array('prompt' => Yii::t('app', 'All'))); ?> </div> <div class="row"> <?php echo $form->label($model, 'producto_id'); ?> <?php echo $form->dropDownList($model, 'producto_id', GxHtml::listDataEx(Producto::model()->findAllAttributes(null, true)), array('prompt' => Yii::t('app', 'All'))); ?> </div> <div class="row"> <?php echo $form->label($model, 'cantidad'); ?> <?php echo $form->textField($model, 'cantidad'); ?> </div> <div class="row"> <?php echo $form->label($model, 'total');