/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new PresupuestoProductos(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['PresupuestoProductos'])) { $model->attributes = $_POST['PresupuestoProductos']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->presupuesto_id)); } } $this->render('create', array('model' => $model)); }
public function actionNacional() { $usuario = $this->usuario(); //Selección de Proyecto a Acción $proyectoSel = new Proyectos('search'); $accionSel = new Acciones('search'); // Selección Partidas $partidaSel = new Partidas('search'); //Selección Producto $productoSel = new Productos('search'); // Lista de productos cargados $presuPros = array(); $presuPro = new PresupuestoProductos(); $presuPro->tipo = 'N'; //$partidas = new PresupuestoPartidas(); $partidas = array(); $productosPartidas = array(); //Todos los Presupuesto Partidas de un Proyecto o una accción $presupuestoPartidas = array(); //$partidass = ''; if (isset($_POST['Proyectos'])) { $proyectoSel->attributes = $_POST['Proyectos']; // Para el manejo del dropdown de acciones y proyectos //print_r($_POST['Proyectos']['proyecto_id']); if (!empty($_POST['Proyectos']['proyecto_id'])) { // Verificando si el id pasado es de una acción o un proyecto if (strstr($proyectoSel->proyecto_id, 'a')) { $accionSel->accion_id = $this->accionId($proyectoSel->proyecto_id); $partidas = $this->partidasAccion($accionSel->accion_id); foreach (PresupuestoPartidaAcciones::model()->findAllByAttributes(array('accion_id' => $accionSel->accion_id, 'ente_organo_id' => $usuario->ente_organo_id, 'anho' => Yii::app()->params['trimestresFechas'][Yii::app()->session['trimestreSeleccionado']]['anho'])) as $key => $value) { //if($value->presupuestoPartida->partida_id == $partidaSel->partida_id) //Todos los presupuestos partidas de la Acción seleccionada $presupuestoPartidas[] = $value->presupuestoPartida; } } else { $proyectoActual = Proyectos::model()->findByPk($proyectoSel->proyecto_id); $partidas = $this->partidasProyecto($proyectoSel->proyecto_id); //Todas los Presupuesto Partidas del proyecto seleccionado $presupuestoPartidas = $proyectoActual->presupuestoPartidas; } //$partidas = Partidas::model()->findByPk($partidas[0]->partida_id); //$partidas = $proyectoSel->presupuestoPartidaProyecto->presupuestoPartida; //print_r($_POST['Partidas']); if (isset($_POST['Partidas']) && !empty($_POST['Partidas']['partida_id'])) { $partidaSel->attributes = $_POST['Partidas']; //$presuPros = Proyectos::model()->findAllByAttributes(array('proyecto_id'=>attributeValue), condition, array('key'=>value)) $presuPartida = new PresupuestoPartidas(); if (!empty($accionSel->accion_id)) { foreach (PresupuestoPartidaAcciones::model()->findAllByAttributes(array('accion_id' => $accionSel->accion_id, 'ente_organo_id' => $usuario->ente_organo_id, 'anho' => Yii::app()->params['trimestresFechas'][Yii::app()->session['trimestreSeleccionado']]['anho'])) as $key => $value) { if ($value->presupuestoPartida->partida_id == $partidaSel->partida_id) { $presuPartida = $value->presupuestoPartida; } } } if (isset($proyectoActual)) { foreach ($proyectoActual->presupuestoPartidas as $key => $presupuestoPartida) { if ($presupuestoPartida->partida_id == $partidaSel->partida_id) { $presuPartida = $presupuestoPartida; } } } // Producto Nacional if (isset($_POST['Productos'])) { $productoSel->attributes = $_POST['Productos']; } } } } if (isset($_POST['PresupuestoProductos'])) { $presuPro->attributes = $_POST['PresupuestoProductos']; $presuPro->tipo = 'N'; $presuPro->proyecto_partida_id = $presuPartida->presupuesto_partida_id; $presuPro->monto_ejecutado = 0; $presuPro->producto_id = $productoSel->producto_id; /* if($presupuestoPartida = ->findByAttributes(array('partida_id'=>$partidaSel->partida_id))) $presuPro->proyecto_partida_id = $presupuestoPartida->presupuesto_partida_id;*/ $presuPro->monto_presupuesto = 0; if ($presuPro->validate()) { //Monto en presupuesto en Bs. del producto $presuPro->monto_presupuesto = floatval($presuPro->costo_unidad) * floatval($presuPro->cantidad); // Validando la suma de los productos de la partida $total = $this->montoCargadoPartida($presuPartida); if ($presuPartida->monto_presupuestado >= $total + $presuPro->monto_presupuesto) { /*if($this->productoExisteProyecto($presuPro->producto_id,$proyectoActual->proyecto_id,$partidaSel->partida_id)) { Yii::app()->user->setFlash('error', "El producto ya esta cargado!"); }else{*/ if ($presuPro->save()) { $presuPro = new PresupuestoProductos(); $productoSel = new Productos('search'); //$this->redirect(array('/planificacion/partidas')); Yii::app()->user->setFlash('success', "Producto cargado con éxito!"); } else { Yii::app()->user->setFlash('error', "El producto no se ha podido guardar."); } //throw new Exception("Error Processing Request", 1); //} } else { Yii::app()->user->setFlash('notice', "No se agrego el producto valorado en " . number_format($presuPro->monto_presupuesto, 2, ',', '.') . " Bs. La partida lleva cargada un monto en productos de " . number_format($total, 2, ',', '.') . " Bs. y el monto presupuestado para esta partida es de " . number_format($presuPartida->monto_presupuestado, 2, ',', '.') . ' Bs.'); } } //else Yii::app()->user->setFlash('Error','error'); } // Recargando listas if (!empty($partidaSel->partida_id) && !empty($proyectoSel->proyecto_id)) { //Listando todos los productos que ya se han cargado foreach ($presupuestoPartidas as $key => $presupuestoPartida) { if ($presupuestoPartida->partida_id == $partidaSel->partida_id) { $presuPros = $presupuestoPartida->presupuestoProductos; } } $productosPartidas = $this->listaProductosPartida($partidaSel->partida_id, $proyectoSel->proyecto_id, 'n'); //Partidas::model()->findByPk($partidaSel->partida_id)->productos; $productosPartidas = CHtml::listData($productosPartidas, 'producto_id', function ($producto) { return CHtml::encode($this->numeroProducto($producto) . ' - ' . $producto->nombre); }); } $this->render('nacional', array('usuario' => $usuario, 'proyectoSel' => $proyectoSel, 'accionSel' => $accionSel, 'partidas' => $partidas, 'partidaSel' => $partidaSel, 'productoSel' => $productoSel, 'presuPros' => $presuPros, 'presuPro' => $presuPro, 'productosPartidas' => $productosPartidas)); }