) );*/ /*$listaCodigos = array(); if($codigoSel=CodigosNcm::model()->findByPk($codigoNcmSel->codigo_ncm_id)) $listaCodigos = CHtml::listData(CodigosNcm::model()->findAll('codigo_ncm_nivel_1='.$codigoSel->codigo_ncm_nivel_1.' AND t.fecha_desde<\''.date('Y-m-d').'\' AND t.fecha_hasta>\''.date('Y-m-d').'\''), 'codigo_ncm_id', function($codigo){ return CHtml::encode($this->numeroCodigoNcm($codigo).' - '.$codigo->descripcion_ncm);});*/ $importado .= $form->dropDownListGroup( $presuImp, 'codigo_ncm_id', array( 'wrapperHtmlOptions' => array( 'class' => 'col-sm-5', ), 'label'=>'Seleccione el producto', 'widgetOptions' => array( 'data' => CHtml::listData(CodigosNcm::model()->findAll($this->condicionVersion()), 'codigo_ncm_id', function($codigo){ return CHtml::encode($this->numeroCodigoNcm($codigo).' - '.$codigo->descripcion_ncm);}), //'options'=>array($model->proyecto_id => array('selected'=>true)), 'htmlOptions' => array('prompt' => 'Seleccionar producto', 'id'=>'ncmnivel2' /*'multiple' => false,*/ ), ), 'hint' => 'Producto para añadir.' ) ); Yii::app()->clientScript->registerScript("cambioDivisa", '$(\'#divisa\').change(function(){$(\'#montoPresupuesto\').parent(\'span\').html(\'$\');})'); $importado .= $form->dropDownListGroup( $presuImp, 'divisa_id', array( 'wrapperHtmlOptions' => array( 'class' => 'col-sm-5', ), 'label'=>'Divisa',
public function actionImportado() { $usuario = Usuarios::model()->findByPk(Yii::app()->user->getId()); //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 $presuImps = array(); $presuImp = new PresupuestoImportacion(); $codigoNcmSel = new CodigosNcm(); //$partidas = new PresupuestoPartidas(); $partidas = array(); $productosPartidas = array(); $presuPartida = new PresupuestoPartidas(); //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); //Todos 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; } } } //$productosPartidas = Partidas::model()->findByPk($partidaSel->partida_id)->productos; // Producto Nacional if (isset($_POST['Productos']) && !empty($_POST['Productos']['producto_id'])) { $productoSel->attributes = $_POST['Productos']; } //$this->render('_importado',array('presuImps'=>$presuImps)); //Yii::app()->end(); } } } // Producto Importado if (isset($_POST['PresupuestoImportacion'])) { $presuImp->attributes = $_POST['PresupuestoImportacion']; $presuImp->presupuesto_partida_id = $presuPartida->presupuesto_partida_id; $presuImp->monto_ejecutado = 0; $presuImp->producto_id = $productoSel->producto_id; $par = Partidas::model()->findByPk($partidaSel->partida_id); if ($par->p1 == '403') { // Servicios $presuImp->codigo_ncm_id = CodigosNcm::model()->findByAttributes(array('codigo_ncm_nivel_1' => '0'))->codigo_ncm_id; } if ($presuImp->validate()) { $total = $this->montoCargadoPartida($presuPartida); //throw new Exception("Error ".$presuImp->divisa->tasa->tasa." Request", 1); if (@($presuPartida->monto_presupuestado >= $total + $presuImp->monto_presupuesto * $presuImp->divisa->tasa->tasa * $presuImp->cantidad)) { $transaction = $presuImp->dbConnection->beginTransaction(); // Transaction begin //Yii::app()->db->beginTransaction try { if ($presuImp->save()) { $transaction->commit(); // committing $presuImp = new PresupuestoImportacion(); Yii::app()->user->setFlash('success', "Producto cargado con éxito!"); } else { Yii::app()->user->setFlash('error', "No se pudo guardar el producto."); $transaction->rollBack(); } } catch (Exception $e) { Yii::app()->user->setFlash('error', "No se guardo el producto o servicio."); $transaction->rollBack(); } } else { Yii::app()->user->setFlash('notice', "No se agrego el producto valorado en " . number_format($presuImp->monto_presupuesto * $presuImp->divisa->tasa->tasa * $presuImp->cantidad, 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.'); } } //$this->guardarPresupuestoProductos($presuPro); } //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) { $presuImps = $presupuestoPartida->presupuestoImportacion; } } $productosPartidas = $this->listaProductosPartida($partidaSel->partida_id, $proyectoSel->proyecto_id, 'i'); //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('importado', array('usuario' => $usuario, 'proyectoSel' => $proyectoSel, 'accionSel' => $accionSel, 'partidas' => $partidas, 'partidaSel' => $partidaSel, 'productoSel' => $productoSel, 'presuImps' => $presuImps, 'presuImp' => $presuImp, 'productosPartidas' => $productosPartidas, 'codigoNcmSel' => $codigoNcmSel)); }
), ), 'hint' => 'Código arancelario.' ) );*/ echo $form->select2Group($presuImp, 'codigo_ncm_id', array( 'wrapperHtmlOptions' => array( 'class' => 'col-sm-5', ), 'label'=>'Código arancelario', 'hint' => 'Código arancelario.', 'widgetOptions' => array( 'asDropDownList' => true, 'data' => CHtml::listData(CodigosNcm::model()->findAll($this->condicionVersion().'AND codigo_ncm_nivel_1!=\'0\''), 'codigo_ncm_id', function($codigo){ return CHtml::encode($this->numeroCodigoNcm($codigo).' - '.$codigo->descripcion_ncm);}), 'htmlOptions'=>array('id'=>'ncmnivel2',), 'options' => array( //'tags' => array('clever', 'is', 'better', 'clevertech'), 'placeholder' => 'Seleccionar codigo arancelario', // 'width' => '40%', 'tokenSeparators' => array(',', ' ') ) ) ) ); //Yii::app()->clientScript->registerScript("cambioDivisa", '$(\'#divisa\').change(function(){$(\'#montoPresupuesto\').parent(\'span\').html(\'$\');})'); echo $form->dropDownListGroup( $presuImp, 'divisa_id', array( 'wrapperHtmlOptions' => array(